Проект RACECAR - работаем с ROS node (Obstacle Avoidance)
Здравствуйте!
Мы продолжаем работу над нашим проектом RACECAR/J, и сегодня у нас - работа с ROS нодом Obstacle Avoidance
Если Вы не читали наши предыдущие статьи о проекте, вы можете легко наверстать упущенное: Проект RACECAR - работаем с алгоритмом SLAM
Обсудить все детали и тонкости проекта, узнать с какими проблемами, подводными камнями и, при помощи каких лайфхаков, столкнулись наши инженеры и как научились их обходить вы сможете посетив наш митап по разработке беспилотного транспорта, который пройдет 27 октября в Москве. Регистрация обязательна.
В этой статье я попытаюсь подробно рассказать про наши успехи в генерации кода для машинки и создании отдельного, независимого нода для ее дальнейшего запуска на железке - Obstacle Avoidance Node.
Давайте же перейдем к сути. После того, как мы испытали все алгоритмы на машинке, мы заинтересовались генерацией кода, ведь так в дальнейшем можно сделать машинку полностью автономной, обмениваясь с ней лишь ROS -сообщениями. И поэтому я представляю нам нашу модель:
Сейчас я расскажу, как легко и быстро сгенерировать код на железке, следуя нижеописанным шагам:
- Во вкладке 'MODELING' нужно нажать на кнопку 'Model Settings' и настроить параметры для Вашей железки на примере картинки снизу, настроив при этом параметр Hardware board. В нашем случае это машинка на базе ROS:
2. После этого перейдите на вкладку "ROBOT" и в области "DEPLOY" нажмите на кнопку "Deploy & Load", чтобы сгенерировать код своей модели.
3. Все! Теперь у вас есть независимый нод, с которым вы можете общаться (если модель была предназначена для этого) и легко запускать ее с помощью ROS - сообщений.
Теперь давайте я расскажу, как же запустить данный нод на Вашем роботе. Для этого мы создали маленький скрипт, который инициализирует ROS и запускает нод на машинке. Также можно его остановить. Вот данный скрипт:
Также мы сделали приложение, с помощью которого можно так же запускать независимые друг от друга ноды и останавливать их:
Теперь самое интересное: видео, где показано, как мы запускаем нод Obstacle Avoidance с помощью нашего приложения:
Но на самом деле сгенерировать код было не так просто, как я описываю здесь, при генерации кода мы столкнулись со множеством проблем, которые мы должны были решить, и в этом нам помог наш профессиональный опыт и документация.
В дальнейшем мы сделаем модель планера для генерации кода и создания независимого нода, в который мы будем отсылать ROS - сообщения о желаемой конечной позиции, что сделает машинку более автономной.
Также нам предстоит работа над созданием полностью автономного робота и независимых нодов других моделей и алгоритмов.
Надеюсь, Вам нравится наш проект и Вы будете дальше следить за нашими новостями!
Удачи и спасибо за просмотр!
Комментарии