Васильев Иван Анатольевич
Санкт-Петербург, ЦНИИ РТК, нач.
лаб., к.т.н.
СИСТЕМА управления
для малЫХ мобильных роботов.
Введение
Мобильная робототехника,
как одно из самых актуальных направлений робототехники, в ЦНИИ РТК имеет высший
приоритет в разработке. В настоящее время во всём мире идут разработки
малоразмерных роботов с характерными габаритами от 0.2 до 0.4 метра. Такие
роботы могут использоваться для антитеррористической деятельности:
-
скрытного
патрулирования территорий;
-
скрытного
выдвижения в целевое положение и наблюдения;
-
скрытного
проникновения в узкие проёмы.
Также их можно
использовать для целей чрезвычайных ситуаций:
-
проникновение
в захламленные помещения;
-
проникновения
в завалы;
-
проникновения
в помещения с агрессивной средой (ядовитые химические соединения, пожар и пр.
экстремальные ситуации).
Сегодня ЦНИИ РТК не
отстаёт от мирового тренда развития робототехники. Сейчас у нас находится в
разработке ряд малоразмерных, как гусеничных, так и колёсных роботов,
предназначенных для вышеописанных целей.
На основе более чем
сорокалетнего опыта создания сложных технических систем в ЦНИИ РТК
сформулированы основные принципы, на которых должны базироваться все системы
управления (СУ) мобильными роботами (МР):
-
модульность;
-
наращиваемость;
-
унифицированность;
-
иерархическая
структура аппаратной части;
-
иерархическая
структура программной части;
-
иерархическая
структура интеллектуального управления.
Любая СУ технической
системой, как известно, состоит из трёх уровней иерархии:
-
аппаратный
уровень (датчики, привода, средства связи и пр.);
-
ПО
нижнего уровня (обмен сигналами с аппаратной частью);
-
ПО
верхнего уровня (целевой функционал управления).
Для обеспечения
управления приводами, обработки различных датчиков а также обеспечения
радиосвязи с пультом на расстоянии до 100 метров на открытой местности может
использоваться стандартный роутер (к примеру, Dlink DIR-320) который перепрошивается открытым ПО
(OpenWRT). Прошивка содержит стандартный функционал роутера, а также туда могут
быть добавлено специализированное ПО, разработанное в ЦНИИ РТК, и тем самым
обеспечивается применение роутера в качестве центрального коммуникационного
устройства робототехнического комплекса.
Таким образом получается
платформа к которой могут быть подключены устройства с Ethernet и/или с CAN
сетью.
Центральным местом
платформы является микропроцессор в ЦНИИ РТК используются микропроцессоры
архитектур x86,ARM,MIPS. При этом с точки зрения:
-
потребления
энергии-наибольший интерес представляют ARM (потребление 10 -20 mW).
-
коммуникационных
возможностей-MIPS (5 штук ethernet, Wi-Fi)
-
вычислительной
мощности-x86 (Intel Atom)
Оба уровня ПО
реализованы на базе GNU Linux и независимы от аппаратной платформы. В настоящее
время не существует микропроцессоров (при достаточном обьеме ОЗУ и
производительности) которые не поддерживались бы GNU Linux, которая по сути
предоставляет равные с точки зрения задач программной платформы мобильного
робота условия,- на любых процессорах. Таким образом, можно констатировать
основные преимущества разработки программной платформы, как-то:
-
переносимость
между аппаратными платформами
-
повторная
применяемость программных модулей
-
структурирование
кода за счет повторного использования
-
возможность
одновременной разработки составных подпрограмм за счет структурирования
-
повышение
надежности
-
простое
взаимодействие роботов имеющих общую платформу
-
программно
унифицированный пульт управления для всех роботов
Главная цель управления
мобильными роботами – движение в заданную точку по заданной траектории. Для
достижения этой цели требуется решить следующие три задачи:
1.
Локализация
робота в некоторой системе координат;
2.
Построение
траекторий для движения робота;
3.
Объезд
препятствий.
Рассмотрим эти задачи
последовательно.
Локализация
Для локализации
используются разные по своей физической природе датчики:
1.
Одометрию
– датчики колёс;
2.
Дальномеры
– измерители дистанций до препятствий;
3.
Инерциальные
навигационные системы;
4.
Системы
технического зрения.
Датчики разной
физической природы используются как по отдельности, когда надо замерить
определённую группу параметров, так и в комплексе, для уточнения информации о
состоянии робота и его окружения.
Локализация производится
в системе координат, начало которой находится в точке старта робота, а оси так:
ось абсцисс направлена вправо, ось ординат – вперёд. Соответственно,
положительный угол поворота – против часовой стрелки.
Экспериментально
установлено, что одометрия хорошо работает лишь при прямолинейных движениях
робота, а при поворотах происходит проскальзывание колёс по причине бокового
трения. Поэтому локализация по одометрии практически не используется.
Рассмотрим локализацию
по инерциальным навигационным системам.
Локализация по
инерциальным датчикам известна давно, но применяется для гораздо более
инерционных объектов, чаще всего для надводных и подводных судов. Для роботов,
которые могут двигаться с большим
ускорением, БИНСы применяются редко.
Для локализации, то есть
определения координат, на роботе установлена БИНС, снабжённая тремя
акселерометрами и тремя гироскопами – датчиками угловой скорости (ДУС). Для
робота, снабжённого качественными одометрами, из БИНС требуется лишь правильно
рассчитанный курсовой угол.
С вертикального ДУС
поступает на робота значение угловой скорости wz.
Расчёт курсового угла производится путём интегрирования угловой скорости
Ai+1 = Ai + wzi Δt
Для упрощения управления
траектория робота строится как ломаная линия, состоящая из прямолинейных
отрезков. Следовательно, во время поворота курсовой угол A даёт вышеприведённый алгоритм, а линейное перемещение получается
из одометров.
Рассмотрим построение траекторий по границам препятствий.
Этот алгоритм быстр
(время расчета зависит от квадрата количества препятствий), но гарантировать
то, что достижимая цель будет найдена нельзя. Правда, для обычных ситуаций этот
алгоритм работает очень надежно. Лишь для экзотических форм препятствий (т.е. в
теории) он дает сбои.
Алгоритм заключается в
том, что из текущей точки в целевую строится прямая и рассматриваются крайние
точки ближайшего препятствия, которое эта прямая пересекает. Эти крайние точки
становятся текущими, и все повторяется снова, пока цель не окажется на прямой
видимости.
Для иллюстрации
рассмотрим рисунок 1.
На рисунке, как принято,
буквами s и e, соответственно, обозначены начальное и целевое положения.
Рассмотрим алгоритм на
этом примере:
1. Из начального
положения строится прямая в целевую точку. Эта прямая пересекает препятствие,
крайние точки которого обозначены 1 и 2. Точки 1 и 2 становятся текущими.
2. Из точки 1 проводится
прямая в целевую точку. Прямая обозначена 1-е. Прямая 1-е пересекает второе
препятствие. Крайние точки которого обозначены 3 и 4.
3. Из точки 2 также
проводится прямая 2-е. Она пересекает снова первое препятствие. Крайние точки
которого 5 и 1. Точку 1 рассматривать нет смысла, так как расстояние s-1 всяко
меньше, чем s-2-1.
4. Из точки 5 крайние
точки второго препятствия 6 и 7.
5. Так продолжая,
получаем четыре ломаных s-1-3-e, s-1-4-e, s-2-5-6-e, s-2-5-7-e. Можно найти
суммарную сложность проезда для каждой ломаной (под сложностью здесь понимаются
затраты ресурсов – топлива, времени и т.п.) и найти минимальную, в смысле
сложности, траекторию.
Объезд препятствий
Общие алгоритмы построения траекторий на бинарной карте
хорошо известны. Например, они подробно описаны в статье автора [4]. Но для
робота, описываемого в данной статье, эти методы плохо применимы по причинам
недостаточной точности датчиков, установленных на роботе.
Дело в том, что неточная карта для алгоритмов построения
траекторий плоха тем, что на ней может не быть пути из текущей точки в целевую,
хотя в действительности такой путь существует.
Поэтому для рассматриваемого робота был предложен другой
алгоритм, не учитывающий карту. Этот алгоритм, как таковой, не является
алгоритмом построения траекторий, а является лишь алгоритмом объезда
препятствий.
Итак, алгоритм.
1.
Вначале проверяется расстояние до
цели и, если оно меньше некоторого, то считается, что цель достигнута;
2.
Если цель не достигнута, то
производится доворот робота на цель;
3.
Далее производится движение по
прямой на 1 метр, после чего переход к п. 1, либо пока расстояние до
непреодолимого препятствия не станет меньше некоторого заданного расстояния;
4.
Маневрируем для объезда препятствия:
если дальномер слева показывает большее расстояние, то едем влево, если справа
– вправо, пока нет возможности проехать, т.е. центральный дальномер не
показывает возможность движения больше заданного расстояния, в этом случае
переход к п. 3. Если все три дальномера показывают невозможность движения, то
переход к п. 5;
5.
Обзор препятствий. В этом случае робот производит разворот на 360
угловых градусов и находит объезд препятствия, который находится ближе всего к
направлению на цель. Поворот робота на найденный угол и переход к п. 1.
Было проведено достаточное количество экспериментов по
движению робота в целевые точки для разных конфигураций рабочей зоны. Приведём
здесь два примера траекторий движения с обозначенными препятствиями.
На рисунке 2 показаны
две оси: абсцисс и ординат, точки старта и конечная, буквой Т обозначена
траектория, цифрами 1 и 2 – препятствия. Как видно, вначале робот едет на
препятствие, затем, когда препятствие попадает в зону безопасности, робот
начинает объезд препятствия. Затем, объехав препятствие, робот разворачивается
в сторону цели и едет прямо. Далее робот доворачивает уже строго на цель и
вскоре финиширует.
График траектории, по
которой робот перемещался во втором примере, приведён на рисунке 3. Условные
знаки на рисунке 2 аналогичны условным знакам на предыдущем рисунке 3.
Здесь видно, что робот,
немного иначе повернув при приближении к препятствию 1, решил объехать и
препятствие 2.
Рисунок 1 –
иллюстрация построения траекторий по границам препятствий |
Рисунок 2 |
Рисунок 3 |
Заключение.
Многочисленные эксперименты, проведённые с описываемымы
роботами, показали хорошую устойчивость разработанных алгоритмов.
Бесплатформенная инерциальная навигационная система работает с малыми уходами
(порядка 0.1 углового градуса за 1 часовую минуту), что вполне допустимая
погрешность (за 10 минут уход составит порядка 1 градуса, что на 100 метрах
даст погрешность не более 1.7 м).
Алгоритм объезда препятствий работает настолько устойчиво,
что загнать робота в тупик ни разу не получилось.
Литература
1.
П.В.Бромберг.
Теория инерциальных систем навигации. М., «Наука» - 1979.
2.
С.Ф.Бурдаков,
И.В.Мирошник, Р.Э.Стельмаков. Системы управления движением колёсных роботов.
СПб, «Наука» - 2001.
3.
И.А.Васильев.
Построение карты окружающего пространства для колёсного робота, снабжённого
лазерным сканирующим дальномером. // Труды XXI Международной
научно-технической конференции «Экстремальная робототехника» - 2010.
4.
И.А.Васильев.
Построение траекторий движения для колёсного мобильного робота, снабжённого
лазерным сканирующим дальномером. // Труды XXI Международной
научно-технической конференции «Экстремальная робототехника» - 2010.