Integrate noisy odometry
Add each robot’s measured displacement to its position estimate. Add the declared motion noise covariance to P. No exact current world position enters this prediction.
11 / COOPERATIVE LOCALIZATION · RELATIVE OBSERVATIONS
Two drones estimate their own positions from noisy motion readings. A joint-state Kalman filter also uses the displacement between them. Their estimates become connected: a position fix for A1 can correct A2, even though A2 receives no absolute fix.
Predict: both position estimates are shifted two meters east. Can observing the other drone reveal that shared mistake without a world reference?
The state is [x₁, y₁, x₂, y₂]. The full 4 × 4 covariance retains cross-covariances between robots. Compare independent filters that omit peer observations.
The estimator receives both odometry streams, one relative Cartesian observation and available absolute fixes for A1. “Cooperative” describes the information; this is not a distributed implementation.
Independent Gaussian noise: odometry σ = 0.08 m per axis per interval, relative displacement σ = 0.15 m, A1 fix σ = 0.20 m. Available packets arrive immediately, once, with known robot identities.
Both robots share an exact heading frame. Drone bodies fly at a fixed display height of 2 m; altitude is not estimated. The scene illustrates the same planar run, with no flight physics, avoidance or real positioning hardware.
Truth is for inspection: solid drones and error distances use evaluator truth. The filter sees only its prior and synthetic noisy measurements. Fixed paths do not change with the estimated positions.
TWO ROBOTS · ONE JOINT BELIEF
Drag to orbit · scroll to zoom · Focus selected drone for a closer view. Solid drone = evaluator truth; dashed marker = estimate. Camera movement never advances the estimator.
SENSOR INPUTS / CURRENT INTERVAL
True position and the true A2 − A1 displacement never enter a filter update. The relative sensor reports a noisy vector in the declared shared world axes. Its arrow is drawn from true A1 for display; only the displacement enters the filter.
ONE JOINT COVARIANCE / M²
Stage selection changes only this inspector. The scene always shows the final belief at the displayed model time.
| P / m² | x₁ | y₁ | x₂ | y₂ |
|---|
ERROR AND REPORTED UNCERTAINTY
Solid lines show measured error; dashed lines show the filter’s reported RMS uncertainty radius, √trace(P), for the same quantity. These are different statistics, not a confidence bound on every run.
PREDICT · COMPARE · EXPLAIN
Each case starts paused with seed 7. Observe the same sensor samples with and without the relative update. A common offset is a deliberately miscalibrated prior, not extra measurement noise.
Independent copies use seed 7, the declared prior and identical 20-second budgets. This table leaves the active run unchanged. Errors are for one realization and do not establish a universal method ranking.
| Case | Method | Prior | Position RMS error | Relative error | Center error |
|---|
JOINT-STATE KALMAN FILTER
Workshop 7 fused estimates of one target. Here the state contains two different robot positions. A relative measurement relates those positions and creates statistical dependence between their errors.
The independent baseline predicts both robots and applies available A1 fixes. It deliberately omits relative observations, so an A1 fix cannot correct A2.
Add each robot’s measured displacement to its position estimate. Add the declared motion noise covariance to P. No exact current world position enters this prediction.
Every available observation compares the measured displacement with the displacement predicted by the joint belief. Both positions are corrected and cross-covariances appear.
A synthetic absolute position measurement updates A1. After relative updates connect the errors, the Kalman gain can also move A2’s estimate through P₂₁.
Add the same vector to both positions: their difference stays unchanged. Relative measurements alone cannot observe that common translation. An initial prior still supplies finite assumed world information.
The calibrated initial error is sampled with the declared covariance. A finite initial prior anchors the estimate statistically. Removing fixes makes the common translation unobservable from new relative measurements; it does not make the stored covariance infinite.
The shared-offset case adds [2, −1.5] m to both initial estimates without increasing the assumed covariance. It demonstrates a misspecified common prior. A small ellipse reports the filter’s assumption and cannot certify that this deliberately biased estimate is accurate.
Primary method context: Roumeliotis and Bekey — Distributed multirobot localization (2002). This workshop implements a central, four-position linear Kalman reference with supplied robot IDs and shared axes. It does not implement that paper’s distributed factorization, unknown heading, bearing/range sensing, GNSS, SLAM or radio propagation.