Blog

Augmenting Dead Reckoning State Estimation with GPS for Better Odometry

Relative sensor fusion can only take a mobile robot so far. To build truly robust autonomous systems, you have to bound dead reckoning drift with absolute global references.

As part of my ongoing development of System 1 and System 2 robot autonomy infrastructure, I’ve expanded my Python Extended Kalman Filter (EKF) state estimator to include live GPS parsing.

In the video below, you can see how a pure dead reckoning filter (orange) handles a sudden collision anomaly compared to a two-stage GPS-fused EKF (blue).

Here is exactly what the absolute GPS extension brings to the state-estimation pipeline over standard internal tracking:

✔️ 𝗕𝗼𝘂𝗻𝗱𝘀 𝗖𝗼𝗺𝗽𝗼𝘂𝗻𝗱𝗶𝗻𝗴 𝗗𝗿𝗶𝗳𝘁: Eliminates long-term positional integration error, anchoring the local coordinate map to global geographic realities.
✔️ 𝗠𝗶𝘁𝗶𝗴𝗮𝘁𝗲𝘀 𝗪𝗵𝗲𝗲𝗹 𝗦𝗹𝗶𝗽𝗽𝗮𝗴𝗲 𝗔𝗻𝗼𝗺𝗮𝗹𝗶𝗲𝘀: As shown at the end of the clip, when the robot hits a sidewalk barrier and slips, the raw odometry (red) keeps imagining forward motion. The GPS track immediately overrides this, correctly locking the robot as stationary.
✔️ 𝗧𝘄𝗼-𝗦𝘁𝗮𝗴𝗲 𝗝𝗼𝗹𝘁 𝗜𝘀𝗼𝗹𝗮𝘁𝗶𝗼𝗻: Implements a discrete white-noise acceleration pre-smoother to swallow fix-to-fix GPS jumps, preventing absolute “snapping” from disrupting smooth, downstream steering control loops.
✔️ 𝗗𝘆𝗻𝗮𝗺𝗶𝗰 𝗖𝗼𝘃𝗮𝗿𝗶𝗮𝗻𝗰𝗲 𝗚𝗮𝘁𝗶𝗻𝗴: Automatically scales its trust based on satellite geometry and receiver confidence, protecting the system from multi-path noise reflections.

If you are building state estimators for rugged, real-world environments, internal relative data is only half the puzzle.

Read the full article here: https://system1system2.substack.com/p/augmenting-dead-reckoning-state-estimation

← All posts