◀ WORLD II · THE FOLDTHE OCHO · blue builds │ the machine │ red breaks

THE MOTION MODEL

Where am I, from my wheels alone — and why that answer drifts. Two encoders give you left and right wheel speed; nothing more. Integrate them and a pose (x, y, θ) falls out, accurate for a moment. But there is no landmark, no GPS, no correction — so the small errors compound and the uncertainty grows without bound. Down the center: wheel speeds go in, the model integrates, a pose and a spreading covariance come out. The blue team builds and defends it; the red team tries to break it.

source S. Thrun, W. Burgard & D. Fox, Probabilistic Robotics, ch. 5 — motion models & dead reckoning (MIT Press, 2005) — mitpress.mit.edu/9780262201629. No open primary text: cited author/title/year, marked AMBER. Rendered, not quoted.

◧ blue team · builds & defends
3

THE MODEL — kinematics & propagation

Two constructive maps, no lookup:

wheels → body   v = (vL+vR)/2,   ω = (vR−vL)/L. Equal wheels ⇒ pure translation; opposite wheels ⇒ spin in place.

body → world   exact arc integration of (v, ω) over Δt — a straight step advances only along heading; a turn rotates θ alone.

uncertainty   P ← G·P·Gᵀ + Q, the EKF prediction. Q is the odometry noise added every step. With no correction, tr(P) can only rise.

Live, for the current run:

5

THE LINEAGE — the prediction step AVAN

Dead reckoning is not a filter — it is the half a filter keeps and corrects. Every Kalman/EKF cycle is predict then update: the-motion-model is the predict, integrated open-loop, exact for a moment and drifting forever after.

The neighbour sphere adds the second half — an external measurement that pulls P back down. Take that away and you are left with exactly this: the correction removed, the growth exposed. Each sphere is the next one's premise.

7

THE WITNESS live

The blue team's live check: re-run the propagation over a fixed drive profile and confirm the covariance trace is strictly increasing — drift, by construction. If red freezes the covariance, this badge is where it shows.

▼ the machine ▼
4

DATA IN — wheel odometry in ↓

All the robot is given: two wheel speeds and the track width L between them — interoceptive only, nothing from the outside world.

symbolmeaningfrom
vL, vRleft / right wheel speedencoders
Ltrack width (wheelbase)fixed
Δttime per stepclock
Qodometry noise / stepassumed

There is no position sensor in this list. That absence is the whole story of window 8.

▼   integrate the wheels into a pose   ▼
0

▣ THE PANEL — the model LIT

Move any control — the pose is integrated from the wheels on the spot, and the ellipses are the propagated covariance, never looked up. Faint threads are fixed-seed noisy samples: the real cloud the ellipse predicts.

▼   the model emits pose + growing spread   ▼
8

DATA OUT — pose & drift out ↓

What the model produces, proven: a pose estimate that is exact on a known profile (a straight drive advances by v·t; a spin changes only θ) and a covariance whose trace strictly grows under noisy odometry with no correction. A closed loop returns near the start in the mean — but wrapped in an uncertainty that only widened.

The blue team's witness (left) confirms the growth live; the red team (right) tries to hide it.

red team · attacks & breaks ▤
1

THE ADVERSARY

WALL Dead reckoning has no observability of absolute pose. Integrate forever and the error integrates too — heading error alone grows the position error linearly with distance, without limit. There is no fixed point to fall back to.

Worse, real odometry error is not zero-mean: unequal wheel radii, tyre wear, and a mis-measured track width L are systematic biases the Gaussian Q does not model — so the true error routinely exceeds the ellipse. Wheel slip on turns and uneven ground break the rigid-contact assumption entirely. The model is honest only until the wheels lie.

2

THE GRAVEYARD

"Odometry tells you where you are." Cut. It tells you the change; absolute pose is an integral with no boundary condition — error accumulates unbounded.

"Higher encoder resolution fixes the drift." Cut. Resolution shrinks quantisation noise, not the systematic bias (wheel-radius / track-width error) that dominates a long run.

"The covariance ellipse is the true error." Kept, corrected. It is the modeled error under an assumed zero-mean Q. Real, biased error can and does fall outside it — the ellipse is a promise the wheels need not keep.

6

THE TAMPER — break it

The red team's move: declare the odometry exact — freeze the covariance so it never grows. Now the robot believes its pose perfectly after any run. The blue team's witness (window 7) is watching.

Freeze the growth and the drift is hidden: the ellipse stays a dot while the sampled threads scatter. The witness recomputes, finds tr(P) no longer rising, and turns red. Nothing is faked; the attack is real and it is caught.