• Регистрация
Н/Д
Н/Д 0.00
н/д

Проект RACECAR - работаем c независимыми нодами MCL и Path Following + Obstacle Avoidance

04.06.2020

Здравствуйте!

Мы продолжаем работу над нашим проектом RACECAR/J, и сегодня у нас - работа с ROS нодами MCL / Path Following + Obstacle Avoidance.
Если Вы не читали наши предыдущие статьи о проекте, вы можете легко наверстать упущенное: Проект RACECAR - работаем с ROS node (Obstacle Avoidance)
Также вы можете освежить свои знания, прочитав наш пост о работе с алгоритмом локализации Монте-Карло: Проект RACECAR - работаем с алгоритмом локализации Монте-Карло

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

Как вы знаете из прошлой статьи, мы создали независимую ноду алгоритма Obstacle Avoidance, и сегодня мы с вами разберем создание независимых нодов алгоритом MCL и Path Following + Obstacle Avoidance. 

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

Вот наши ноды:

Вверху, как вы видите, алгоритм Path Following + Obstacle Avoidance, вместо которого также могут использоваться и другие модели для задания движения робота. Внизу же модель Monte-Carlo Localization. 

После того, как мы сгенерировали эти модели и создали две независимые ноды, мы можем работать с ними с помощью нашего приложения ROS App, которое вы уже встречали в предыдущей статье. 

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


Также одновременно с запуском данных нодов, я считывал данные из топика одометрии и данные из топика оцененного местоположения машинки методом Монте-Карло (топик EstPose), что позволило вывести пройденный машинкой путь, путь из топика EstPose и желаемую траекторию движения:

В графике выше можно увидеть, что одометрия, снимаемая с машинки, не точна, и это основная причина, по которой мы используем алгоритм Monte-Carlo Localization в данной модели. 

Также мы можем запускать ноду с алгоритмом MCL и с другими алгоритмами, задающими движение машинке: Obstacle Avoidance и Path Following.

Теперь нам предстоит работа над моделью планера для генерации кода и создания независимого нода, в который мы будем отсылать ROS - сообщения о желаемой конечной позиции, что сделает машинку более автономной. 
Также нам предстоит работа над созданием полностью автономного робота и независимых нодов других моделей и алгоритмов, к примеру, независимого нода с алгоритмом SLAM ( Simulteneous Localization and Mapping) для построения карты местности. 

Надеюсь, Вам нравится наш проект и Вы будете дальше следить за нашими новостями! 

Удачи и спасибо за просмотр!

Теги

    04.06.2020

    Комментарии