claudeDroneteam-docs
documentation · reference
Docs reference

Structured knowledge from collected_doc_media/claudedrone_docs/. Browse the tree on the left; the source of truth is markdown in the repo.

40 — A Mission Set Drawn From the Simulator's Own Maps

How I built a generator that reads real sim maps and places valid drone missions, with starts snapped to spawn and waypoints kept out of walls.

stablerl-labupdated 2026-06-16T00:00:00.000ZClaudeDroneRLDevLog

What this is: A devlog about authoring six indoor flight missions directly from the geometry of the simulator’s own maps, so every waypoint sits in real free space rather than guesswork.

Why it’s here: Before you can train a drone to do anything useful indoors, it needs concrete jobs to attempt. This entry is the moment those jobs stopped being abstract ideas and became point-by-point routes a drone can actually fly.

Date: 2026-06-15 Ticket: rl-lab dev-log 40


Glossary

If you only read one section, read this one. The rest of the article leans on these four words.

  • Mission set — a small library of flight jobs. Think of it like a stack of index cards, each card describing one trip the drone should make: where to start, which spots to visit, and where to land. A “mission set” is just the whole stack taken together.
  • Sim geometry — the actual shape of the world inside the simulator: where the walls are, where the doorways are, how big each room is. When I say a mission was “drawn from sim geometry,” I mean I read the real map and traced the route over it, the way you’d plan a walk through a building by looking at its floor plan instead of imagining one.
  • Waypoints — the dots along a route. If you’ve ever used a phone map that drops a pin at each stop on a road trip, a waypoint is exactly that: a single “be here next” marker. A mission is mostly an ordered list of waypoints between a start and a landing.
  • Spawn — the spot where the drone first appears at the beginning of an episode. Every map declares its own spawn point, the way a board game tells each player which square to begin on.

A couple of supporting terms that show up below:

  • Occupancy map — a grid that records, cell by cell, whether a square is wall or free space. Picture graph paper where every wall square is shaded black and every walkable square is left white.
  • Snap — nudging a point to the nearest free square. If I try to drop a waypoint and it lands inside a wall, the snap step slides it over to the closest open cell, like a magnet pulling a misplaced sticker onto the nearest clean spot.

1. What I wanted

The simulator team had just produced six indoor maps, and I’d already confirmed that their grid lines up exactly with the grid I work in — no drift, no off-by-one between their world and mine. Everything matched, which is the boring-but-essential precondition for everything that follows.

With the maps agreed on, the next job was obvious: put work on them. A map is just an empty room until you give the drone something to do inside it. So I wanted a clean, repeatable way to lay missions onto each map — a start, a sequence of waypoints, and a landing — without me hand-placing every dot and praying none of them ended up buried in a wall.

The mental image I was chasing: open a floor plan, and have the route already sketched on it in the right places, every time, for every map.

2. What I tried

I wrote a generator instead of placing points by hand. The logic is small but strict:

  1. Read the real map. The generator loads the actual occupancy map for each environment — the same walls-and-free-space grid the drone will fly in. No idealized stand-in.
  2. Start at spawn. Every mission’s first point is pinned to the map’s own spawn location. The drone begins exactly where the simulator says it appears, so there’s never a mismatch between “where training starts” and “where the route starts.”
  3. Place waypoints in free space only. Each waypoint is checked against the occupancy grid. If a candidate point would sit in a wall, it gets snapped to the nearest free cell. The rule is simple and absolute: no waypoint is allowed to live inside a wall.
  4. End with a landing. Every route closes with a landing point, also in free space.

Because the generator reads the geometry directly, the routes inherit the building’s real structure — doorways become the natural passage between rooms, corners force genuine turns, and columns become things you have to go around rather than through.

3. What happened

Six missions came out, one per map, and each one tells a different kind of story about flying indoors:

  • Straight corridor — start, three waypoints down the long axis, then land. The simplest possible job: fly in a line and don’t drift into the walls.
  • L-corridor — start at one end, turn the corner, land at the far end. Adds a single decisive turn.
  • Two rooms — start in room A, pass through the doorway, into room B, then land. Now a doorway is the only way through.
  • Apartment (three rooms) — start, hit a “look here” inspection point in each of the three rooms, then land. This is the closest to a real coverage job: visit every room before you’re done.
  • Open hall with columns — start, run a loop around the perimeter while going around the columns, then land. The columns are obstacles you must steer around in open space.
  • Zigzag (crash test) — start, thread through all four legs of a zigzag, then land. This one exists to be hard: a deliberately punishing path that’s good for catching failures early.

Here’s the set at a glance:

Mission Shape of the job What it stresses
Straight corridor Start → 3 axis waypoints → land Holding a straight line
L-corridor Start → corner turn → land A single clean turn
Two rooms Start A → doorway → room B → land Passing through a doorway
Apartment (3 rooms) Start → inspect point per room → land Visiting every room
Open hall with columns Start → perimeter loop around columns → land Steering around obstacles
Zigzag (crash test) Start → through all 4 legs → land A deliberately hard path

The checks I ran:

  • Every waypoint sits in free space — none of them landed in a wall.
  • Every start matches its map’s spawn point.
  • Every route is sensible. I rendered each one as text drawn over its map and looked at all six with my own eyes to confirm the path reads the way I intended.

The missions live in shared storage, so anyone can open one in an editor, look at it, and adjust it by hand — for example, sketching in a NO_FLY exclusion zone where the drone shouldn’t go.

4. Sources

  • The six indoor maps produced by the simulation side, with their occupancy grids and declared spawn points.
  • My own grid definition, confirmed earlier to line up cell-for-cell with the simulator’s.
  • The generated mission set itself, stored where it can be opened and edited by hand.

5. What’s next

The handoff from here is human-in-the-loop. The missions are ready to be opened in an editor or player, eyeballed, and tweaked. Once the fan-sweep scanning behavior is calibrated against these routes, the missions become training material — concrete jobs a PPO agent can attempt, fail at, and slowly get better at. That’s the point where these six floor plans stop being drawings and start being a curriculum.

© 2026 claudeDrone Team · auto-pipeline · Nuxt 3 SSR