Проект RACECAR - работаем с алгоритмом SLAM
Здравствуйте!
Мы продолжаем работу над нашим проектом RACECAR/J, и сегодня у нас - алгоритм SLAM ( Simultaneous Localization and Mapping)
Если Вы не читали наши предыдущие статьи о проекте, вы можете легко наверстать упущенное: Проект RACECAR - работаем с алгоритмом локализации Монте-Карло
Обсудить все детали и тонкости проекта, узнать с какими проблемами, подводными камнями и, при помощи каких лайфхаков, столкнулись наши инженеры и как научились их обходить вы сможете посетив наш митап по разработке беспилотного транспорта, который пройдет 27 октября в Москве. Регистрация обязательна.
Сперва давайте же вспомним, что же такое алгоритм SLAM:
Алгоритм SLAM (Simulteneous Localization and Mapping) иcпользуется в мобильных автономных средствах и роботах для построения карты в неизвестном пространстве или для обновления карты в заранее известном пространстве с одновременным контролем текущего местоположения и пройденного пути. Популярные методы приближенного решения данной задачи - фильтр частиц и расширенный фильтр Калмана.
Говоря простым языком, суть данного метода заключается в его названии - одновременная локализация и картография.
Теперь можно приступить и к нашим результатам. Ведь мы создали несколько моделей, где алгоритм SLAM используется в связке с другими алгоритмами, которые задают движение робота.
Ведь иногда так хочется отдохнуть и дать роботу все сделать за тебя.
Также в прошлой статье нам задали вопрос, почему же машинка дергается, когда выполняет некоторые алгоритмы. И, к счастью, мы смогли эту проблему решить, и теперь машинка едет более плавно.
Для Вас мы выбрали две наиболее интересные модели, а именно:
- SLAM + Obstacle Avoidance
- SLAM + Path Following + Obstacle Avoidance
Давайте детально разберем каждую из них:
SLAM + Obstacle Avoidance
В данной модели мы используем алгоритм SLAM с алгоритмом обхождения препятствий, который позволяет машинке проехать по неизвестному для машинки пространству (квартире) и построить карту. В видео ниже вы можете увидеть результат построения карты:
SLAM + Path Following + Obstacle Avoidance
В данной модели мы используем алгоритм SLAM с алгоритмом следования по пути, который использует также алгоритм обхождения препятствий, что улучшает результат следования по траектории. Результат построения карты вы можете увидеть в видео ниже:
Также были испытаны и проверены следующие модели на машинке:
- MCL + Path Following + Pure Pursuit
- MCL + Path Following + Obstacle Avoidance
- SLAM + Path Following + Pure Pursuit
Принцип работы первых двух моделей точной такой же, как и в предыдущей статье, где мы проверяли данные алгоритмы в Gazebo. Последняя же модель работает не так качественно, как SLAM + Path Following + Obstacle Avoidance, ведь в ней нет возможности обхождения препятствий.
Далее нам предстоит работа над следующими задачами:
- Работа с ROS и генерация независимых ROS-узлов
- Компьютерное зрение и распознавание образов
Надеюсь, Вам нравится наш проект и вы будете дальше следить за нашими новостями!
Удачи и спасибо за просмотр!
Комментарии
Здравствуйте.
Использовали лидар в данных примерах?
А более подробно можно блоки посмотреть/скачать? Или они стандартные и встроены в матлаб?
Здравствуйте! Да, мы использовали лидар в большинстве примеров. Как раз с помощью него мы и получаем карту неизвестного пространства. Также он используется в алгоритме обхождения препятствий и других подобных моделях.
Мы используем некоторые блоки из Robotics System Toolbox и Navigation Toolbox, но большую часть делаем сами. В будущем, возможно, сделаем из них свой тулбокс, а до тех пор, если какие-то блоки и возможности нужны вам в работе уже сейчас, мы можем обсудить это отдельно по почте tech@exponenta.ru