Вопросы программной поддержки процессов управления мобильным роботом
Пример реализации мобильного робота с минимальным набором датчиков, а также применение алгоритмов компьютерного зрения для автоматического управления. Вычисление кода указателя. Управляющая команда для сервоприводов. Локализация положения робота.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 28.10.2018 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Вопросы программной поддержки процессов управления мобильным роботом
Р. А. Севостьянов
Рассматривается пример реализации мобильного робота с минимальным набором датчиков, а также применение алгоритмов компьютерного зрения для автоматического управления. Приведены результаты экспериментов.
Введение
Научный руководитель д.ф.-м.н., проф. Веремей Е.И.Изначально была поставлена задача разработки мобильного робота, управление движением которого должно осуществляться в двух режимах: режиме ручного управления, когда оператор непосредственно контролирует движение, и режиме автоматического управления, когда робот самостоятельно движется к некоторой цели, обходя препятствия. При этом интерес представляла ситуация, когда количество датчиков, поставляющих в систему управления данные о внешнем мире, минимально. В частности, в качестве единственного датчика было решено использовать видеокамеру и осуществлять локализацию положения робота по заранее известным внешним указателям. Кроме этого, задача была поставлена таким образом, что все необходимые вычисления, относящиеся к обработке сигналов и синтезу законов управления, должны осуществляться на внешнем компьютере, который передает роботу управляющие сигналы по беспроводной связи.
Система управления
Объект управления. В качестве объекта управления выступает мобильный робот на гусеничном шасси с 7,2В электромоторами (рис. 1). Аппаратно-вычислительной платформой является плата DFRDuino Mega со следующими модулями расширений:
Motor Shield V3, представляющий собой силовой модуль для управления электромоторами и сервоприводами, использование которого определяется тем, что напряжения портов платы DFRDuino Mega не достаточно для управления;
плата XBee Shield V5, которая применяется для подключения беспроводного модуля XBee, а также сам модуль XBee, обеспечивающий передачу данных по стандарту ZigBee.
Для получения изображений, передаваемых в качестве информации в систему управления, используется аналоговая CCD-видеокамера SONY с разрешением 752х582 (NTSC) и восьмиканальный 900 МГц передатчик. Камера закреплена на платформе, установленной на двух сервоприводах, что позволяет поворачивать ее в двух плоскостях.
Рис. 1. Робот.
Математическая модель. Математическая модель робота выглядит следующим образом:
где: (x,y,ц) - координаты и угол направления робота (состояние системы); (v,щ) - поступательная и угловая скорости (управляющие сигналы).
Угол ц отсчитывается от положительного направления оси ординат по часовой стрелке.
Для этой модели удобно строить законы управления, однако реально управление происходит напряжениями, подаваемыми на правый и левый электромоторы, так что следует перейти от приведенных управляющих сигналов к реальным:
где: L - расстояние между гусеницами; kr и kl - коэффициенты, связывающие напряжение со скоростью вращения колеса.
Кроме этого, существуют физические ограничения на движение робота: максимальная скорость вращения колес - 14 см/с.
Протокол коммуникации. Для передачи управляющих команд от системы управления движением, реализуемой на внешнем компьютере, используется USB-плата XBee Shield V5 с беспроводным модулем XBee. Протокол коммуникации состоит из двух типов команд. Первый тип - команды для управления напряжением электромоторов (рис. 2).
В состав структуры управляющей команды для электромоторов входят следующие элементы:
байт ID означает начало управляющего пакета для моторов, он всегда содержит значение 0xFF;
байт Dir отвечает за направление вращения правого и левого мотора (0 - остановка, 1 - вперед, 2 - назад), причем значения направления для правого мотора занимают первый и второй биты, для левого - соответственно, третий и четвертый;
байты VoltR и VoltL содержат значение напряжения, которое необходимо подать на правый и левый моторы, соответственно;
байт Sum -- контрольная сумма, которая высчитывается как исключающее ИЛИ, примененное к предыдущим трем байтам. Это значение используется для верификации команды и гарантирует, что команда либо будет выполнена в том виде, в каком была передана, либо не будет выполнена вообще.
Рис. 2. Управляющая команда для электромоторов.
Второй тип команд - команды для управления поворотом сервоприводов камеры (рис. 3).
Рис. 3. Управляющая команда для сервоприводов.
В состав структуры управляющей команды для сервоприводов входят следующие элементы:
байты ID и Sum аналогичны соответствующим байтам управляющей команды для электромоторов, при этом байт ID всегда содержит значение 0xFE;
байты Pos1 и Pos2, содержат положение, в которое нужно перевести первый и второй сервопривод видеокамеры.
Программное обеспечение бортового микроконтроллера. Ввиду того, что все необходимые вычисление и синтез законов управления происходят на внешнем компьютере, основная задача бортового микроконтроллера - прием управляющих команд и управление электромоторами и сервоприводами в соответствии с ними.
Программирование бортового микроконтроллера осуществлялось в среде разработки Arduino IDE на специализированном языке, основанном на языке Wiring. Этот язык разработан специально для проектов на базе платформы Arduino и имеет синтаксис языка C++, но другую структуру программ [1].
Беспроводной модуль XBee подключен к последовательному порту бортового микроконтроллера. Библиотека языка программирования Arduino содержит класс Serial, который упрощает работу с последовательным портом. На каждом цикле своей работы программное обеспечение микроконтроллера проверяет, не появилось ли новых данных в буфере последовательного порта и, если данные есть, проверяет корректность команды и передает соответствующие управляющие сигналы на электромоторы или сервоприводы.
Локализация положения робота. Как было сказано выше, единственным датчиком в системе является видеокамера, а локализацию положения предлагается осуществлять при помощи внешних указателей заданного вида. Как видно из математической модели, положение (или состояние) робота состоит из трех компонент: координаты на плоскости пола x и y, а также угол направления движения ц.
В качестве внешних указателей используются белые квадраты со стороной 13см, внутри которых расположены от одного до четырех темных квадратов. Расположение внутренних квадратов относительно центра белого квадрата кодирует число от 1 до 15. Таким образом, в системе можно использовать до 15 указателей одновременно.
Распознавание указателей происходит следующим образом. Цветное изображение конвертируется в бинарное. После этого находятся все контуры, как внешние, так и внутренние, с отслеживанием иерархии. Далее каждый контур при помощи алгоритма Рамера-Дугласа-Пекера [2] аппроксимируется замкнутой ломаной, после чего работа ведется только с теми ломаными, у которых число вершин равно четырем. Кроме этого, области, ограниченные такими линиями, должны быть более ста пикселей по площади, а внутри каждой такой области также должна быть ломаная с четырьмя вершинами.
Далее вычисляется числовой код каждого указателя как четырехразрядное двоичное число. Каждый темный квадрат внутри указателя отвечает за определенный разряд в этом числе. Наличие квадрата соответствует единице, отсутствие - нулю. Формирование двоичного числа происходит построчно, левый верхний угол соответствует низшему разряду. Например, указатель, приведенный на рис. 4, кодирует число 10112=1110.
Рис. 4. Вычисление кода указателя.
После того, как вычислен код указателя, происходит непосредственно локализация положения робота. Предполагается, что указатели установлены строго перпендикулярно поверхности пола. Соответственно, боковые стороны каждого квадрата всегда параллельны плоскости камеры, которая также перпендикулярна поверхности пола. Таким образом, зная параметры камеры, можно вычислить расстояние до боковых сторон по следующей формуле:
где: Z - расстояние от плоскости камеры до стороны указателя в сантиметрах; f - фокусное расстояние камеры в пикселях; x - длина стороны в пикселях; Y - длина стороны в сантиметрах.
робот датчик компьютерный зрение
Рис. 5. Локализация положения робота.
Далее с помощью геометрических рассуждений можно вывести компоненты состояния робота (рис. 5). Здесь AB - указатель, C - центр указателя, AA1 и BB1 - расстояния до сторон указателя, C1 - точка на изображении, в которую проецируется центр указателя, F1 - центр изображения, F1C1 - смещении проекции центра указателя относительно центра изображения, F - точка фокуса, f - фокусное расстояние, угол б - угол поворота робота относительно указателя. Положение робота относительно указателя находятся по следующим формулам:
Положение робота в глобальной системе координат находится по следующим формулам:
где: (xb,yb,и) - положение указателя в глобальной системе координат.
Режим автоматического управления. В режиме автоматического управления робот должен самостоятельно двигаться к заданной точке, избегая столкновения с препятствиями.
Для начала рассмотрим движение к точке, когда препятствия отсутствуют. В этом случае закон управления можно построить при помощи пропорционального регулятора:
где: цd - желаемый угол направления на точку; (x,y) - координаты робота; (xd,yd) - координаты точки; kd - регулируемый коэффициент; щd - угловая скорость.
Поступательная скорость v - постоянная. Когда робот оказывается в некоторой окрестности целевой точки, происходит остановка.
Теперь рассмотрим случай, когда целевая точка не задана, и робот движется с постоянной скоростью. В качестве препятствия примем окружности известного радиуса. Вокруг такой окружности опишем окружность большего радиуса - «зону опасности». Тогда, если робот оказывается в такой зоне, управление, позволяющее избежать столкновения, строится аналогично предыдущему варианту, но направление выбирается от центра препятствия:
где: цo - желаемый угол направления от центра препятствия; (x,y) - координаты робота; (xo,yo) - координаты центра препятствия; ko - регулируемый коэффициент; щo - угловая скорость.
Наконец, рассмотрим ситуацию, когда робот движется к заданной точке, обходя препятствия. В этом случае строится гибридное управление как линейная комбинация двух предыдущих:
Такое управление позволяет избегать препятствий и в то же время учитывает направление на целевую точку.
Для обозначения препятствий используются такие же указатели, как и для локализации положения робота. Когда такой указатель появляется на изображении, в память заносятся координаты его центра, а радиус «опасной зоны вычисляется по следующей формуле:
где: R-радиус «опасной зоны»; a - длина стороны указателя.
Компьютерное моделирование показало, что указанное управление позволяет достигать целевой точки с точностью до 1 см.
Программное обеспечение внешнего компьютера. Для режима ручного управления на языке C# реализовано программное обеспечение, которое позволяет вручную управлять движением мобильного робота, а также вращением сервоприводов видеокамеры.
Для режима автоматического управления на языке C++ с использованием открытой библиотеки OpenCV [3] реализовано программное обеспечение, которое позволяет осуществлять движение мобильного робота в заданную точку с обходом препятствий по алгоритму, описанному выше.
Результаты экспериментов. В результате проведенных экспериментов получены следующие характеристики системы:
время работы программы микроконтроллера:
в среднем около 500 мкс;
время отклика:
в среднем около 24 мс;
радиус действия:
более 30 метров на открытой местности;
12-15 м в закрытом помещении;
время работы:
более часа;
точность локализации положения:
2-3 см (расстояние до 1м);
точность локализации угла направления:
2-3 градуса (расстояние до 1м);
время работы программы автоматического управления:
до 50 мс (Core i7 3770K, 3.5 GHz).
Заключение
В результате проведенной работы был построен мобильный робот на гусеничном шасси, управление которым осуществляется по беспроводной связи в режимах ручного и автоматического управления. Разработано и реализовано программное обеспечение бортового микроконтроллера. Разработан алгоритм локализации положения робота по внешним указателям, способ кодирования указателей, а также гибридный алгоритм движения к точке с обходом препятствий. Реализовано соответствующее программное обеспечение внешнего компьютера, осуществляющее локализацию и автоматическое управление движением мобильного робота. Кроме этого реализовано программное обеспечение внешнего компьютера, осуществляющее управление движением мобильного робота в ручном режиме. Также проведены натурные эксперименты.
Размещено на Allbest.ru
...Подобные документы
Информационно-измерительные системы мобильных роботов. Системы технического зрения; дескриптивный подход к обработке, анализу и распознаванию изображений. Разработка программного обеспечения для создания СТЗ мобильного робота для ориентации в комнате.
дипломная работа [5,5 M], добавлен 10.05.2014Виды и принципы компьютерного моделирования. Среда моделирования Microsoft Robotic Studio. Моделирование пространства и объектов рабочей области с помощью визуальной среды Visual Simulation Environment. Создание программы управления мобильным роботом.
дипломная работа [5,0 M], добавлен 15.06.2014История возникновения и развития современной робототехники, применение технологий искусственного интеллекта. Разработка структурной схемы системы навигации мобильного робота, коррекция траектории его движения, методы управления локальными перемещениями.
дипломная работа [1,1 M], добавлен 18.05.2011Мобильные роботы и комплексы на их основе. Аналитический обзор программных средств по созданию базы данных и интерфейсов пользователей. Open Interface и классификация команд. Разработка аппаратного комплекса для формирования управляющих программ робота.
дипломная работа [2,3 M], добавлен 22.06.2014Мобильные роботы и их применение. Главные особенности разработки шарового робота типа "колобок". Робот с шаровым движителем. Разработка и исследование системы прямого компьютерного управления роботом. Программное оборудование системного управления.
дипломная работа [1,6 M], добавлен 28.05.2012Обзор схемы конструкции автоматизированного мобильного робота. Выбор компонентов конструкции. Общая классификация роботов; виды двигателей. Выбор типа микроконтроллера. Осуществление программирования на основе расчётов по математической модели робота.
курсовая работа [1,2 M], добавлен 20.05.2015Преимущества и недостатки роботизированной сварки. Характеристика видов систем управления базами данных. Информационная модель сварочного робота, системы управления роботом сварочных клещей. Критерии выбора робота и структура запроса на выборку.
курсовая работа [3,3 M], добавлен 22.12.2014Создание дискретной системы автоматического управления кистью руки робота андроида. Технические характеристики; выбор и обоснование элементной базы: микропроцессора, датчиков, усилителя. Синтез аппаратного и программного корректирующего устройства.
курсовая работа [925,3 K], добавлен 09.03.2012Использование в микропроцессорных системах цифрового способа представления информации. Помехоустойчивость устройств. Принципиальная схема на микроконтроллере для управления роботом. Устройство и принцип действия робота. Области действия фотодатчиков.
курсовая работа [693,7 K], добавлен 31.01.2015Изучение видов роботов-жуков. Анализ платформ для управления периферийными устройствами, реализации передачи и обработки полученных данных. Основной выбор сервоприводов и дальномеров. Программирование робота через специализированную среду Arduino IDE.
курсовая работа [588,7 K], добавлен 11.08.2017Назначение, технические характеристики промышленного робота МП20. Режимы работы робота и кинематическая схема. Приводные электродвигатели. Элементы электроавтоматики. Алгоритм управления следящим цифроаналоговым приводом. Интерфейс станочной магистрали.
курсовая работа [1,7 M], добавлен 15.04.2013Классификация колесных наземных мобильных роботов. Обзор приводов мобильных платформ. Особенности стабилизации скорости мобильной платформы Rover 5 с дифференциальным приводом. Разработка алгоритмов управления на основе микроконтроллера Arduino.
курсовая работа [1,3 M], добавлен 04.05.2017- Разработка и исследование метода сетевого оператора для адаптивного управления динамическим объектом
Понятие адаптивного управления как совокупности действий и методов, характеризующихся способностью управляющей системы реагировать на изменения внешней среды. Применение метода сетевого оператора для синтеза адаптивного управления мобильным роботом.
дипломная работа [1,4 M], добавлен 17.09.2013 Прямая и обратная задача кинематики и позиционирования захвата манипуляционного робота. Разработка алгоритмов и решений, позволяющих организовать процесс нанесения рисунков на поверхность изделия при помощи робота-манипулятора FS03N фирмы Kawasaki.
дипломная работа [4,1 M], добавлен 17.09.2013Контроллер управления двигателями. Назначение, краткая характеристика, перспективы внедрения робота-дозиметриста. Обзор основных способов беспроводной передачи данных на большие расстояния. Проектирование принципиальной схемы бортового контроллера.
дипломная работа [2,4 M], добавлен 05.01.2013Динамические характеристики типовых звеньев и их соединений, анализ устойчивости систем автоматического управления. Структурные схемы преобразованной САУ, качество процессов управления и коррекции. Анализ нелинейной системы автоматического управления.
лабораторная работа [681,9 K], добавлен 17.04.2010Характеристика устройства и технологических данных промышленного робота СМ40Ц. Описание микропроцессорного комплекта серии U83-K1883, системы его команд, микросхемы К572ПВ4, функциональной, принципиальной схем и алгоритма работы программы управления.
курсовая работа [5,8 M], добавлен 02.06.2010Изучение основных аспектов моделирования операционной системы. Исследование принципов организации псевдопараллельной работы процессов. Анализ алгоритмов диспетчеризации процессов. Проектирование подсистемы управления памятью и запоминающими устройствами.
курсовая работа [1,7 M], добавлен 12.01.2014Соревнования VEX Skyrise. Требования к роботам. Принцип действия программного триггера. Режим ручного управления. Комплект на базе привода и системы управления. Автономный режим работы робота. Тестирование работоспособности кода методом "черного" ящика.
дипломная работа [4,6 M], добавлен 13.10.2015Технические особенности сервопривода MR-J2S-10A. Выбор передаточного механизма. Разработка системы управления электроприводом переменного тока контурного робота на базе сервопривода Mitsubishi MR-J2-S. Электрическая схема подключения сервопривода.
курсовая работа [1,4 M], добавлен 25.12.2012