ARGOS LAB Start with an idea

07 / Localization & mapping · Advanced

Shared
estimates.

Does another message mean another measurement?

Three agents observe one target, then exchange their estimates.
Follow the evidence: a new packet can still contain an old reading.

Try the experiment
One reading appears in both summariesAt round 2, A1 combines its prior, which contains z1 and z3, with A3’s previous summary, which contains z2 and z3. The resulting source coefficients are one quarter z1, one quarter z2 and one half z3. The original reading z3 has been counted through two paths.A1 · priorA3 · incoming packetz1z3z2z3½ z1 + ½ z3½ z2 + ½ z3Naive fusion · round 2z1z2z3¼¼½Same three originals. Unequal influence.
Worked example · naive fusion · intact ring · round 2
A1 combines two summaries that already share z3. The source labels show the evaluator’s view; the packets themselves carry no original IDs.

A browser simulation with three synthetic readings of a static target. Both views show the same estimates. The drones are stationary illustrations: no flight, recorded sensor stream or live execution.

Builds on Position estimation.

Before you begin

Twelve rounds of messages.
Still only three readings.

Sharing can improve an estimate. But what happens to its reported uncertainty when the same evidence is counted again?

Explore the four questions
Method & assumptionsNaive fusion / unique readings / Covariance Intersection
Three agents · one target · no new observations after round 0
Fusion rules
Information fusion / CI

Naive fusion treats summaries as independent. The ledger deduplicates raw measurement IDs. CI uses a fixed weight ω = ½ with unknown cross-correlation.

Decision architecture
Decentralized, leaderless

Each agent uses its prior and one received neighbor packet. The target truth and analytical error covariance belong only to the evaluator.

Timing and topology
Synchronous directed ring

A1 → A2 → A3 → A1. Packets carry the previous round's state. No delays or retries; one link may drop packets or return at round 5.

Sensing and execution
Three readings, one browser

One independent Gaussian reading per agent at round 0, σ = 0.8 m per axis. No further observations, robot motion, radio physics or distributed processes.

Two distinct comparisons: changing the method changes fusion and packet contents; changing the schedule changes message delivery. CI is conservative here, but does not identify duplicates or repair a biased input model.

01 / Try it

Follow the estimate. Check the evidence.

Paused
Estimates of the same target

A1 estimate / circleA2 estimate / diamondA3 estimate / square✛ T / evaluator truth

Markers are estimates of T, not moving robots. Trails show estimate revisions. Contours have 2σ axes from reported covariance, not a 95% joint coverage guarantee.

REPORTED COVARIANCEMean trace(P) across three agents
EXPECTED ERROR VARIANCEMean analytical trace · evaluator only
LARGEST UNDERSTATEMENTMax expected / reported trace · >1 is overconfident
COMMUNICATION ROUND0 / 12Fixed observation window; no new readings

Agent information / latest update

Inspect a packet before trusting it.

Original IDReading (x, y)Variance / axis

Evaluator only / trace the originals

The same evidence can come back.

━━ Expected trace┄ Reported trace

Expected covariance follows the weights on the three original independent errors across hypothetical sensor draws. It is not the squared error of this one seed. The agents do not receive these evaluator weights.

Estimates / evaluator comparison

Same target, different claims.

Means and reported covariance are agent state. Actual error, analytical covariance, source count and ratio are evaluator columns. Trace is Pₓ + Pᵧ in m².
AgentEstimated xEstimated yReported traceActual errorExpected traceUnique originalsExpected / reported

Traffic counters count simulated packets and delivered estimate/measurement records, not bytes or measured network bandwidth. A ledger sends all its unique raw records; a summary sends one mean/covariance record.

02 / Four things to try

When does a message
add information?

Keep the readings. Change how they are shared and combined.

Three observations circulate around a ringA1 sends to A2, A2 sends to A3, and A3 sends to A1. Each agent starts with one original observation. This is a schematic communication layout, not agent positions or travel paths.z1z2z3A1A2A33 originals 01 / FOLLOW THE EVIDENCE

Are the readings new?

Compare no sharing with naive fusion. At round 2, local and received summaries already overlap. The reported uncertainty still shrinks.

One record per original readingThe ledger unions z1 and z3 with z2 and z3. Its result contains z1, z2 and z3 once each; the duplicate z3 is not counted twice. The third original reaches every agent by round 2 on the intact ring.PRIORRECEIVEDz1z3z2z3z1z2z3One record · one contribution 02 / KEEP THE ORIGINALS

Count each reading once.

The ledger sends original readings and their IDs. By round 2 on the intact ring, every agent has all three. Repeated records add nothing.

Equal means, different covariance claimsAt round 2 on the intact ring, naive fusion and fixed-half Covariance Intersection have identical means. Naive fusion reports a trace of 0.32 square metres, the exact expected trace is 0.48, and CI reports 1.28. Bar lengths are proportional to these covariance traces.Round 2 · covariance trace (m²)Naive0.32Expected0.48CI · ω = ½1.28 03 / ALLOW FOR OVERLAP

Same estimate. Another claim.

Fixed-half CI keeps a conservative covariance here without tracking IDs. On the intact ring its means match naive fusion, while its reported uncertainty stays wider.

Restore the missing directionThe A3 to A1 link is absent during rounds 1 through 4 and restored at round 5. With the ledger, A1 receives the third original in round 5 and A2 in round 6. No dropped packets are queued.A3 → A1Link delivery123456AbsentRestoredLedger · unique readingsRound 5A1: 3 · A2: 2 · A3: 3 04 / REMOVE A DIRECTION

Who receives what?

Cut A3 → A1, then try a ledger with the link restored at round 5. Watch which originals each agent knows. Dropped packets are never queued.

Every case starts paused with seed 1 and the same three original readings. There are no later sensor observations. Changing the method changes both the fusion rule and the packet contents.

Compare reference runs and paired seeds 10 configurations · 1,000 trials

Fixed references use seed 1. The repeated set uses the same seeds 1–100 in every configuration: no sharing on the ring, then each fusion method on ring/cut/recovery. Every result is at round 12. Tables do not change the active run.

Mean squared error and traces average all three agents at the final round. A single realization cannot establish covariance consistency.
Method / scheduleMean squared errorReported traceExpected traceMax ratioDelivered records

All 1,000 seeded trials

Each row averages one hundred seeds and three agents at round 12. NEES is errorᵀ P⁻¹ error; its expected value is 2 for an exactly calibrated two-coordinate covariance. A finite-sample mean above 2 alone does not prove inconsistency; no statistical coverage test is claimed.
Method / scheduleMean squared errorReported traceExpected traceMean NEESMax ratio

03 / Go deeper

Confidence needs
an error model.

At round 2, naive fusion counts overlapping evidence as independent. The evaluator can trace the originals and calculate how much uncertainty the estimate actually has under this sensor model.

A1 · naive fusion · round 2
Reported covariance trace
0.32 m²
Expected error trace
0.48 m²

The expected error variance is 1.5× the reported value. Trace adds the x and y variances; it is not the measured error of a single seed.

Read the fusion rules, assumptions & sources

Each summary contains a mean m and variance P for each axis. Information is inverse variance, P⁻¹. Adding information is justified for independent errors. A summary received from a neighbor may already contain evidence used by the recipient.

Naive independent fusion

P⁺ = (Pₐ⁻¹ + Pᵦ⁻¹)⁻¹
m⁺ = P⁺(Pₐ⁻¹mₐ + Pᵦ⁻¹mᵦ)

Covariance Intersection · ω = ½

P⁺ = (ωPₐ⁻¹ + (1 − ω)Pᵦ⁻¹)⁻¹
m⁺ = P⁺(ωPₐ⁻¹mₐ + (1 − ω)Pᵦ⁻¹mᵦ)

Unique-measurement fusion

Merge raw records by their original IDs. For n unique readings, m is their arithmetic mean and P = 0.64/n m² per axis. This matches centralized fusion of those independent readings; later duplicates leave it unchanged.

Fixed-weight CI

This lesson fixes ω at ½; it does not optimize the weight. Equal input P stays at 0.64 m² per axis. On the intact ring, CI and naive fusion have identical means but very different covariance claims.

Analytical evaluator

Track m = a₁z₁ + a₂z₂ + a₃z₃ with a₁+a₂+a₃=1. Independent original errors give actual expected variance 0.64(a₁²+a₂²+a₃²) per axis. These coefficients never enter agent updates.

Limits

The target is static and all agents already share a coordinate frame. There is no data association, outlier rejection, correlated original sensing, self-localization, SLAM, CI weight optimization or motion planning.

Original CI method: Julier & Uhlmann (1997), A non-divergent estimation algorithm in the presence of unknown correlations ↗. Accessible equations and shared-information discussion: Noack et al. (2017), Decentralized data fusion with inverse covariance intersection ↗, equations 9–10 and section 3.2. This workshop implements CI, not that paper's inverse covariance intersection method.

Unique IDs prevent duplicate raw readings; they do not make correlated readings independent. CI relies on consistent input covariances and does not repair unmodeled bias. The displayed 2σ contours are neither safety boundaries nor a demonstrated 95% joint coverage region.

Keep the thread · Advanced

What if the robots
observe each other?

Continue the perception path with two moving robots. Explore why their position estimates become correlated, and what a joint filter retains.

Explore cooperative localization