• Регистрация
MaximSidorov
MaximSidorov +118.29
н/д

Проект RACECAR - работаем с алгоритмом SLAM

14.05.2020

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

Мы продолжаем работу над нашим проектом RACECAR/J, и сегодня у нас - алгоритм SLAM ( Simultaneous Localization and Mapping)
Если Вы не читали наши предыдущие статьи о проекте, вы можете легко наверстать упущенное: Проект RACECAR - работаем с алгоритмом локализации Монте-Карло

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

Сперва давайте же вспомним, что же такое алгоритм SLAM:

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

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

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

Для Вас мы выбрали две наиболее интересные модели, а именно:

  1. SLAM + Obstacle Avoidance
  2. SLAM + Path Following + Obstacle Avoidance

Давайте детально разберем каждую из них:

SLAM + Obstacle Avoidance

В данной модели мы используем алгоритм SLAM с алгоритмом обхождения препятствий, который позволяет машинке проехать по неизвестному для машинки пространству (квартире) и построить карту. В видео ниже вы можете увидеть результат построения карты:

SLAM + Path Following + Obstacle Avoidance

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

Также были испытаны и проверены следующие модели на машинке:

  1. MCL + Path Following + Pure Pursuit
  2. MCL + Path Following + Obstacle Avoidance
  3. SLAM + Path Following + Pure Pursuit

Принцип работы первых двух моделей точной такой же, как и в предыдущей статье, где мы проверяли данные алгоритмы в Gazebo. Последняя же модель работает не так качественно, как SLAM + Path Following + Obstacle Avoidance, ведь в ней нет возможности обхождения препятствий. 

Далее нам предстоит работа над следующими задачами:

  1. Работа с ROS и генерация независимых ROS-узлов
  2. Компьютерное зрение и распознавание образов

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

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

Теги

    14.05.2020

    Комментарии

    • ytrewq
      ytrewq0.00
      16.05.2020 15:59

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

      Использовали лидар в данных примерах?

      А более подробно можно блоки посмотреть/скачать? Или они стандартные и встроены в матлаб?

      • Н/Д
        Н/Д0.00
        18.05.2020 08:45

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

        Мы используем некоторые блоки из Robotics System Toolbox и Navigation Toolbox, но большую часть делаем сами. В будущем, возможно, сделаем из них свой тулбокс, а до тех пор, если какие-то блоки и возможности нужны вам в работе уже сейчас, мы можем обсудить это отдельно по почте tech@exponenta.ru