Евгений Борисов
среда, 19 ноября 2014 г.
В этой статье описана конструкция мобильного робота, оснащенного камерой и дальномером. Робот находит с помощью камеры заданный объект и следует за ним.
Роботы в зависимости от назначения могут иметь разную конструкцию, размер и уровень интеллекта.
Автоматический мобильный робот, о котором будем говорить далее, это исследовательский проект. Его назначение это быть опытным образцом для изучения, разработки и совершенствования методов компьютерного зрения, машинного обучения, а так же аппаратного обеспечения для конструирования других роботов.
Неформально задача может быть сформулирована следующим образом.
Спроектировать и собрать робота, который должен выполнять такие действия:
уровень 4:
внешнее управление |
|
уровень 3:
тактическое управление |
|
уровень 2:
реактивное управление |
|
уровень 1:
электроника |
|
уровень 0:
механика |
|
Эти устройства подключаются к уровню 2 - микроконтроллеру, в программной прошивке которого имеются простые правила реакций на показания сенсоров, например экстренная остановка перед неожиданно возникшим препятствием. Эта прошивка так же содержит список команд для управления движением робота (вперёд, поворот и т.п.).
Интеллектуальная начинка робота содержится на уровне 3, на котором размещается достаточно производительный миникомпьютер, к которому подключена камера и микроконтроллер уровня 2. Миникомпьютер анализирует изображение и информацию сенсоров, полученную от микроконтроллера, на основании этой информации управляет движением. Здесь же находится устройство беспроводной связи (wifi) и соответствующее ПО, которое обеспечивает канал связи с уровнем 4.
Самый верхний уровень (номер 4) это внешнее хранилище для накопления и анализа больших объёмов данных и/или оператор, который может корректировать поведение робота и получать от него информацию.
уровень 4:
внешнее управление |
ПК | ||
уровень 3:
тактическое управление |
пересылать данные с сенсоров
на сервер непосредственно, с помощью простого модуля связи |
миникомпьютер | миникомпьютер |
уровень 2:
реактивное управление |
микроконтроллер | ||
уровень 1:
электроника |
сенсоры и драйвер моторов | ||
уровень 0:
механика |
шасси |
Второй вариант - исключение из архитектуры уровня реактивного управления (номер 2), точнее - перенос его функций на уровень тактического управления (номер 3), сенсоры и управление моторами подключаются непосредственно к миникомпьютеру (Рис.4). Это несколько упрощает схему соединений, однако здесь возможны проблемы с задержками реакций на события. Поскольку миникомпьютер может быть сильно нагружен обслуживанием канала связи и анализом данных от сенсоров, иногда он может не успевать вовремя окликаться на события. Задержка может "дорого стоить", например если робот вовремя не затормозит и ударится об препятствие.
Полная схема (Рис.5), которая содержит всё уровни, сложнее в реализации чем предыдущие, но позволяет устранить описанные выше недостатки.
|
|
|
|
|
|
Программное обеспечение робота состоит из двух частей - прошивка микроконтроллера и ПО миникомпьютера.
Прошивка микроконтроллера (уровень 2 в схеме архитектуры) реализует непосредственное управление двигателями и датчиками, принимая команды от миникомпьютера (уровень 3) через интерфейс RS232. Список команд включает в себя управление движением (вперёд, назад, поворот), запрос расстояния до препятствия от датчика, управление положением камеры. Так же микроконтроллер производит экстренную остановку если датчик сообщает о возникшем на пути препятствии.
Миникомпьютер (уровень 3 в схеме архитектуры) работает под управлением ОС Linux и содержит основное программное обеспечение для управления роботом. Поиск и отслеживание объекта осуществляется с помощью детектора объектов на основе цветовых фильтров [ 1 ] . ПО включает в себя веб-сервер, с помощью которого осуществляется передача видео (MJPEG) в браузер на удалённом ПК оператора.
Исходные тексты программ [ здесь ].
[1] Евгений Борисов Детектор объектов на основе цветовых фильтров. – http://mechanoid.kiev.ua/cv-detector-color.html