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

Проект RACECAR - работаем с ROS node (Obstacle Avoidance)

25.05.2020

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

Мы продолжаем работу над нашим проектом RACECAR/J, и сегодня у нас - работа с ROS нодом Obstacle Avoidance
Если Вы не читали наши предыдущие статьи о проекте, вы можете легко наверстать упущенное: Проект RACECAR - работаем с алгоритмом SLAM

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

В этой статье я попытаюсь подробно рассказать про наши успехи в генерации кода для машинки и создании отдельного, независимого нода для ее дальнейшего запуска на железке - Obstacle Avoidance Node. 

Давайте же перейдем к сути. После того, как мы испытали все алгоритмы на машинке, мы заинтересовались генерацией кода, ведь так в дальнейшем можно сделать машинку полностью автономной, обмениваясь с ней лишь ROS -сообщениями. И поэтому я представляю нам нашу модель:
Path Following + Obstacle Avoidance

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

  1. Во вкладке 'MODELING' нужно нажать на кнопку 'Model Settings' и настроить параметры для Вашей железки на примере картинки снизу, настроив при этом параметр Hardware board. В нашем случае это машинка на базе ROS:

   2. После этого перейдите на вкладку "ROBOT" и в области "DEPLOY" нажмите на кнопку "Deploy & Load", чтобы сгенерировать код своей модели. 

   3. Все! Теперь у вас есть независимый нод, с которым вы можете общаться (если модель была предназначена для этого) и легко запускать ее с помощью ROS - сообщений.

Теперь давайте я расскажу, как же запустить данный нод на Вашем роботе. Для этого мы создали маленький скрипт, который инициализирует ROS и запускает нод на машинке. Также можно его остановить. Вот данный скрипт: 

Также мы сделали приложение, с помощью которого можно так же запускать независимые друг от друга ноды и останавливать их:

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

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

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

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

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

Теги

    25.05.2020

    Комментарии