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

В комплект поставки ПО робота входит имитационная модель, сделанная в физическом симуляторе 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 для контроллера управления ходьбой, то вам придется самостоятельно доработать существующую модель.
Запуск модели
Для работы симулятора, необходимо, чтобы в файле .bashrc не было информации об удаленном подключении к ROS-мастеру. Откройте файл .bashrc командой nano ~/.bashrc
и проверьте наличие строк:
export ROS_MASTER_URI=http://10.42.0.1:11311/
export ROS_HOSTNAME=<IP-адрес компьютера>
Если их нет, то всё в порядке. Если строчки есть, то просто закомментируйте их или в качестве ROS_MASTER_URI поставьте IP-адрес вашего компьютера.
После изменения файла ~/.bashrc перезапустите терминал.
Запустить модель можно четырьмя способами:
Через 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