Симуляционные модели роботов для ROS (часть 1)
Программное моделирование в ROS может помочь вам узнать, как заставить роботов «думать». В конце концов, это большой скачок от создания роботов, ездящих по линии в сторону, к созданию автономных машин. Возможно, одной из самых больших проблем в создании полезных роботов является проблема создания программного обеспечения. С помощью ROS вы сможете разобраться в таких основных вопросах, как использование сенсоров для определения местоположения робота (очувствление), разработка стратегий для определения действий робота (планирование), и затем вычисление команд, необходимых для корректной работы робота (действие).
В этом уроке мы разработаем модель робота с нуля (ну...если сравнивать с уроками по уже готовым моделям Turtlebot'а). Есть несколько причин, почему вам следует пойти по этому пути.
- Вы будете моделировать своего собственного робота, редактируя модель URDF (так вы гарантированно не застрянете, как это может случиться при работе с Turtlebot'ом)
- Доступная разработка алгоритмов, которые можно подключать как к программным роботам (моделям), так и к реальным роботам (чрезмерная отработка на оборудовании приводит к его износу)
- Воздействие на архитектуру робота в ROS (чтобы избежать повторения ошибок проектирования, о которых уже узнали другие)
Обзор: Моделирование
Цель: Создание URDF модели в симуляторе Gazebo, доступном для ROS.
Ссылки: Есть несколько полезных руководств. У меня ни одно из них безупречно не работало. Возможно, они давно не обновлялись, хотя с другой стороны, возможно это я не правильно следовал инструкциям:
Результат: простая модель дифференциального привода, созданная с нуля, которая моделируется в Gazebo и визуализируется в rviz.
Код репозитория (хранилища):
git clone -b base https://github.com/richardw05/mybot_ws.git
Совместимость
Этот мануал конечно же со временем устареет, поэтому ниже приведены характеристики компьютера, на котором выполнялась работа:
Программное обеспечение
- ROS: Kinetic
- OS: Ubuntu 16.04
- OS: Gazebo 7.0.0
Аппаратное обеспечение
- RAM: 8GB DDR4
- SSD: Samsung EVO
- CPU: Intel i5
- GPU: GTX 750ti
Структура каталогов
Большинство учебных пособий сошлись на следующей структуре рабочей области:
- mybot_ws
- src
- mybot_control
- config
- mybot_control.yaml
- launch
- mybot_control.launch
- CMakeLists.txt
- package.xml
- config
- mybot_description
- launch
- mybot_rviz.launch
- urdf
- macros.xacro
- macros.xacro
- mybot.gazebo
- mybot.xacro
- CMakeLists.txt
- package.xml
- launch
- mybot_gazebo
- launch
- mybot_world.launch
- worlds
- mybot.world
- CMakeLists.txt
- package.xml
- launch
- mybot_control
- src
Краткое пояснение:
- mybot_description определяет всю структуру робота в виде звеньев и соединений (шарниров) и может запустить модель в rviz.
- mybot_gazebo запускает модель в среде Gazebo и содержит различные моделируемые "миры" (среды).
- mybot_control (не используется) позволяет контролировать соединения (шарниры) нашей модели, чтобы она могла перемещаться.