ARGOS LAB Start with an idea

06 / Localization & mapping · Intermediate

Position
estimation.

Has it really reached the goal?

The controller follows an estimate. Small sensor errors accumulate.
Explore how new measurements correct that estimate.

Try the experiment
Actual distance to goal
1.437 m
Estimated distance to goal
0.027 m
Worked example · dead reckoning · U map · seed 1 · bias enabled · 16.4 s
Zoom near the goal. E is the estimate; T is the true position. The 0.25 m circle marks the physical arrival region.
The controller announces arrival. T is still outside that region. Absolute fixes are ignored by this baseline.

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

The route is valid.
Is the arrival claim?

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 questions
Method & assumptionsExact reference / dead reckoning / linear Kalman · one robot
Synthetic displacement + absolute fixes · 0.1 s updates · no bias state
State estimation
Linear Kalman position filter

Two independent coordinates; integrate measured displacement, then correct with an absolute fix. Identity transition and measurement matrices.

Baselines
Dead reckoning / exact oracle

Dead reckoning ignores absolute fixes. The oracle uses simulator truth and exists only as a privileged reference.

Control and architecture
One estimator + waypoint follower

A* plans once on a known map. The follower uses only its position estimate and next waypoint. No peers or network are modeled.

Sensing and fidelity
Synthetic position errors

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

Separate the estimate from the truth.

Paused
Physical truth + estimator view

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.

True estimation error0.000 m||estimate − truth|| · evaluator only
Actual goal distance7.000 mPhysical success radius: 0.25 m
Estimated goal distance7.000 mWaypoint acceptance radius: 0.10 m
Motion time0.0 sStep 0 / 400 · 0.1 s intervals

Inspect the current update

What did the estimator receive?

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

Error can outgrow reported uncertainty.

━━ 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

Inspect what the controller can conclude.

The controller reads estimated x/y and its current waypoint. True x/y and error are evaluator columns; only the exact-position reference is given truth.
CoordinateTrue positionEstimated positionSigned errorAssumed σ

02 / Follow a question

Where it is.
Where it thinks it is.

Compare position sources, change an assumption or interrupt the observations.

01 / Choose the position source

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?

02 / Use a new observation

A fix brings new information.

Between absolute fixes, the filter predicts from displacement readings. At a fresh fix, inspect how the prediction, measurement and gain produce a corrected estimate.

03 / Question the assumptions

Small uncertainty. Small error?

The filter assumes zero-mean noise. The added bias violates that assumption. Remove it and compare true error with the filter’s calculated uncertainty.

04 / Lose and restore fixes

Keep predicting through the gap.

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.

Compare reference runs and twenty noise seeds 10 configurations · 200 trials

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.

Arrival requires the controller's completion claim and actual goal distance ≤0.25 m. A future fix cannot restart a terminal run.
Map / source / fixesOutcomeTimeActual goal distanceEstimated goal distanceRMS error

All 200 seeded trials

Each row covers twenty seeds. Mean RMS averages each run's own observation window, including initialization; it is not a common-duration benchmark.
Map / source / fixesArrivedFalse arrivalCollision / budgetMean RMS error

03 / Go deeper

Predict from movement.
Correct with a measurement.

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.

First fix · x coordinate · 1.0 s
Prediction
3.5260 m
New reading
3.4480 m
Corrected estimate
3.5037 m

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.

Read the filter, assumptions & sources
01 / Predict · every 0.1 s

p⁻ = p̂ + d_odom
P⁻ = P + Q

02 / Correct · on a new fix

K = P⁻ / (P⁻ + R)
p⁺ = p⁻ + K(z − p⁻)

P⁺ = (1 − K)²P⁻ + K²R

Position and covariance

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 and R

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.

Gain and innovation

K is dimensionless. The innovation z−p⁻ is available to the estimator. Its difference from true error is visible in the paired position display.

Stopping policy

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

Does another message
mean another measurement?

Share estimates of one target. Explore how repeated information can make agents report more confidence than their evidence supports.

Explore shared estimates