Моделирование движения мобильного робота

ТЕХНИЧЕСКИЕ НАУКИ

УДК 519.713.007.52

МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ МОБИЛЬНОГО РОБОТА

А. А. Столяров

Хакасский государственный университет им. Н. Ф. Катанова

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

Ключевые слова: мобильный робот, Robot Operating System, глобальный планировщик, локальный планировщик, пакет Robot Operating System, алгоритм, моделирование движения.

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

В данной работе проведено исследование, необходимое для создания информационной подсистемы движения мобильного робота. Для проведения исследования была выбрана система Robot Operating System (ROS). ROS - это мета-операционная система для написания программного обеспечения для роботов, которая включает в себя набор инструментов, библиотек и соглашений, которые направлены на то, чтобы упростить задачу создания сложной и надёжной системы поведения робота на самых различных робототехнических платформах [2].

ROS состоит из двух частей: ядра ROS, минимально необходимого для работы набора инструментов, модулей и библиотек, и набора развиваемых пользователями пакетов.

Для моделирования движения мобильного робота использованы глобальный и локальный планировщики

ROS.

Глобальный планировщик отвечает за генерацию плана высокого уровня для навигационного стека. Выбирая цель, установленную на некотором расстоянии от робота, глобальный планировщик создаёт серию путевых точек для локального планировщика для достижения цели. Кроме того, глобальный планировщик не рассматривает динамику робота. Глобальный планировщик для поиска и построения траектории использует различные алгоритмы, такие как: алгоритм Дейкстры, алгоритм A* и DARRT, DARRTConnect.

Локальный планировщик производит поиск подходящего локального плана в каждом цикле управления. Для этой цели произведено много вариантов траектории. Для произведённой траектории проверяется, сталкивается ли эта траектория с препятствием или нет.

Пакет base_local_planner для ROS обеспечивает выполнение развёртывания траектории и динамических подходов окна (DWA) к локальной навигации робота на плоскости [3]. Пакет base_local_planner - это контрол-лёр, ведущий мобильную базу на плоскости. Он служит для соединения пути планировщика с роботом. Используя карту, планировщик создаёт кинематическую траекторию для робота, чтобы добраться от начала до местоположения цели. По пути планировщик создаёт, по крайней мере, в местном масштабе вокруг робота, функции ценности, представленной как карта сетки. Для выбора эффективной траектории движения использовалась сетка карты. Для каждого цикла управления вокруг робота будет создана сетка, и глобальный путь нанесён на карту этой области.

Пакет move_base обеспечивает выполнение действия, учитывая цель в мире, созданном для моделирования движения робота. Узел move_base также обслуживает два пакета costmaps: один - для глобального, а другой -для локального планировщиков, которые используются с целью выполнения навигационных задач [4]. В отсутствие динамических препятствий узел move_base будет в конечном счёте добираться к цели или сигнализировать отказ пользователю. Узел move_base может произвольно выполнить операцию поведения по восстановлению в ситуациях, когда робот чувствует себя застрявшим.

Для формирования подсистемы движения необходимо было обозначить примитивы манипуляций.

Примитив манипуляции - это функция, которая принимает значение начальной конфигурации робота и подвижных объектов, его перемещение и возвращает конечные конфигурации робота и объектов. Примитивы применяются только к определённым конфигурациям и перемещениям, а каждый экземпляр примитива определяется набором аргументов.

Для данной работы использовались следующие простые примитивы:

- транзит (описывает движение робота). Мобильная база и рука перемещаются отдельно. Транзит применим к любым конфигурациям, в которых объект не перемещается и начальная конфигурация не является толчковой конфигурацией; в этом случае отступление должно быть использовано до применения транзита;

- нажатие (описывает толчок роботом тарелки, расположенной на столе). Нажатие применимо к любой начальной конфигурации, в которой тарелка находится на опорной поверхности;

- захват (описывает жёсткий захват тарелки роботом). Как и транзит, захват перемещает базу и руку отдельно. Захват применим только к начальным и конечным конфигурациям, в которых тарелка жёстко закреплена в руках робота.

Информационная подсистема для мобильного робота состоит из трёх уровней:

- уровня задач;

- функционального уровня;

- уровня базового управления.

С целью реализации информационной подсистемы движения нами был выбран мобильный робот PR2, для моделирования движения которого мы избрали программный продукт МоуеК.

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

На рисунках 1-3 показаны миры с 0 по 2, являвшиеся тривиальными мирами, в которых решение одиночной задачи зависит от выбранного пути, расстояния между начальной и целевой конфигурацией мобильного робота.

Мир № 3, представленный на рисунке 4, отличается от миров с 0 по 2 тем, что кратчайшая траектория движения робота перекрыта барьером в виде стены.

В мире № 4, показанном на рисунке 5, тарелка установлена на неверной стороне стола. В этом случае начальная конфигурация робота при решении второй подцели неэффективна, так как робот изначально не знает, что тарелка находится на дальнем крае стола, и, подъехав к столу, он не сможет произвести захват. После неудачной попытки ему необходим сброс пути, и новый вызов глобального планировщика значительно сказывается на времени моделирования.

В таблице 1 приведено время, затраченное на прохождение всех миров.

Рис. 1. Моделирование движения мобильного робота в мире № 0

Рис. 2. Моделирование движения мобильного робота в мире № 1

Рис. 3. Моделирование движения мобильного робота в мире № 2

В результате проведённого исследования выявлено, что скорость перехода робота PR2 из начальной позиции в целевую зависит от выбранного пути, наличия барьеров и подцелей. Одна из таких подцелей - захват тарелки со стола, и если тарелка находится на дальней от робота стороне стола, то происходит сброс на уровне глобального планировщика и перепланирование пути движения до объекта.

Таблица 1

Время, затраченное на прохождение всех миров

Domain Время выполнения примитивов

Транзит Толчок Захват

огШ 0 1 2 2

огШ 1 1 2 9

огШ 2 4 3 32

огШ 3 7 5 67

огШ 4 9 37 51

Рис. 4. Моделирование движения мобильного робота в мире № 3

Рис. 5. Моделирование движения мобильного робота в мире № 4

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

Библиографический список

1. Цюй, Дуньюэ. Разработка системы управления мобильных роботов с использованием нечётких моделей: дис. ... канд. техн. наук: 05.02.05 / Дуньюэ Цюй [Место защиты: Моск. гос. технол. ун-т «Станкин»]. - М., 2007. - 151 с.

2. Barry, J. A. Hierarchical Approach to Manipulation with Diverse Actions / J. A. Barry, L. Pack Kaelbling, T. Lozano-Perez. - ICRA, 2013. -201 с.

3. base_local_planner: техническая документация. - URL: http://wiki.ros.org/base_local_planner (дата обращения: 14.02.2015).

4. costmap_2d: техническая документация. - URL: http://wiki.ros.org/costmap_2d?distro=hydro (дата обращения: 14.02.2015).

5. move_base: техническая документация. - URL: http://wiki.ros.org/move_base (дата обращения: 14.02.2015).

© Столяров А. А., 2015