Same route. Different belief.
Dead reckoning adds up measured displacements and ignores absolute fixes. Compare it with the exact-position reference. Which position decides that the run is over?
06 / Localization & mapping · Intermediate
Has it really reached the goal?
The controller follows an estimate. Small sensor errors accumulate.
Explore how new measurements correct that estimate.
A browser simulation with synthetic sensors and planar point motion. The 3D view shows the same run at a fixed display height; it adds no flight dynamics or live execution.
Builds on A* pathfinding.
Before you begin
Every method starts at the same known position. Keep the route, change the estimator, and compare the controller’s conclusion with the physical outcome.
Explore the four questionsTwo independent coordinates; integrate measured displacement, then correct with an absolute fix. Identity transition and measurement matrices.
Dead reckoning ignores absolute fixes. The oracle uses simulator truth and exists only as a privileged reference.
A* plans once on a known map. The follower uses only its position estimate and next waypoint. No peers or network are modeled.
0.1 s odometry, 1 s fixes, seeded noise and optional systematic bias. No GPS, IMU, SLAM, heading state or flight dynamics.
Important distinction: uncertainty is a filter calculation; error compares an estimate with physical truth. The controller can stop on an incorrect arrival claim. This experiment does not estimate or compensate the fixed bias explicitly.
01 / Try it
T / solid: true positionE / dashed or wireframe: estimate+ Z: last absolute fixG: goal
The controller uses E. The learner can also see T. The contour has 2σ semiaxes from assumed covariance; it is not a safety or 95% coverage guarantee.
Inspect the current update
Innovation = fix − predicted estimate. K weights that residual. P and Q/R are variances in m², not the actual squared error measured above.
Watch the difference
━━ True error norm┄ 2√(Pₓ + Pᵧ), assumed scale
The filter assumes zero-mean noise. Fixed bias violates that assumption. The dashed scale is not a calibrated confidence bound, and an individual correction need not reduce the actual error.
Compare belief with position
| Coordinate | True position | Estimated position | Signed error | Assumed σ |
|---|
02 / Follow a question
Compare position sources, change an assumption or interrupt the observations.
Dead reckoning adds up measured displacements and ignores absolute fixes. Compare it with the exact-position reference. Which position decides that the run is over?
Between absolute fixes, the filter predicts from displacement readings. At a fresh fix, inspect how the prediction, measurement and gain produce a corrected estimate.
The filter assumes zero-mean noise. The added bias violates that assumption. Remove it and compare true error with the filter’s calculated uncertainty.
Stop absolute fixes at 3 s; odometry keeps arriving. Restore fixes at 8 s and inspect the first new correction. An old reading stays historical.
Every case starts paused on the U map with seed 1. Bias is enabled except in the remove-bias case. These synthetic observations are generated in the browser; they are not recorded sensor data.
Fixed references use seed 1 with bias enabled. The repeated set uses seeds 1–20 under the same ten configurations. These tables do not change the active run.
| Map / source / fixes | Outcome | Time | Actual goal distance | Estimated goal distance | RMS error |
|---|
| Map / source / fixes | Arrived | False arrival | Collision / budget | Mean RMS error |
|---|
03 / Go deeper
The filter adds measured displacement to its previous estimate. A fresh absolute fix gives it a residual to use for correction. Without a new fix, it keeps predicting.
Default Kalman run · U map · seed 1 · bias enabled. Here K = 0.2857: the estimate moves about 29% of the way from the prediction toward the new reading.
p⁻ = p̂ + d_odom
P⁻ = P + Q
K = P⁻ / (P⁻ + R)
p⁺ = p⁻ + K(z − p⁻)
P⁺ = (1 − K)²P⁻ + K²R
p̂ is the estimate in metres; P is assumed variance in m². Superscripts −/+ mean before/after the new fix. Initial position is known exactly, with P=0.
Q=0.0001 m² per odometry interval; R=0.0025 m² per absolute fix. They match the random perturbations, while the optional fixed bias remains unmodeled.
K is dimensionless. The innovation z−p⁻ is available to the estimator. Its difference from true error is visible in the paired position display.
Accept waypoints within 0.10 m of the estimate. Stop when the final one is accepted; the evaluator then checks the 0.25 m true goal radius. No automatic restart after a false arrival.
Primary method: R. E. Kalman (1960), A New Approach to Linear Filtering and Prediction Problems ↗. Discrete equations: Welch & Bishop, An Introduction to the Kalman Filter ↗. Covariance uses the Joseph form, discussed by Zanetti & DeMars ↗; no nonlinear extension from that paper is implemented.
P describes assumed uncertainty; true error requires evaluator truth. The filter does not estimate the fixed bias. Its 2σ contour is neither a safety envelope nor a demonstrated 95% joint confidence region. This model contains no real GNSS, IMU or camera pipeline.
Keep the thread · Advanced
Share estimates of one target. Explore how repeated information can make agents report more confidence than their evidence supports.