QuasiPITech Contact
Robotics software

AMR Platform

Running · simulated robots

An outdoor fleet platform with a safety state machine, traffic reservations and a costmap built from OpenStreetMap.

PythonFastAPISQLiteOpenStreetMapROS 2 (planned)
Illustration for AMR Platform
lines of Python
27,103106 modules
tests
652across 40 files
costmap resolution
0.5 m1600 × 1600 cells in ~2 s
final error
0.7 mafter a 623 m simulated drive
What it is

AMR Platform in short

The production-shaped version for outdoor fleets: FastAPI and SQLite, a validated safety state machine, tiered emergency stop, stuck detection with rerouting, and a range-based battery policy that recalls a robot before it strands. Hardware integration lives behind explicit interfaces, so nothing pretends a physical safety layer exists when it does not.

Status

What works, and what does not

Works today
  • Robots report telemetry through the same path a physical machine uses; a supervisor watches at 10 Hz
  • Validated safety state machine and tiered emergency stop
  • Stuck detection with rerouting around blockages the fleet has actually observed
  • Range-based battery policy that recalls a robot before it strands
  • Four road-rule profiles: pedestrian, service, road, expressway
Not ready yet
  • There is no hardware safety controller. The API reports hardware_safety: false until one is built and commissioned on a bench.
  • Driving a mission on a physical robot needs ROS 2 on the robot; the Nav2 backend refuses to start without it.
  • The stop button in the browser is a remote operational stop, not a safety function.
Under the hood

What had to be got right

01

Nothing is drivable by default

The importer emits only what it can justify from mapped ways and areas. Everything else stays unknown — and unknown is not traversable.

02

Road rules are a profile, not a price

A main road is not merely expensive: a pedestrian profile cannot use it, so a planner never sends a robot down the middle of a public street.

03

Wait, go round, then ask a person

Eight seconds first, then replan around the fleet-wide map of observed blockages (up to three attempts), then stop and ask once.

04

Ground is granted, not assumed

A robot may move only into space the fleet has reserved for it, in four-metre tiles, with leases so a robot that loses power stops holding the corridor.

In pictures

The real build, recorded

Play the recording
Amsterdam, Nes / Rokin — three simulated robots on streets imported from OpenStreetMap.