ROS2 + Gazebo (Fortress) симулятор для задач SAUVC.
Рекомендуемый способ запуска симулятора — через автоматизированный скрипт ./db, который сам создаёт и запускает Docker-контейнер с нужным окружением, собирает и стартует симулятор.
- Установленный Docker
- Доступ к X11 (для отображения GUI)
- Права на запуск скрипта:
chmod +x ./db
./dbСкрипт автоматически:
- Проверяет наличие и актуальность контейнера (mount текущего workspace)
- Пересоздаёт контейнер при необходимости
- Собирает только нужные ROS2-пакеты
- Запускает симулятор с основным сценарием
Примечание: При первом запуске потребуется загрузка Docker-образа и установка зависимостей (может занять несколько минут).
В рабочем состоянии используются пакеты:
simulator_launch— launch-оркестрация запускаsimulator_description— модели и ресурсы роботаsimulator_simulation— миры и ресурсы окруженияsimulator_gazebo_plugins— C++ плагины Gazebostingray_interfaces— контрактыmsg/srv/actionsimulator_perception— Python-ноды (включаяconverter)
Пакеты-обертки simulator_bridge и simulator_control удалены как неиспользуемые.
Если требуется ручная сборка и запуск вне Docker:
- ROS2 Iron
- Gazebo Fortress
ros-<distro>-ros-gz
colcon build
source install/setup.bashros2 launch simulator_launch sim.launch.pyros2 launch simulator_launch mission_sauvc.launch.pysimulator_launch/launch/mission_sauvc.launch.py— основной сценарий SAUVCsimulator_launch/launch/world_man.launch.py— сценарий с worldmansimulator_launch/launch/diff_drive.launch.py— сценарий diff_drivesimulator_launch/launch/rrbot_setup.launch.py— сценарий rrbot
- Bridge-конфиг:
simulator_launch/config/simulator_bridge.yaml - RViz-конфиги:
simulator_launch/config/diff_drive.rvizsimulator_launch/config/rrbot.rviz
- Topics:
/simulator/sensors/*,/simulator/perception/*,/simulator/control/*,/simulator/state/* - Services:
/simulator/control/*,/simulator/system/* - Actions:
/simulator/mission/*
- Все межмодульные контракты оформляются через
stingray_interfaces. - Новые runtime-настройки выносятся в YAML.
- Избегать legacy-имен и неинформативных названий файлов.