Описание имитационной модели

В комплект поставки ПО робота входит имитационная модель, сделанная в физическом симуляторе PyBullet. Её удобно использовать для того, чтобы в первом приближении протестировать ваш собственный алгоритм. Модель сделана в виде ROS-пакета.

Как установить пакет симуляции робота и все необходимые библиотеки, смотрите в разделе Установка ПО.

Модель робота выполнена в виде xacro-файла. В нём описаны кинематическая схема робота, динамические характеристики звеньев и звенья, имитирующие периферийные устройства (imu, lidar, камера, голова). Если вы хотите убрать/добавить какое либо устройство, например голову, то закомментируйте/раскомментируйте соответствующий блок в файле. После этого обязательно нужно сконвертировать xacro-файл в urdf. Для этого введите в терминале:

cd ~/mors_ws/src/mors_pc/mors_sim/urdf
rosrun xacro xacro mors.xacro > mors.urdf

Взаимодействие с моделью идет по такому же протоколу, что и с аппаратной платформой. Она использует те же самые топики, сервисы и lcm-каналы. Таким образом, если какая-то определенная нода работает на модели, то она с большой вероятностью заработает на роботе. Проблемы могут встретиться только на уровне динамики робота (динамические характеристики, такие как масса, инерция и ЦМ звеньев слегка отличаются) и задержек при передаче данных. В большинстве случаев это не критично, кроме обучения с подкреплением (RL). Если вы захотите использовать RL для контроллера управления ходьбой, то вам придется самостоятельно доработать существующую модель.

Запуск модели

Запустить модель можно четырьмя способами:

  • Через launch-файл пакета mors:

roslaunch mors bringup_sim.launch

При вводе команды запустит симуляцию в pybullet, подгружает config-файл из пакета mors и загрузит все модули для управления ходьбой. Вы можете использовать различные аргументы для изменения параметров загрузки пакетов. Подробнее об этом в разделе Параметры файла bringup_sim.launch.

  • Через launch-файл пакета mors_sim:

roslaunch mors_sim mors_pybullet.launch

Команда запускает только симуляцию в pybullet и подтягивает config-файл из пакета mors_sim

  • Запустить напрямую через rosrun:

rosrun mors_sim mors_pybullet.py

Команда запустит только симуляцию. Конфигурация загрузится так, которая стоит по умолчанию.

  • через launch-файл, который откроет 3d-модель робота в Rviz

roslaunch mors_sim mors_rviz.launch

По этой команде откроется только rviz. Такой способ запуска удобен, когда вы работаете только с xacro-файлом (например, добавляете новое устройство).

Last updated