empty_world.sdf is the simplest possible Gazebo world: a flat ground plane, default lighting, no obstacles. Its job is to be uninteresting — when you’re debugging a flight-control issue, you want as few moving parts as possible, and an empty world removes all the questions about whether some other obstacle is interfering with what you’re trying to test.
Typical uses:
- First smoke flight — “does the drone arm, take off, and hover stable?”
- Setpoint accuracy testing — fly to a list of waypoints, measure overshoot and steady-state error without any obstacle-avoidance behavior in the way.
- Baseline reward calibration — RL reward functions need a zero-reference; an empty world provides that.
- MAVROS bring-up — verifying that the simulated drone connects to MAVROS and emits the expected topics.
The world has no <spherical_coordinates> block by default; we add one (per the lesson from SITL “Waiting for heartbeat”) to make sure AHRS/navsat init doesn’t quietly fail.
Where to go next
- Obstacle maze — the next step up in difficulty
- Worlds hub — sibling worlds
- SDF reference — how worlds are described structurally