Gazebo is the rendering and physics engine that hosts our simulated drone. Everything that’s physical in the deployment — frame, motors, sensors, the warehouse walls the drone tries not to hit — lives as a Gazebo model or world. Everything that thinks (the policy, MAVROS, the takeoff FSM) talks to Gazebo through plugins that translate ROS 2 topics into simulated sensor data and motor commands.
This subsection covers four things. Worlds are the environments the drone flies through — empty_world for hovering tests, obstacle_maze for navigation, dynamic_wind_world for domain randomization. Models describes the airframe and sensor mount geometry, including the customized iris_claudedrone model we use instead of the stock iris_with_ardupilot. Plugins covers the ArduPilot ↔ Gazebo bridge and our custom motor physics. The SDF reference is a flat cheatsheet on the SDF format Gazebo uses — world / model / link / geometry / sensor / plugin elements, with the specific subset we actually use highlighted.
For the higher-level context — how Gazebo fits with ArduPilot SITL, ROS 2, and MAVROS — see the simulation root. For the engineering history (how we got the bring-up working and the layered bugs we hit), see the simulation agent reports and SITL “Waiting for heartbeat”.
Contents
Auto-generated from child entries during build (update-indexes.mjs).