• Регистрация
Никита Севостьянов
Никита Севостьянов+905.32
н/д
  • Написать
  • Подписаться

Проект RACECAR - отлаживаем алгоритмы в Gazebo

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

Мы продолжаем совершенствовать и дорабатывать наш проект RACECAR/J, начало которому положила статья моего коллеги: Проект RACECAR - разрабатываем автономную машинку

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

Сегодня я хочу рассмотреть работу Matlab/Simulink  с симулятором Gazebo, в котором мы и будем испытывать нашу машинку.

 

 Приступим же. 

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

Но, конечно, перед тем, как запустить свою первую симуляцию в Gazebo, мы столкнулись с множеством проблем, которые нужно было решить. Подробнее об этом вы можете спросить в комментариях=) Чтобы уж сильно не загромождать статью. 

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

Теперь поподробнее расскажу о наших результатах:

  1. Алгоритм обхождения препятствий

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

  2. Алгоритм чистого преследования для прохождения выбранного пути на трассе.

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

    Он позволяет отслеживать путь одновременно избегай некоторые объекты и препятствия. Было также замечено, что данный алгоритм работает немного точнее, чем алгоритм выше

  4. Построение карты с помощью встроенного MATLAB приложения SlamMapBuilder App. /

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

Следует также сказать, что все алгоритмы работают в MATLAB'е, в Gazebo же мы наблюдаем симуляцию движения. 

Вот наши данные и результаты:

Я добавил в мир для симуляции некоторые препятствия, чтобы было больше характерных точек для нахождения loop closure.


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

Данные карты были полученены с помощью rosbag файлов и алгоритма обхождения препятствий.

И вот результаты получшившихся карт:

             Контур внутри трассы                                                                 Трасса без препятствий

              Трасса с препятствиями


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

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

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

Теги

    16.04.2020

    Комментарии