Gazebo
Кратко
Gazebo — открытый симулятор робототехники: виртуальный мир с физикой, сенсорами и трёхмерной графикой, в котором роботы и БПЛА «летают» и «ездят» без единого винта настоящего железа. Ошибка в коде здесь стоит перезапуска симуляции, а не разбитого аппарата — поэтому Gazebo стал стандартным полигоном открытой робототехники.
Для чего используется
- Отладка автопилотов без аппарата. Прошивка PX4 или ArduPilot запускается на обычном компьютере (SITL — Software In The Loop) и управляет виртуальным дроном в Gazebo.
- Разработка алгоритмов роботов — навигация, SLAM, компьютерное зрение на симулированных сенсорах.
- Обучение: виртуальный квадрокоптер прощает любые ошибки пилота и программиста.
- Тестирование до полёта: миссию или новый параметр можно прогнать в симуляции, прежде чем загружать в реальный аппарат.
Как работает
Симулятор считает физику мира — динамику тел, столкновения, работу виртуальных сенсоров (камеры, лидары, IMU) — и обменивается данными с внешним «мозгом»: прошивкой автопилота или программой робота.
С PX4 симулятор работает в режиме lockstep: время симуляции синхронизировано
с автопилотом, и Gazebo идёт ровно с той скоростью, с которой успевает PX4. Это
делает симуляцию воспроизводимой. Запуск — одной командой: make px4_sitl gz_x500
поднимает и автопилот, и симулятор с моделью квадрокоптера X500. Часть моделей
отдаёт видеопоток симулированных камер и лидара по UDP/RTP (порт 5600) — его можно
смотреть прямо в QGroundControl.
ArduPilot связывается с Gazebo через плагин ardupilot_gazebo, не зависящий от
ROS: SITL работает отдельным процессом и обменивается данными с физическим
движком (запуск sim_vehicle.py --model JSON); скорость симуляции регулируется
параметром SIM_SPEEDUP, видео с камер стримится через GStreamer.
Важная веха: «классический» Gazebo (Gazebo Classic, последняя версия — Gazebo 11,
LTS с января 2020) достиг конца поддержки 31 января 2025 года. Ему на смену пришёл
современный Gazebo, который в 2015–2022 годах развивался под именем Ignition:
в апреле 2022 Open Robotics вернула проекту имя Gazebo (анонс «A new era for
Gazebo»; причиной стало препятствие с товарным знаком, команды ign сменились
на gz). Рекомендация разработчиков — мигрировать на актуальный LTS-релиз.
Основные компоненты
- Релизы. Современный Gazebo выходит именованными релизами: LTS Jetty (сентябрь 2025, поддержка до мая 2031), Ionic (сентябрь 2024 — декабрь 2026), LTS Harmonic (сентябрь 2023 — май 2029), LTS Fortress (сентябрь 2021 — май 2027); Garden и Citadel уже сняты с поддержки.
- Модели аппаратов. Для PX4: квадрокоптер X500, VTOL (стандартный, квад-тейлситтер, тильротор), самолёты, роверы (дифференциальный, Ackermann, Mecanum). Для ArduPilot: квадрокоптер Iris и летающее крыло Zephyr.
- Плагины связи — мост между симулятором и автопилотом (ardupilot_gazebo) или ROS.
- Миры и модели в формате SDF. SDFormat (Simulation Description Format) — XML-формат описания объектов и окружений для симуляторов: кинематика и динамика роботов, сенсоры, физические свойства, ландшафт, освещение. Изначально разработан именно для Gazebo.
Примеры
make px4_sitl gz_x500— PX4 + Gazebo с квадрокоптером X500; подключаете QGroundControl и летаете миссию, не вставая из-за стола.- ArduPilot SITL + Gazebo Harmonic на Ubuntu 22.04:
sim_vehicle.py --model JSONс плагином ardupilot_gazebo. - С PX4 современный Gazebo используется на Ubuntu 22.04+; на Ubuntu 24.04 поддерживаются Harmonic, Ionic и Jetty.
Связанные темы
Источники
- Gazebo Releases — релизы и сроки поддержки.
- PX4: Gazebo Simulation — SITL, lockstep, модели, запуск.
- ArduPilot: SITL with Gazebo — плагин ardupilot_gazebo, поддерживаемые версии.
- The Robot Report: Gazebo Classic reaches end of life — EOL Gazebo 11 (31.01.2025), рекомендации по миграции.
- SDFormat — формат описания миров и моделей.
- Open Robotics: A new era for Gazebo — возврат имени Gazebo (2022).