obstacle_maze.sdf is the main training-grade indoor world. It contains:
- A bounded room (~18 m × 12 m) with floor, ceiling, and four walls.
- Vertical pillars (~30 cm diameter, varied positions) acting as obstacles.
- A few “corridor” regions where pillars are packed densely enough to force narrow-passage navigation.
The geometry is not a literal maze in the dead-end sense — there’s no fixed solution path. It’s a sparse obstacle field that the drone has to navigate through while building a coverage map. The training reward shapes whether the policy learns to explore the space efficiently (coverage-focused reward) or traverse it efficiently (waypoint-focused reward); the same world supports both.
Why this geometry
The pillar layout is hand-designed to expose three failure modes that simpler worlds don’t:
- Local minima for greedy planners. A pillar between the drone and the next frontier forces the planner to commit to going around it; greedy approaches loop indefinitely.
- Sensor occlusion zones. Behind a pillar, the rangefinders see nothing — the policy has to remember what it just saw and not fly into the occluded region blindly.
- Narrow-passage discrimination. Two pillars 50 cm apart with a 30 cm drone is feasible but tight; the policy has to know which gap is wide enough to fit through.
For the flagship benchmark, see RL vs lawnmower — those results came from warehouse_v2, an evolved version of this world with more realistic indoor warehouse geometry.
Where to go next
- Empty world — the no-obstacle baseline
- Worlds hub — sibling worlds
- RL vs lawnmower benchmark — performance numbers in worlds like this