Симуляционные модели роботов для ROS (часть 1): различия между версиями

Материал из RoboWiki
Перейти к навигации Перейти к поиску
Строка 72: Строка 72:
 
# '''mybot_gazebo '''запускает модель в среде Gazebo и содержит различные моделируемые "миры" (среды).
 
# '''mybot_gazebo '''запускает модель в среде Gazebo и содержит различные моделируемые "миры" (среды).
 
# '''mybot_control '''(не используется) позволяет контролировать соединения (шарниры) нашей модели, чтобы она могла перемещаться.
 
# '''mybot_control '''(не используется) позволяет контролировать соединения (шарниры) нашей модели, чтобы она могла перемещаться.
 +
 +
Чтобы создать базовый каркас структуры каталогов, мы начнем с рабочего пространства ''{WORKSPACE} _ws'', где установим ''{WORKSPACE}'' = mybot.
 +
 +
cd ~
 +
mkdir mybot_ws
 +
cd mybot_ws
 +
catkin init
 +
mkdir src
 +
catkin build
 +
echo "source ~/mybot_ws/devel/setup.bash" >> ~/.bashrc # Adds workspace to search path

Версия 22:26, 15 июля 2019

Программное моделирование в ROS может помочь вам узнать, как заставить роботов «думать». В конце концов, это большой скачок от создания роботов, ездящих по линии в сторону, к созданию автономных машин. Возможно, одной из самых больших проблем в создании полезных роботов является проблема создания программного обеспечения. С помощью ROS вы сможете разобраться в таких основных вопросах, как использование сенсоров для определения местоположения робота (очувствление), разработка стратегий для определения действий робота (планирование), и затем вычисление команд, необходимых для корректной работы робота (действие).

В этом уроке мы разработаем модель робота с нуля (ну...если сравнивать с уроками по уже готовым моделям Turtlebot'а). Есть несколько причин, почему вам следует пойти по этому пути.

  1. Вы будете моделировать своего собственного робота, редактируя модель URDF (так вы гарантированно не застрянете, как это может случиться при работе с Turtlebot'ом)
  2. Доступная разработка алгоритмов, которые можно подключать как к программным роботам (моделям), так и к реальным роботам (чрезмерная отработка на оборудовании приводит к его износу)
  3. Воздействие на архитектуру робота в 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
      • mybot_description
        • launch
          • mybot_rviz.launch
        • urdf
          • macros.xacro
          • macros.xacro
          • mybot.gazebo
          • mybot.xacro
        • CMakeLists.txt
        • package.xml
      • mybot_gazebo
        • launch
          • mybot_world.launch
        • worlds
          • mybot.world
        • CMakeLists.txt
        • package.xml

Краткое пояснение:

  1. mybot_description определяет всю структуру робота в виде звеньев и соединений (шарниров) и может запустить модель в rviz.
  2. mybot_gazebo запускает модель в среде Gazebo и содержит различные моделируемые "миры" (среды).
  3. mybot_control (не используется) позволяет контролировать соединения (шарниры) нашей модели, чтобы она могла перемещаться.

Чтобы создать базовый каркас структуры каталогов, мы начнем с рабочего пространства {WORKSPACE} _ws, где установим {WORKSPACE} = mybot.

cd ~
mkdir mybot_ws
cd mybot_ws
catkin init
mkdir src
catkin build
echo "source ~/mybot_ws/devel/setup.bash" >> ~/.bashrc # Adds workspace to search path