[ на главную ]

Автоматический мобильный робот

Евгений Борисов

среда, 19 ноября 2014 г.

В этой статье описана конструкция мобильного робота, оснащенного камерой и дальномером. Робот находит с помощью камеры заданный объект и следует за ним.

1 Введение

Актуальность задачи создания интеллектуальных машин (роботов) - очевидна. Сегодня роботы могут выполнять довольно сложную работу, их широко применяют на производстве, в организации работы складов, в военном деле, в медицине и просто для развлечения.

Роботы в зависимости от назначения могут иметь разную конструкцию, размер и уровень интеллекта.

Автоматический мобильный робот, о котором будем говорить далее, это исследовательский проект. Его назначение это быть опытным образцом для изучения, разработки и совершенствования методов компьютерного зрения, машинного обучения, а так же аппаратного обеспечения для конструирования других роботов.

2 Задача

Неформально задача может быть сформулирована следующим образом.

Спроектировать и собрать робота, который должен выполнять такие действия:

3 Общая схема архитектуры

Общую схему архитектуры робота можно разделить на 4 уровня: механика, электроника, реактивное управление, тактическое управление, внешнее управление.
уровень 4:
внешнее управление
  • накопление информации
  • обучение
  • планирование
  • общее управление
  • интерфейс оператора
уровень 3:
тактическое управление
  • канал связи и протокол внешнего управления
  • ПО автоматического управления
  • камера
уровень 2:
реактивное управление
  • простые реакции (стоп перед стенкой и т.п.)
  • управление моторами
  • опрос сенсоров
уровень 1:
электроника
  • драйвер моторов
  • простые сенсоры
уровень 0:
механика
  • рама
  • подвеска, колёса, рулевое управление
  • моторы и сервомоторы
  • провода, тумблеры, светодиоды и батарея
Рис. 1: многоуровневая схема архитектуры робота
Самый нижний уровень - шасси т.е. рама, колёса и т.п. На него монтируется уровень 1 - система контроля двигателей и сенсоры.

Эти устройства подключаются к уровню 2 - микроконтроллеру, в программной прошивке которого имеются простые правила реакций на показания сенсоров, например экстренная остановка перед неожиданно возникшим препятствием. Эта прошивка так же содержит список команд для управления движением робота (вперёд, поворот и т.п.).

Интеллектуальная начинка робота содержится на уровне 3, на котором размещается достаточно производительный миникомпьютер, к которому подключена камера и микроконтроллер уровня 2. Миникомпьютер анализирует изображение и информацию сенсоров, полученную от микроконтроллера, на основании этой информации управляет движением. Здесь же находится устройство беспроводной связи (wifi) и соответствующее ПО, которое обеспечивает канал связи с уровнем 4.

Самый верхний уровень (номер 4) это внешнее хранилище для накопления и анализа больших объёмов данных и/или оператор, который может корректировать поведение робота и получать от него информацию.

4 Выбор аппаратного обеспечения

Набор аппаратуры робота и её компоновка может быть различной.
уровень 4:
внешнее управление
ПК
уровень 3:
тактическое управление
пересылать данные с сенсоров
на сервер непосредственно,
с помощью простого модуля связи
миникомпьютер миникомпьютер
уровень 2:
реактивное управление
микроконтроллер
уровень 1:
электроника
сенсоры и драйвер моторов
уровень 0:
механика
шасси
Рис. 2: варианты набора составных частей робота
Самый простой вариант (Рис.3) архитектуры робота не содержит уровня тактического управления (номер 3). Робот управляется по каналу связи непосредственно оператором или удалённой интеллектуальной системой. Такая схема робота относительно проста в реализации но имеет существенные ограничения, например в силу малой вычислительной мощности робот не имеет собственной системы принятия сложных решений и при утрате связи с "центром" перестаёт функционировать.


Рис. 3: простая схема аппаратной части робота

Второй вариант - исключение из архитектуры уровня реактивного управления (номер 2), точнее - перенос его функций на уровень тактического управления (номер 3), сенсоры и управление моторами подключаются непосредственно к миникомпьютеру (Рис.4). Это несколько упрощает схему соединений, однако здесь возможны проблемы с задержками реакций на события. Поскольку миникомпьютер может быть сильно нагружен обслуживанием канала связи и анализом данных от сенсоров, иногда он может не успевать вовремя окликаться на события. Задержка может "дорого стоить", например если робот вовремя не затормозит и ударится об препятствие.

Рис. 4: упрощённая схема аппаратной части робота

Полная схема (Рис.5), которая содержит всё уровни, сложнее в реализации чем предыдущие, но позволяет устранить описанные выше недостатки.

Рис. 5: полная схема аппаратной части робота

5 Реализации

В рамках этой работы было собрано несколько роботов. Первый роботов - "электрокот" построен по упрощённой схеме, без использования микроконтроллера(Рис.4). Управление моторами и сенсор-дальномер подключаются непосредственно к миникомпьютеру, в качестве которого используется Raspberry Pi B. Робот собран на колёсном, заднеприводном шасси, оснащён камерой, которая может изменять своё положение с помощью с двух сервоприводов.

Рис. 6: робот "электрокот"

Рис. 7: робот "электрокот"

Рис.8: робот "электрокот"
В процессе экспериментов выявились упомянутые выше недостатки данной схемы, миникомьютер не всегда справляется с вычислительной нагрузкой и робот иногда запаздывает с реакциями на события, кроме того такая колёсная схема несколько сложнее в управлении чем гусеничная, например робот не может разворачиваться на месте.
Основой конструкции второго робота "танк-2" послужило пластиковое гусеничное шасси, которое приводиться в движение двумя электромоторами. Робот построен по полной схеме(Рис.5) с микроконтроллером (Arduino Pro Mini), реализующим реактивный уровень архитектуры. Как и предыдущая модель, он оснащён сенсором-дальномером и камерой, которая может изменять своё положение с помощью с двух сервоприводов основное управление осуществляется миникомпьютером Raspberry Pi B, c микроконтроллером уровня 2 он соединяется через интерфейс RS232.

Рис. 9: робот "танк-2"

Рис. 10: робот "танк-2"
Эксперименты показали, что необходимо улучшать качество работы системы обработки изображения, робот терял объект при существенном изменении освещения, а также нужно увеличить производительность миникомпьютера, Raspberry Pi B не всегда справлялся с вычислительной нагрузкой. Так же проявилась недостаточная мощность стандартных редуктор-моторов, которые приводили робота в движение.
Третий робот "танк-3" был построен по схеме аналогичной предыдущему, с небольшим упрощением - камера не имеет специальной системы позиционирования, она жестко закреплена на корпусе робота. Как и предыдущая модель, было использовано пластиковое гусеничное шасси, микроконтроллер Arduino Pro Mini, сенсор-дальномер. В качестве миникомпьютера был использован Cubieboard2, который обладает существенно большей производительностью чем Raspberry Pi B.

Рис. 11: робот "танк-3"
Рис. 12: робот "танк-3"

6 Описание программного обеспечения

Программное обеспечение робота состоит из двух частей - прошивка микроконтроллера и ПО миникомпьютера.

Прошивка микроконтроллера (уровень 2 в схеме архитектуры) реализует непосредственное управление двигателями и датчиками, принимая команды от миникомпьютера (уровень 3) через интерфейс RS232. Список команд включает в себя управление движением (вперёд, назад, поворот), запрос расстояния до препятствия от датчика, управление положением камеры. Так же микроконтроллер производит экстренную остановку если датчик сообщает о возникшем на пути препятствии.

Миникомпьютер (уровень 3 в схеме архитектуры) работает под управлением ОС Linux и содержит основное программное обеспечение для управления роботом. Поиск и отслеживание объекта осуществляется с помощью детектора объектов на основе цветовых фильтров [ 1 ] . ПО включает в себя веб-сервер, с помощью которого осуществляется передача видео (MJPEG) в браузер на удалённом ПК оператора.

Исходные тексты программ [ здесь ].

Список литературы

[1] Евгений Борисов   Детектор объектов на основе цветовых фильтров. – http://mechanoid.kiev.ua/cv-detector-color.html

При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.