УДК 004.4'236
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬНЫМИ РОБОТАМИ С.А. Алексеев, В.О. Клебан, А.А. Шалыто
Управление роботами является задачей управления системами со сложным поведением, в настоящее время известно несколько подходов к решению таких задач, одним из которых является автоматное программирование. Рассматривается комплекс, предназначенный для проектирования и исследования автоматных программ управления мобильными роботами.
Ключевые слова: автоматное программирование, мобильные роботы, визуальное средство проектирования автоматных программ.
Введение
Роботы - это физические агенты, которые выполняют поставленные перед ними задачи, проводя манипуляции в физическом мире. Для исследования задач управления роботами существуют специальные программные средства. Главная их задача - предоставить пользователю возможность работать с максимальной эффективностью, ввиду этого очень важной частью программных средств становится эмулятор робота и среды окружения. Необходимость в эмуляторе связана со следующими проблемами:
- наиболее важной проблемой является необходимость в специальном стенде, постройка которого в реальном мире занимает много времени и средств; также во время реальных испытаний есть вероятность повредить оборудование;
- испытание в реальном мире занимает существенно большее время, чем при использовании эмулятора.
Однако при использовании существующих программных средств для исследования задач управления роботами место серьезные ограничения. Во-первых, эти средства проектировались для использования с конкретными моделями мобильных роботов, ввиду чего испытания разработанных программ на реальном роботе не всегда доступны. Во-вторых, в данных средствах отсутствует возможность использовать визуальное проектирование автоматных программ [1-3].
В данной работе авторы подробно рассматривают существующие средства для решения задач управления роботами, а также предлагают собственный вариант такого комплекса.
Постановка задачи
В рамках данной работы ставилась задача создать эффективный комплекс для сквозного проектирования и отладки автоматных систем управления мобильными роботами. В состав комплекса должны входить следующие компоненты: реальный робот; графический язык проектирования автоматных программ; модель робота в среде твердотельного моделирования; среда эмуляции и способ конвертирования модели робота в объект этой среды; контроллер робота с функцией отладки по шагам и функцией интерпретирования графической программы; протокол связи. Система сквозного проектирования должна предоставлять пользователю возможность осуществлять полный цикл создания и отладки мобильного робота, от чертежей деталей до программного обеспечения.
Для построения такого комплекса целесообразно использовать технологию автоматного программирования [4]. Применение автоматного подхода при создании подобных систем управления обладает рядом достоинств, таких как документируемость, возможность верификации, упрощение внесения изменений и т.д. Помимо этого, на практике достаточно часто встречаются задачи, для которых известно, что они могут быть решены при помощи конечных автоматов, но эвристически построить для них автомат чрезвычайно сложно. Попытки решения подобных задач выполняются, в частности, при помощи различных методов автоматического синтеза программ. Одним из таких методов является генетическое программирование [5]. Для применения генетического программирования необходим «быстрый» эмулятор робота, так как получение необходимого числа значений функции приспособленности для реального робота требует больших временных затрат.
Архитектура комплекса
На данный момент существует несколько лабораторий, предназначенных для эмуляции различных роботов и управления ими. Наиболее известные из них - это Microsoft Robotics Developer Studio, Player/Stage/Gazebo и Webots. Подробную информацию о данных лабораториях, а также об их преимуществах и недостатках можно найти в работе [6].
При разработке данного комплекса было принято решение использовать лабораторию Webots [7] ввиду ее гибкости при проектировании мобильных роботов и сцен.
Комплекс состоит из шести основных частей:
1. мобильный робот;
2. система управления с инструментом графического проектирования;
3. контроллер робота (реального и виртуального);
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО .
4. протокол связи;
5. модель робота в среде твердотельного моделирования Solidworks [8] с возможностью конвертирования в объект среды Webots;
6. эмулятор Webots;
Функционирование комплекса осуществляется за счет взаимодействия системы управления, контроллера робота и реального (виртуального) робота. Взаимодействие между системой управления и контроллером робота осуществляется по проводной или беспроводной связи при помощи команд протокола.
Робот
Объектом управления в данном комплексе является робот. Он включает в себя: аппаратную вычислительную платформу Arduino, выполненную на основе микроконтроллера Atmel AVR, два электромотора с редукторами и колесами, литий-ионный аккумулятор, дальномер, четыре датчика линии.
Для данного робота был выбрана готовая аппаратная платформа Arduino Diecimila, обладающая интерфейсом RS-232 и микросхемой конвертера USB-to-Serial FT232R, благодаря которой связь с ПК осуществляется через USB-интерфейс.
Впоследствии к данной плате был припаян модуль BTM-11-CS-96, позволяющий осуществлять беспроводную связь с роботом, что увеличивает эффективность и удобство работы с комплексом. Решение о выборе вычислительной платформы было принято на основе ее функциональности и удобства использования. Вместе с вычислительной платформой также поставляется среда разработки Arduino, представляющая собой компилятор C++ с дополнительной функциональностью. Важными функциональными особенностями самой платы Arduino Diecimila являются возможность питания платы за счет соединения USB, возможность замены вышедшего из строя микроконтроллера Atmel AVR, наличие UART интерфейса, позволяющего добавлять к платформе различные передающие модули.
Готовый робот представлен на рисунке.
Рисунок. Фотография реального робота Контроллер
Управление роботом осуществляется за счет изменения различных переменных, таких как скорость вращения двигателей, направление их вращения и т.д. Как реальным, так и виртуальным роботом управляют специально разработанные контроллеры, каждый из которых включает в себя два режима работы. Сразу после включения контроллер находится в состоянии ожидания, оно изменяется в случае получения контроллером какой-либо команды от системы управления. При получении от системы управления команды сброса контроллер возвращается в режим ожидания.
Первый режим, так называемый режим отладки, включается при получении контроллером одной из команд протокола, относящейся к взаимодействию с переменными («Ьейзрее&>, «ОеФ1$1апсе» и т.д.). В режиме отладки система управления либо запрашивает показания различных датчиков робота, либо устанавливает необходимые значения переменных контроллера. В таком случае робот управляется непосредственно из системы управления на ПК, что позволяет отлаживать по шагам исследуемый автомат. В данном случае шагом является один опрос датчиков робота.
Второй режим - автономный. Он включается, если контроллер получает команду «8е1АШота1а». В этом режиме контроллер получает от системы управления представление конечного автомата и интер-
претирует его, автоматически изменяя значения переменных и опрашивая датчики. Контроллер спроектирован в среде разработки Arduino, включающей в себя редактор кода, компилятор и модуль передачи прошивки в аппаратную вычислительную платформу Arduino. Благодаря тому, что среда разработки Arduino является продуктом с открытым исходным кодом, в нее можно вносить произвольные изменения. Это является важным преимуществом по сравнению со средой разработки AvrStudio.
Протокол связи
Как реальный, так и виртуальный роботы управляются при помощи специального единого протокола. Это позволяет использовать идентичные интерфейсы контроллеров как для реального, так и для виртуального роботов. Благодаря этому отсутствует необходимость производить изменения системы управления при взаимодействии с контроллерами, имеющими различные архитектуры. Подробнее ознакомиться с особенностями протокола можно в работе [7].
Система управления
Система управления предназначена для создания, редактирования и отладки конечных автоматов. Она позволяет проектировать конечные автоматы при помощи встроенных инструментов, а также запускать и отлаживать их. Для запуска и отладки автоматов используется «модуль связи». В режиме отладки в системе управления хранится и обновляется набор переменных, отвечающих за управление роботом. Набор переменных делится на две части: переменные, осуществляющие входные воздействия, и переменные, осуществляющие выходные воздействия. На основе переменных, отвечающих за входные воздействия, выбирается следующее состояние автомата, а результатом выходных воздействий является изменение соответствующих переменных. После этого набор переменных в системе управления синхронизируется при помощи передающего модуля с набором переменных в роботе.
Модель робота в среде Solidworks
Виртуальная модель робота была спроектирована в системе твердотельного моделирования Solidworks. Это позволяет экспортировать ее в среду Webots, а также получать чертежи для изготовления реальных роботов. Кроме того, проектирование в среде Solidworks обладает рядом других достоинств.
Во-первых, при помощи встроенного в Webots 3Б-редактора нельзя получить столь точные модели, как в среде Solidworks, так как встроенный редактор включает в себя лишь несколько примитивных объектов, таких как сфера, цилиндр, параллелепипед и т.д.
Во-вторых, в среде Solidworks есть различные инструменты для оценки спроектированной модели, такие как проверка интерференции, расчет массовых характеристик и т.д.
В Webots была загружена модель мобильного робота, спроектированная в Solidworks. Загрузка модели в Webots осуществлялась в несколько этапов:
- Выгрузка модели из Solidworks в формате VRML V2.0, при этом важно расположить одну ось координат параллельно оси колес, а начало координат в центре оси колес;
- Загрузка трехмерных объектов в Webots;
- Создание модели робота в Webots на основе загруженных объектов. Подразумевается назначение каждому массиву точек соответствующей роли, например, дальномер - объект DistanceSensor среды Webots и т.д.
Использование комплекса
При помощи комплекса в виртуальной среде была разработана система управления мобильным роботом на основе автоматного подхода. При этом система моделирования комплекса позволила успешно перенести полученную систему управления виртуальным роботом на реального робота без изменений.
Заключение
В данной работе рассматривались основные компоненты и возможности комплекса. С учетом вышеизложенного можно считать, что поставленные задачи были выполнены.
- Разработан графический язык автоматного программирования c возможностью отладки, ориентированный на мобильных роботов.
- Разработана методика для конвертирования модели робота из среды SolidWorks в среду эмулятора Webots, с последующей возможностью эмуляции различных задач.
- На основе модели робота в среде SolidWorks изготовлен и протестирован мобильный робот.
Исследование выполнено по Федеральной целевой программе «Научные и научно-педагогические кадры инновационной России на 2009-2013 годы» в рамках государственного контракта П2236 от 11 ноября 2009 года.
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ-ДЖОНСА..
Литература
1. Шалыто А. А. Технология автоматного программирования // Труды Всероссийской научной конференции «Методы и средства обработки информации». - М.: МГУ, 2003 [Электронный ресурс]. - Режим доступа: http://is.ifmo.ru/works/tech_aut_prog/, своб.
2. Клебан В.О., Шалыто А.А., Парфенов В.Г. Построение системы автоматического управления мобильным роботом на основе автоматного подхода // Научно-технический вестник СПбГУ ИТМО. -2008. - № 53. - С. 281-285.
3. Клебан В.О., Шалыто А.А. Использование автоматного программирования для построения многоуровневых систем управления мобильными роботами // Сборник тезисов 19 Всероссийской научно-технической конференции «Экстремальная робототехника». - СПб: ЦНИИ РТК, 2008. -С. 85-87.
4. Шалыто А.А., Туккель Н.И. Switch-технология - автоматный подход к созданию программного обеспечения «реактивных» систем // Программирование. - 2001. - № 5. - С. 22-28.
5. Царев Ф.Н., Шалыто А.А. О построении автоматов с минимальным числом состояний для задачи об «Умном муравье» // Сборник докладов X международной конференции по мягким вычислениям и измерениям. - СПбГЭТУ «ЛЭТИ». - 2007. - Т. 2. - С. 88 - 91. [Электронный ресурс]. - Режим доступа: http://is.ifmo.ru/download/ant_ga_min_number_of_state.pdf, своб.
6. Алексеев С. А. Программно-аппаратный комплекс для исследования автоматного управления мобильными роботами. - СПбГУ ИТМО. - 2010 [Электронный ресурс]. - Режим доступа: http://is.ifmo.ru/papers/_alekseev_bachelor.pdf, своб.
7. Cyberbotics Ltd. Webots reference manual. 2009 [Электронный ресурс]. - Режим доступа: http://www.cyberbotics.com/cdrom/common/doc/webots/reference/reference.html, своб.
8. Тику Ш. Эффективная работа: SolidWorks. 2004. - СПб: Питер, 2005.
Алексеев Сергей Андреевич - Санкт-Петербургский государственный университет информационных
технологий, механики и оптики, студент, [email protected]
Клебан Виталий Олегович - Санкт-Петербургский государственный университет информационных
технологий, механики и оптики, аспирант, [email protected]
Шалыто Анатолий Абрамович - Санкт-Петербургский государственный университет информационных
технологий, механики и оптики, доктор технических наук, профессор, зав. кафедрой, [email protected]
УДК 004.932.72'1
ДЕТЕКТОРЫ ОСОБЕННОСТЕЙ В МЕТОДЕ ВИОЛЫ-ДЖОНСА, ПОСТРОЕННЫЕ НА ОСНОВЕ КОНЕЧНЫХ АВТОМАТОВ
П.А. Скорынин
Рассматривается модификация метода Виолы-Джонса - одного из самых эффективных методов классификации изображений. Вместо детекторов прямоугольных особенностей в предложенной модификации используются детекторы особенностей, построенные на конечных автоматах. Применение автоматов позволяет сократить число уровней в каскаде и число детекторов на каждом уровне за счет того, что детектор, управляемый автоматом, может обнаружить более сложные особенности, нежели простые прямоугольники. Ключевые слова: классификация изображений, конечные автоматы, машинное обучение.
Введение
Задачи, связанные с компьютерным зрением, были всегда, пока существуют компьютеры. Основным шагом в создании эффективных алгоритмов в данной области стало применение в них методов машинного обучения. Одна из наиболее распространенных задач компьютерного зрения - задача о классификации. В рамках этой задачи требуется определить, принадлежит ли некоторое изображение или его часть к определенному классу. Примером такой задачи является задача о локализации лиц на изображении.
Один из примеров применения машинного обучения в задачах компьютерного зрения - метод Виолы-Джонса [1], являющийся одним из наиболее эффективных методов в своем классе. Основная его идея заключается в том, чтобы вместо одного сложного классификатора использовать каскад сильных классификаторов, построенных из слабых классификаторов, представляющих собой детекторы особенностей.
Слабые классификаторы составляют основу получаемого сильного классификатора и во многом определяют его эффективность. Заметим, что прямоугольные особенности не всегда достаточно хорошо могут описать характерные признаки искомого класса либо для этого требуется линейная комбинация достаточно большого числа таких особенностей. Таким образом, несмотря на высокую в среднем скорость работы получаемых классификаторов, в худшем случае требуется вычислять большое число особенностей. В работе Виолы и Джонса [1] для задачи детекции лиц был получен классификатор, в котором использовалось 4297 детекторов прямоугольных особенностей.