Проект RACECAR - работаем c независимыми нодами MCL и Path Following + Obstacle Avoidance
Здравствуйте!
Мы продолжаем работу над нашим проектом 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) для построения карты местности.
Надеюсь, Вам нравится наш проект и Вы будете дальше следить за нашими новостями!
Удачи и спасибо за просмотр!
Комментарии