GitHub
Evidence

Measured, not believed

The gate's own reports from real runs in Gazebo Sim, each graded against simulator ground truth. How the test works →

Locked thresholds

MeasurementPassMarginalFail
Distance error≤ 5%5–10%> 10%
Heading error≤ 5°5–10°> 10°

Printed on every report and never quietly loosened.

How a run is graded

The twin is commanded to drive 1 m and turn 90°. Drive and turn are graded against the simulator's true pose. Odometry is graded against that same truth, so a robot whose sensors are wrong about itself can't pass. When something is off, the gate names the spec field to look at first.

GateA pass/fail test in the Gazebo simulator: the twin drives 1 m, turns 90° and stops, and the result is measured against where it really went. reports

Two clean passes and two failures the gate caught. Each report shows every check, the raw measurements, the ground-truth path, and any suspects the gate named.

Indoor Delivery Rover

Described in words, never drawn

Pass

This robot existed only as one paragraph of plain English at 4:52 PM. Muse Spark turned it into a validated spec, the forge built its twin, and the gate measured it: PASS, with odometry matching ground truth to 0.002% over the drive. The full chain, one flow.

Measurements, path and suspects
Drive vs ground truthPass
0.398%
0pass ≤5%fail >10%15
Turn vs ground truthPass
3.653°
0pass ≤5°fail >10°15
Odometry distance vs truthPass
0.002%
0pass ≤5%fail >10%15
Odometry heading vs truthPass
1.088°
0pass ≤5°fail >10°15
Drive: truth / odometry1.004 m / 1.004 m
Turn: truth / odometry93.7° / 92.6°
SimulatorGazebo Sim Harmonic (gz-sim 8); patch version not recorded for this run, physics step 1 ms
Input spec hashnot recorded for this run

Scope: simulated result: the generated model met these motion thresholds in Gazebo; it is not a hardware test, and torque, traction and inertia are only as good as the spec's numbers.

White dot: start. Amber dot: where the robot actually ended up (ground truth).

No suspects. Odometry and ground truth agree inside tolerance on every check.
TurtleBot3 Burger

As specified

Pass

A differential-drive robot built to the public ROBOTIS spec. Nothing injected, nothing hidden.

Measurements, path and suspects
Drive vs ground truthPass
0.968%
0pass ≤5%fail >10%15
Turn vs ground truthPass
2.028°
0pass ≤5°fail >10°15
Odometry distance vs truthPass
0.042%
0pass ≤5%fail >10%15
Odometry heading vs truthPass
4.548°
0pass ≤5°fail >10°15
Drive: truth / odometry1.010 m / 1.009 m
Turn: truth / odometry88.0° / 92.5°
SimulatorGazebo Sim Harmonic (gz-sim 8); patch version not recorded for this run, physics step 1 ms
Input spec hashnot recorded for this run

Scope: simulated result: the generated model met these motion thresholds in Gazebo; it is not a hardware test, and torque, traction and inertia are only as good as the spec's numbers.

White dot: start. Amber dot: where the robot actually ended up (ground truth).

No suspects. Odometry and ground truth agree inside tolerance on every check.
TurtleBot3 Burger

Wheels 10% smaller than the paperwork

Fail

Fault injection: the physical wheels were scaled to 0.9x while odometry kept believing the spec. The robot's own sensors could not see it. The gate could.

Measurements, path and suspects
Drive vs ground truthMarginal
7.617%
0pass ≤5%fail >10%15
Turn vs ground truthMarginal
6.766°
0pass ≤5°fail >10°15
Odometry distance vs truthFail
11.168%
0pass ≤5%fail >10%15
Odometry heading vs truthFail
11.041°
0pass ≤5°fail >10°15
Drive: truth / odometry0.924 m / 1.027 m
Turn: truth / odometry83.2° / 94.3°
Injected faultphysical wheels × 0.9 (odometry keeps the spec size)
SimulatorGazebo Sim Harmonic (gz-sim 8); patch version not recorded for this run, physics step 1 ms
Input spec hashnot recorded for this run

Scope: simulated result: the generated model met these motion thresholds in Gazebo; it is not a hardware test, and torque, traction and inertia are only as good as the spec's numbers.

White dot: start. Amber dot: where the robot actually ended up (ground truth).

Suspect: wheel.diameter_m
odometry distance disagrees with ground truth while heading agrees — a scale error: the wheel radius odometry uses does not match the physical wheels
Suspect: wheel_separation (robot width / wheel track)
odometry heading disagrees with ground truth — the track width odometry integrates over does not match the physical robot (or the wheels scrub/slip in turns)
Pathfinder skid-steer

The turn that wasn't

Fail

Odometry reported a near-perfect drive. In the turn, its wheels scrubbed: it believed 94.6 degrees, the ground truth was 30.6. Caught only because the gate measures truth, not belief.

Measurements, path and suspects
Drive vs ground truthPass
1.550%
0pass ≤5%fail >10%15
Turn vs ground truthFail
59.368°
0pass ≤5°fail >10°15
Odometry distance vs truthPass
0.000%
0pass ≤5%fail >10%15
Odometry heading vs truthFail
64.003°
0pass ≤5°fail >10°15
Drive: truth / odometry1.016 m / 1.015 m
Turn: truth / odometry30.6° / 94.6°
SimulatorGazebo Sim Harmonic (gz-sim 8); patch version not recorded for this run, physics step 1 ms
Input spec hashnot recorded for this run

Scope: simulated result: the generated model met these motion thresholds in Gazebo; it is not a hardware test, and torque, traction and inertia are only as good as the spec's numbers.

White dot: start. Amber dot: where the robot actually ended up (ground truth).

Suspect: wheel_separation (robot width / wheel track)
odometry heading disagrees with ground truth — the track width odometry integrates over does not match the physical robot (or the wheels scrub/slip in turns)

Every robot's verdict, static check and wiring check →