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.

Связанные темы

Источники

Обновлено: 2026-07-09