Deep-diveAMRAGVrobotics

AMR / AGV navigation and your facility map: what Spatial Map gives a robotics team (and what it doesn’t)

Spatial Map is not a fleet manager. It gives AMR/AGV teams facility geometry as GeoJSON, a route check from walls, doors and racks, and live robot positions.

9 min readPublished Updated By Spatial Map team
Acme Warehouse demo in 3D: racks, forklift aisles, dock doors and worker markers — the walls, doors and racks a route is worked out from

What the map can and can’t do for a fleet

How Spatial Map actually routes

There is no hand-maintained graph of nodes and edges. When you ask for a route, Spatial Map lays a grid of 25 cm cells over the current floor and marks each cell open or blocked from what is drawn there. Open floor — the rooms, zones and aisles you drew as areas — is walkable. Lines and walls block, using their wall thickness. Each door opens a gap in the wall it sits on. Every rack cell is an obstacle. Walls and racks are padded by about 0.3 m of clearance, so a gap narrower than roughly 0.6 m counts as closed. A* then finds the shortest open path, which is straightened and centred in each aisle.

Facility drawing → walkability grid → A* pathOpen floor is walkable, walls and rack cells block, doors open gaps; A* finds the shortest path on a 25 cm grid.

Routing stays on one floor. Stairs, lifts and escalators are drawn and labelled on the map, but the search does not climb them, and there is no "prefer lifts" option. A multi-floor trip is two routes: one to the lift on the first floor, one from the landing on the next. The full rules are in the wayfinding docs.

Author the geometry once

In the Acme Warehouse demo this work is already done: 17 racks and 33 doors sit on the traced floor plan, so a route preview from receiving to a pick face runs down the forklift aisles between the racks rather than through them. For your own site:

  1. 1
    Draw walls and aisles as lines

    Use the Aisle / Line tool (L) or Magic walls (W), which builds walls around areas you pick. Lines are barriers for routing, using their wall thickness. A wall that exists only in the floor plan image blocks nothing until you draw it.

  2. 2
    Place doors on the walls

    The Door tool (D) places a door by its two jambs on a wall. Each door opens a gap the route can pass through; a room without a door on its wall is unreachable.

  3. 3
    Draw racks with the Rack tool

    Press G. Every rack cell is an obstacle, so routes use the aisles between racks.

  4. 4
    Draw rooms and zones as areas

    Use the Area tool (P). Areas are floor space, not barriers. You can give an area a role (Zone, Office, Storage…) for labelling, but roles don’t change routing: there is no "restricted" or "robot-only" role.

  5. 5
    Check it with Route preview

    Press N in the editor and click a start and a destination. "No path found" usually means a door is missing or off its wall; the Directions panel shows distance, walking time and turn-by-turn steps. Do this before a robotics team ever sees the map.

Hand the geometry to the fleet

Spatial Map does not expose routing through an API, SDK or fleet-manager connector, and it does not publish a navigation graph. What it gives a robotics team is the source geometry. In the editor, the Data menu’s export opens Export shapes…, which writes the facility as GeoJSON (a FeatureCollection with each feature’s kind in properties.kind and its full geometry), JSON, Excel or CSV — everything, chosen kinds (lines and walls, doors, racks, areas, stairs…) or just the selection.

json·Excerpt from an Export shapes… GeoJSON file (illustrative values, config fields omitted)
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": { "type": "LineString", "coordinates": [[-81.70061, 41.50012], [-81.70002, 41.50013]] },
      "properties": { "id": 412, "kind": "line", "name": "North wall", "floorPlanId": 48, "rotation": 0 }
    },
    {
      "type": "Feature",
      "geometry": { "type": "LineString", "coordinates": [[-81.70041, 41.50012], [-81.70037, 41.50012]] },
      "properties": { "id": 88, "kind": "door", "name": "Dock door 3", "floorPlanId": 48, "rotation": 0 }
    }
  ]
}

Show the fleet on the map — monitoring, not control

Where Spatial Map does help day to day is visibility. If your fleet manager or middleware can report where each robot is, the map can show it next to the racks, people and stock it already displays:

  1. 1
    Create a table for the fleet

    In Tables, create a table such as “Forklifts” or “AMRs” and pick Asset (mobile). It starts with the standard columns — an external code plus longitude and latitude — and you add battery, state or task fields (tables).

  2. 2
    Feed it positions

    Push rows from your middleware with the table’s write API — one bearer token per table, bulk upserts of up to 1,000 rows per call, 60 requests a minute per token by default — or let the table pull from a REST endpoint on a schedule (the poller checks about once a minute). It is near-real-time visibility, not a control loop.

  3. 3
    Link it to the facility

    Add a data link with Live location marker to place each robot at its coordinates, Movement trails to draw recent paths, or Historical movement to replay the table’s change log with a player at the bottom of the map (data links).

  4. 4
    Report on the work

    Log tasks in a table too. The Acme Warehouse demo keeps a Pick Events log with a forklift on every event, and its Forklift Utilization report turns that into a trips-per-forklift donut — the same wizard works for robot missions.

Creating a table for mobile assets
Create new table screen for Acme Corp: a table name field with the placeholder e.g. Forklifts, Cameras, Shipments, the kinds Polygon / area, Circle, Marker / POI, Asset (mobile), Camera, Sensor, Shipment, RFID tag and Streaming / batch replay, and the starting fields External code and Longitude
Create new table screen for Acme Corp: a table name field with the placeholder e.g. Forklifts, Cameras, Shipments, the kinds Polygon / area, Circle, Marker / POI, Asset (mobile), Camera, Sensor, Shipment, RFID tag and Streaming / batch replay, and the starting fields External code and Longitude

What to expect

25 cm
Routing grid cell size
≈ 0.3 m
Clearance around walls and racks
1 floor
Per route — stairs and lifts aren’t searched
GeoJSON
Geometry export for robotics tools

For the people side of the same routing — the Navigate button in the viewer, walking times, turn-by-turn steps — read indoor wayfinding with turn-by-turn directions. For operations around the robots, see Spatial Map for warehouses.

Try the platform your data belongs on.

Spatial Map turns spreadsheets, sensor streams, and CAD drawings into one live 3D facility view — nothing to install, seven-day free trial.

See it live

Keep reading