Sensor Fusion: Classical to Modern · Lesson 9 of 22

The Information FilterFusion's Favorite Form

Flip the Kalman filter inside out — track inverse covariance instead of covariance — and the messiest step in all of fusion, combining many sensors, collapses into a single act of grade-school addition. This is why every sensor network on Earth secretly thinks in information, not in spread.

Prerequisites: the Kalman filter idea (Lesson 5) + a little arithmetic. We rebuild the rest from zero.
11
Chapters
7
Simulations
0
Assumed Knowledge

Chapter 0: A Room Full of Sensors, Each Seeing a Little

Picture a warehouse with twelve cameras bolted to the ceiling. A forklift rolls across the floor and you want to know exactly where it is. No single camera can tell you: one sees only a corner, another is half-blocked by a shelf, a third catches the forklift edge-on so it can pin down the side-to-side position but is hopeless about distance. Each camera holds a sliver of the truth. Your job is to pool all twelve slivers into one sharp estimate — and to do it fast enough to run live, twelve times a second.

You already know one way to do this. Back in Lesson 3 we fused two sensors with the inverse-variance rule: weight each by how precise it is, blend, done. And in Lesson 5 the Kalman filter generalized that to a moving target, tracking a mean (our best guess of the forklift's position) and a covariance (how uncertain that guess is, a fuzzy cloud around the mean). The Kalman filter is gorgeous. But ask it to fuse twelve sensors and it starts to sweat.

Here's why. The Kalman measurement update, written in the covariance form, has a step where you invert a matrix — you flip the whole uncertainty cloud over — and you must do it once for the batch of sensors, juggling the dimensions of all of them at once. Matrix inversion is the expensive, fragile, hard-to-distribute operation in the whole pipeline. With two sensors it's fine. With twelve sensors scattered across a network, each wanting to chip in its little observation, the covariance form turns into a bookkeeping nightmare: who inverts what, in what order, and how do you add a thirteenth camera tomorrow without re-deriving everything?

The frustration that births this lesson. "Just average the camera estimates." But the cameras have wildly different uncertainties — the edge-on one is sharp side-to-side and blind in depth — so a flat average throws away the very structure that makes fusion worth doing. The honest fuse must weight each camera by its (directional!) precision, and in the covariance form that means inverting matrices every time a sensor reports. There has to be a cleaner accounting.

There is, and it is almost too simple to believe. Stop tracking the uncertainty cloud (covariance) and start tracking its inverse. The inverse of "how uncertain am I" is "how certain am I" — how much hard information you hold. And when you bookkeep in information instead of in spread, fusing a new sensor stops being a matrix inversion and becomes… addition. Camera 1 brings some information. Camera 2 brings some more. The total information you hold is just the sum:

total information = info1 + info2 + info3 + … + info12

That is the entire pitch of this lesson. The same Kalman filter, rewritten to track inverse-covariance, is called the Information Filter. Its killer feature is that combining independent sources — the act we call fusion — is pure addition, no inversion in sight. This is exactly why decentralized and distributed sensor networks (the architectures from Lesson 2) love the information form: every node simply adds its information into a shared pool, in any order, and the pool ends up identical to what a single all-knowing central filter would have computed.

Let's see the accumulation before we name anything. Below, a target sits somewhere in the room (the true position is the small cross). Sensor nodes around the edge each report a noisy, partial observation. Click Add a sensor to bring nodes online one at a time, and watch the estimate's uncertainty — drawn as an ellipse — tighten as information piles up.

Information accumulates as sources report

The small cross is the true target. Each sensor node on the rim contributes a sliver of information. Press Add a sensor to bring nodes online; the fused estimate (dot) sharpens and its uncertainty ellipse shrinks as the slivers ADD up. Press Reset to start from total ignorance (a huge cloud).

0 sensors — no information yet

Watch the very first add: the estimate snaps from "anywhere in the room" to a fat blob. Each further add carves the blob smaller, and crucially, the ellipse tightens most in the direction that sensor measures well. The blob doesn't shrink uniformly — it shrinks where the new evidence speaks. That directional tightening is the information form doing its accounting, and the entire computation behind each click is one addition.

The one-sentence thesis of this lesson. The Kalman filter tracks spread (covariance) and fuses by inverting matrices. The Information Filter tracks certainty (inverse covariance) and fuses by adding. They are the same filter — same answers, to the last decimal — but the information form turns the hardest step of multi-sensor fusion into the easiest operation in mathematics.

Why "add" is such a big deal — the bookkeeping, in pictures

It is worth feeling why addition is so much better than what the covariance form forces on you, because it explains the entire architecture of modern sensor networks. Suppose three sensors want to contribute. In the covariance (Kalman) world, the combined update is something like "take the prior cloud, take each sensor's cloud, and solve a coupled system that inverts a matrix mixing all of them together." The sensors are entangled in the math: you cannot finish sensor 1's contribution without knowing about sensors 2 and 3, because they share the inversion.

In the information world, the three contributions are independent terms in a sum. Sensor 1 computes its information and ships the number. Sensor 2 does the same, on its own, knowing nothing about sensor 1. The pool adds them. There is no shared inversion to coordinate, no required ordering, no central choke point. This is the difference between three accountants who must sit in one room passing a single ledger around (covariance) and three accountants who each mail in a receipt that the office simply tallies (information). The second scales; the first does not.

The mental model we'll build on. Think of each sensor as casting votes of confidence about where the target is. A confident, precise sensor casts loud votes; a vague sensor whispers. In the information form, "how loud you vote" is literally a number (your information), and the fused answer is just the tally of all the votes. Adding a sensor = adding its votes. Removing one = subtracting them back out. Fusion becomes arithmetic.

This lesson rebuilds the Kalman filter you know in this flipped coordinate system, one piece at a time. We'll define information as inverse-variance (Chapter 1), promote it from a single number to a vector and matrix (Chapter 2), prove that the measurement update is pure addition — and that it gives the exact same answer as Lesson 3's inverse-variance fuse (Chapter 3), confront the one step where the information form is awkward rather than elegant (Chapter 4, prediction), and finally show how this single property — "fusion is addition" — powers decentralized sensor networks (Chapter 5) and a live showcase (Chapter 6). The four recurring chapters — Use Cases, Practical, Debugging, Connections — close it out.

A warehouse has twelve ceiling cameras, each seeing the forklift partially, and you must fuse them live. Why does the standard Kalman (covariance) form struggle here, and what does the information form offer instead?

Chapter 1: Information Is Inverse Variance — Sharpness, Not Spread

Before matrices, before filters, let's nail the single idea everything else rests on, using one humble scalar. We have a quantity we're unsure about — say the forklift's x-position — and we describe our uncertainty with a variance, written σ² (sigma-squared). Variance is the spread of our belief: a big σ² means a wide, vague cloud ("could be anywhere in a 10-meter range"); a small σ² means a tight, confident spike ("it's at 4.2 m, give or take a centimeter").

Now flip it. Define information — we'll call it Ω (the capital Greek omega, the standard symbol) — as one over the variance:

Ω = 1 / σ²    (information = inverse variance)

That's the whole definition. Information is the reciprocal of spread. Where variance measures how vague you are, information measures how sharp you are. They point in opposite directions:

Your belief is…Variance σ²Information Ω = 1/σ²
razor-sharp ("4.20 m ± 1 cm")tiny (0.0001 m²)huge (10000) — you know a lot
fuzzy ("somewhere around 4 m ± 1 m")moderate (1 m²)moderate (1)
vague ("4 m ± 5 m, who knows")large (25 m²)small (0.04) — you know little
total ignorance ("anywhere on Earth")0 — you know nothing

Read the bottom row carefully, because it is the single most useful consequence of the flip and we will lean on it repeatedly: zero information means total ignorance. If you know nothing, your variance is infinite (the cloud fills the universe), and infinite variance inverts to exactly zero information. That is a finite, well-behaved number — zero — not the messy infinity it replaces. In the covariance world, "I know nothing" is a singular, uncomputable infinity. In the information world it is the cleanest number there is. We'll cash this in hard in Chapter 8: it lets you start a filter with no prior at all.

The flip in one image. Variance is a fog. Information is a flashlight. As the fog thins (variance shrinks), the flashlight brightens (information grows). When the fog is total — you can't see your hand — the flashlight is off (information = 0). When the fog is gone — perfect knowledge — the flashlight is blinding (information = ∞). Same situation, two ways of measuring it: by how much you can't see, or by how much you can.

Why bother flipping? Because precisions ADD

You might ask: why introduce a whole new symbol for "one over variance"? Because the moment you do, a deep fact about fusion becomes visible. Recall from Lesson 3 the strange and beautiful result: when you fuse two independent estimates of the same quantity, their precisions add. Let's re-derive it, now naming the precisions "information."

Two sensors measure the forklift's x. Sensor A says x ≈ 100 with variance σ²A = 4 m². Sensor B says x ≈ 104 with variance σ²B = 16 m² (four times sloppier). Convert each to information:

ΩA = 1/σ²A = 1/4 = 0.25    ΩB = 1/σ²B = 1/16 = 0.0625

Now the magic. The fused information is just the sum of the two informations:

Ωfused = ΩA + ΩB = 0.25 + 0.0625 = 0.3125

And to read off the fused variance, flip back:

σ²fused = 1 / Ωfused = 1 / 0.3125 = 3.2 m²

Three things to notice, each load-bearing. First, the fused variance 3.2 m² is smaller than either input (4 and 16) — fusing always sharpens, because you can only gain information by adding more. Second, the fusion step itself — 0.25 + 0.0625 — was pure addition; no inversion, no weighting fractions to normalize. Third, the only inversions were at the edges: convert each variance to information once (1/4, 1/16), add in the middle, convert back once (1/0.3125) at the end. The expensive operation got pushed to the boundary and the cheap operation (addition) does the actual fusing. That asymmetry is the entire reason the information form exists.

The pattern that scales. With ten sensors, the covariance form would wrestle with ten clouds at once. The information form says: convert each of the ten variances to information (ten cheap reciprocals), add the ten numbers (nine additions), convert the single total back (one reciprocal). Adding an eleventh sensor? Just add one more number to the running total. The cost of fusing one more sensor is one addition. Nothing about the existing tally changes.

Where's the mean? Reconstructing the estimate

Information Ω tells us how sharp we are, but not where the peak sits. For that we need a partner quantity, and we'll build it properly in Chapter 2. For now, a preview using the scalar case: the fused mean is the information-weighted blend, which works out to the same inverse-variance weighting from Lesson 3. Quick check with our numbers — weighting each sensor's reading by its information and normalizing:

fused = (ΩA·xA + ΩB·xB) / (ΩA + ΩB) = (0.25·100 + 0.0625·104) / 0.3125
= (25 + 6.5) / 0.3125 = 31.5 / 0.3125 = 100.8 m

The fused estimate, 100.8 m, leans toward sensor A (the sharper one) exactly as it should — identical to the answer the Kalman/inverse-variance fuse gave in Lesson 3. The numerator Ω·x is doing something important: it's the reading scaled by how much we trust it. We'll christen that quantity the information vector in the next chapter, because it, too, will turn out to add.

Feel the flip directly

Below, drag the variance slider and watch information move in the opposite direction. As you make the belief sharper (small variance, tall narrow curve), the information needle climbs; make it vague (large variance, short wide curve) and information falls toward zero. The two are locked in a seesaw: one up means the other down.

Variance ↔ Information — the seesaw

The curve is your belief about the target's position — tall and narrow means confident, short and wide means vague. Drag the variance slider. Watch the information Ω = 1/σ² readout move the opposite way. Slide variance toward its max to approach total ignorance (information → 0).

Variance σ² 4.0
Your belief about the target has variance σ² = 25 m² (quite vague). What is your information Ω, and what does it mean as the variance grows toward infinity?

Chapter 2: The Information Vector & Matrix — The Dual of Mean & Covariance

One number was enough for a forklift's x-position. But a real target lives in two or three dimensions, and its uncertainty has shape — the edge-on camera from Chapter 0 was sharp side-to-side and blind in depth, so its uncertainty cloud was a long thin ellipse, not a circle. To capture shape we need to promote our two scalars (σ² and Ω) into a matrix pair. This chapter builds the information vector and information matrix — the exact duals of the mean and covariance you know from the Kalman filter.

The Kalman filter carries two quantities to describe its belief:

The Information Filter carries two different quantities that encode the exact same belief, just flipped:

Two coordinate systems, one belief. A Gaussian belief is a fact in the world — a particular hump of probability over space. You can describe that hump two ways. The moments way: give its center (μ) and its spread (Σ). The information (or "canonical") way: give its sharpness (Ω) and its sharpness-scaled center (ξ). Neither is more "real" than the other, exactly as "4 o'clock" and "16:00" name the same instant. You convert freely: Ω = Σ−1 and μ = Ω−1ξ.

The information matrix, read off a worked 2×2

Make it concrete with a real 2×2. Suppose our belief about a target's [x, y] position has covariance

Σ = [ 4  0 ; 0  25 ]    (top row 4, 0 · bottom row 0, 25)

This says: variance 4 m² in x (fairly sharp, ±2 m), variance 25 m² in y (vague, ±5 m), and the zero off-diagonals mean x and y are uncorrelated. The cloud is an ellipse wide in y, narrow in x. Invert it — for a diagonal matrix you just reciprocate each diagonal entry — to get the information matrix:

Ω = Σ−1 = [ 1/4  0 ; 0  1/25 ] = [ 0.25  0 ; 0  0.04 ]

Read Ω directly: 0.25 units of information about x, 0.04 about y. The sharp direction (x) carries the most information; the vague direction (y) carries little. The information matrix is a map of "how much I know, broken down by direction." A big diagonal entry = a sharp, well-pinned axis; a small one = a fuzzy axis. The edge-on camera from Chapter 0 would have a big entry along the direction it can see and a near-zero entry along the depth it can't — its information matrix is almost rank-deficient, holding information in one direction only. (Hold that thought; it returns in Chapter 9 as a debugging hazard.)

The information vector, by hand

Now the vector. Say the mean of this belief is μ = [10, 20] (target at x = 10, y = 20). The information vector is Ω times μ:

ξ = Ω · μ = [ 0.25  0 ; 0  0.04 ] · [ 10 ; 20 ]
ξ = [ 0.25×10 + 0×20 ; 0×10 + 0.04×20 ] = [ 2.5 ; 0.8 ]

So ξ = [2.5, 0.8]. By itself this vector looks meaningless — it is the mean scrambled by the information — and that's the point of the next chapter: ξ is the form in which evidence adds. To get the human-readable mean back, undo the scramble by multiplying by Ω−1 = Σ:

μ = Ω−1 · ξ = [ 4  0 ; 0  25 ] · [ 2.5 ; 0.8 ] = [ 4×2.5 ; 25×0.8 ] = [ 10 ; 20 ]

We recovered [10, 20] exactly — the round trip μ → ξ → μ is lossless, confirming ξ and Ω together hold the very same belief as μ and Σ. The conversion is the only place an inversion lives, and we do it just twice: once to enter the information world, once to leave it.

The duality table — memorize this and you own the lesson. Everything in the information filter is the moment-form quantity with the conversions baked in. Mean μ becomes information vector ξ = Σ−1μ. Covariance Σ becomes information matrix Ω = Σ−1. To go back: Σ = Ω−1, μ = Ω−1ξ. Big Ω entry = sharp axis = lots of info. Zero Ω = total ignorance. The whole filter is just these two quantities, evolved over time.
ConceptMoment form (Kalman)Information form (this lesson)Conversion
Center of beliefmean μinformation vector ξξ = Σ−1μ = Ωμ
Shape of beliefcovariance Σinformation matrix ΩΩ = Σ−1
Sharp directionsmall variance (tight)large Ω entryreciprocal
Total ignoranceΣ → ∞ (singular)Ω = 0 (clean!)

See the matrix as an ellipse

The information matrix has a beautiful geometric reading: its eigenvectors point along the ellipse's axes, and bigger eigenvalues mean sharper (shorter) axes. Below, edit the two diagonal entries of Ω and watch the uncertainty ellipse respond. Crank the x-information up and the ellipse squeezes thin in x; crank it down toward zero and the ellipse stretches out (you know less and less about x). This is the picture of "information as sharpness, broken down by direction."

The information matrix as an uncertainty ellipse

The ellipse is the uncertainty cloud for a belief whose information matrix is diagonal with the entries you set. More information in a direction = thinner ellipse in that direction (you know more, so less spread). Slide either Ω entry toward zero and watch the ellipse balloon — ignorance returning along that axis.

Ωxx (info in x) 0.25 Ωyy (info in y) 0.04
A belief has covariance Σ = [[4, 0],[0, 25]] and mean μ = [10, 20]. What are its information matrix Ω and information vector ξ?

Chapter 3: The Update Is Pure Addition — Fusing Sensors = Adding Information

This is the chapter the whole lesson is built around. We now prove, with arithmetic you can do on a napkin, that fusing a measurement in the information form is nothing but addition — and that the answer it produces is exactly, to the last decimal, the inverse-variance fuse you learned in Lesson 3. The elegance is not a coincidence; it falls straight out of the algebra of multiplying Gaussians, which in the information coordinates becomes adding the two information pieces.

The measurement update, in two lines

When a sensor reports an observation, it carries its own information: a measurement information matrix and a measurement information vector. Call them Ωz and ξz (the z is for the measurement, traditionally written z). The Information Filter measurement update is breathtakingly simple:

Ωnew = Ωold + Ωz
ξnew = ξold + ξz

That is the entire update. Add the new information to what you already hold. No Kalman gain to compute, no matrix to invert, no fraction to normalize — in the covariance form the update is a tangle of K = ΣHT(HΣHT+R)−1 with an inversion baked in; in the information form it is a plus sign. Every drop of evidence you collect is simply tallied onto the running total.

Why addition, intuitively. Two independent measurements of the same thing are two independent pieces of evidence. Evidence accumulates — the more you gather, the surer you get, and "surer" means "more information." Since information measures how sure you are, and gathering more evidence makes you more sure, the natural operation is to pile the evidence on top of each other: add the informations. The deep reason is that independent Gaussians multiply their probability densities, and multiplying Gaussians = adding their exponents = adding their information matrices and vectors. The plus sign is the footprint of probabilistic independence.

The worked fuse — and the proof it equals Lesson 3

Let's fuse the two sensors from Chapter 1, this time as a full measurement update, and confirm we land on the same 100.8 m / 3.2 m² we got before. Start from total ignorance — no prior, which the information form handles trivially as Ωold = 0, ξold = 0.

Sensor A: reads xA = 100 with variance 4, so its information is ΩA = 1/4 = 0.25 and its information vector is ξA = ΩA·xA = 0.25×100 = 25.

Sensor B: reads xB = 104 with variance 16, so ΩB = 1/16 = 0.0625 and ξB = 0.0625×104 = 6.5.

Now run the update twice — add A, then add B — onto the zero prior:

Ωnew = 0 + ΩA + ΩB = 0 + 0.25 + 0.0625 = 0.3125
ξnew = 0 + ξA + ξB = 0 + 25 + 6.5 = 31.5

Two additions for the information, two for the vector. To read the human answer, convert back at the very end:

σ²fused = 1/Ωnew = 1/0.3125 = 3.2 m²
fused = μ = Ωnew−1 · ξnew = 3.2 × 31.5 = 100.8 m

There it is: x̂ = 100.8 m, σ² = 3.2 m²identical to the inverse-variance fuse of Lesson 3 and the weighted-average of Chapter 1, computed here with nothing but additions in the middle and two conversions at the boundary. Same answer, easier road. This is the proof the lesson promised: the information-add fuse is the inverse-variance fuse, just done in coordinates where the fuse is addition.

The asymmetry that makes it worth it. Notice where the inversions live. In the covariance form, you invert every time a sensor reports — once per measurement, forever. In the information form, you invert once to convert each variance in and once to read the mean out — and the actual fusing in between is free addition. For a network where sensors report constantly, you've moved the cost from "every fusion step" to "only when a human wants to read the answer." That can be the difference between feasible and infeasible.

Order doesn't matter — and that's the superpower

Addition is commutative: 25 + 6.5 = 6.5 + 25. So it doesn't matter whether sensor A reports before sensor B or after — the pool ends up identical. It also doesn't matter if they report in one batch or one at a time across an hour. This is not a minor convenience; it is the property that lets a sprawling sensor network fuse correctly with no coordination. Each node adds its information whenever it likes, in whatever order the network happens to deliver it, and the total is always right. We'll build a whole architecture on this in Chapter 5.

The same commutativity gives you a free undo: if a sensor's reading turns out to be bad, you subtract its information back out (Ωnew = Ωold − Ωbad) and the pool returns exactly to its pre-sensor state. Try removing a measurement from a Kalman covariance update and you'll find no clean way to do it. In the information form, retracting evidence is as easy as adding it.

The whole update in code

The information measurement update is the shortest update in all of estimation. Here it is, with the two-sensor fuse and the convert-back baked in — the entire chapter in a dozen lines:

python
import numpy as np

def add_measurement(Omega, xi, z, var):
    # a scalar sensor reading z with variance var contributes:
    Omega_z = 1.0 / var          # its information
    xi_z    = Omega_z * z         # its information vector (info-scaled reading)
    return Omega + Omega_z, xi + xi_z   # FUSE = ADD. that's it.

# start from total ignorance: zero information
Omega, xi = 0.0, 0.0

Omega, xi = add_measurement(Omega, xi, 100, 4)    # sensor A -> (0.25, 25.0)
Omega, xi = add_measurement(Omega, xi, 104, 16)   # sensor B -> (0.3125, 31.5)

# convert back to read the human answer (the ONLY inversion):
var_fused  = 1.0 / Omega      # -> 3.2 m^2
mean_fused = var_fused * xi   # -> 100.8 m   (same as Lesson 3's inverse-variance fuse)

Run it in your head: each add_measurement call does one reciprocal (the sensor's variance → information), one multiply, and two adds — then hands back the new running totals. Fuse a third sensor by calling it a third time. The only division on the way out is the final 1.0/Omega. Compare this to the Kalman update's gain computation and you see why people who fuse many sensors reach for the information form by reflex.

Below, fuse sensors one at a time and watch the pool's information climb (additively) and its variance shrink. Each sensor you add nudges the estimate and sharpens the belief — and the running total of information is, visibly, just a sum.

Fusing by addition — watch information accumulate

Press Add sensor to fuse one more noisy reading of the same true value (250). The bars show each sensor's individual information stacking into the total — the stack height is literally the sum. The readout shows the fused mean and shrinking variance. Subtract removes the last sensor (information un-adds cleanly).

0 sensors fused — total information 0 (total ignorance)
Sensor A contributes information ΩA = 0.25 (vector 25), sensor B contributes ΩB = 0.0625 (vector 6.5), starting from zero prior. What is the fused belief, and how was it computed?

Chapter 4: The Predict Step — The Awkward Dual, and Its Price

Every filter has two heartbeats: predict (roll the belief forward through the motion model — the target moved, so push the estimate along and let uncertainty grow) and update (fold in a new measurement — sharpen the belief). We just saw that the information form makes update trivially cheap: pure addition. Honesty demands the other side of the ledger. The information form makes predict awkward and expensive — exactly the reverse of the Kalman filter, where predict is cheap and update is the costly one. There is no free lunch; the information form moved the cost, it didn't delete it.

The grand trade, in one line. Kalman (moment form): cheap predict, expensive update. Information form: cheap update, expensive predict. They are mirror images. Which you pick depends on which step you do more often — the deep practical question we settle in Chapter 8.

Why predict is easy in the moment form

In the Kalman filter, prediction is intuitive. The target moves by the motion model (a matrix F), so the mean moves the same way (μ → Fμ), and the uncertainty cloud both transports and inflates, because motion is never perfectly known — you add process noise Q:

μ = F · μ    Σ = F · Σ · FT + Q

Both lines are direct: multiply by F, add Q. Easy. The cloud grows because predicting the future loses information — you become less sure of where the target is until the next measurement arrives. That's the right behavior: drive a car blindfolded for a second and your uncertainty about its position grows.

Why predict is painful in the information form

Now flip those two lines into information coordinates and the trouble surfaces. The predicted information matrix is

Ω = ( F · Ω−1 · FT + Q )−1

Count the inversions: you must invert Ω (to get back to covariance Σ), do the motion transport and add the process noise, then invert the whole thing again to return to information form. Two matrix inversions per prediction step, sandwiching the noise addition. The information form had to climb out of information coordinates, do the easy thing covariance-land does (transport + inflate), and climb back in. The thing it made cheap (update) it paid for by making the other thing (predict) expensive.

Why can't predict be addition too? Because prediction loses information (uncertainty grows), and you can't lose information by adding — adding only gains it. Worse, the process noise Q lives naturally in covariance space ("the target might have drifted ±0.5 m"), not in information space. To use Q you must visit covariance space, which means an inversion to get there and another to come back. Measurement evidence adds because it's a gain of information; motion prediction is a loss, and losses don't add — they require the round trip.

Feel the cost — the round trip, by hand

Let's walk a 1-D prediction to see the round trip in the flesh. Belief: information Ω = 0.25 (so variance σ² = 4). The target is stationary (F = 1) but we're unsure of its motion, so process noise Q = 1 m² per step. Predict:

  1. Invert to covariance: σ² = 1/Ω = 1/0.25 = 4. (inversion #1)
  2. Transport & inflate: σ² = F²·σ² + Q = 1·4 + 1 = 5. The variance grew from 4 to 5 — we got vaguer, as prediction should.
  3. Invert back to information: Ω = 1/5 = 0.2. (inversion #2)

The information fell from 0.25 to 0.2 — prediction destroys information (you know less about where the target is now). And to compute that drop we had to leave information space (1/0.25 = 4), do the easy inflation there (4 → 5), and come back (1/5 = 0.2). In 1-D those are scalar reciprocals — trivial. But in n dimensions each "inversion" is a full n×n matrix inverse, costing on the order of n³ operations, twice, every prediction step. For a high-dimensional state (a full SLAM map can have thousands of dimensions), that is the dominant cost of the whole filter.

The information that prediction can't help losing. Compare the two filters on this same step. Kalman predict: σ² goes 4 → 5 in one multiply-add, no inversion. Information predict: Ω goes 0.25 → 0.2 but only after inverting to 4, inflating to 5, inverting back. Same belief, same answer (variance 5 either way) — but the information form paid two inversions for what cost the Kalman filter one addition. This is the bill for the cheap update.

See predict eat information

Below, set a starting information and a process-noise level, then press Predict repeatedly. Each press rolls the belief forward one step: the information bar shrinks (you know less) and the variance grows. Crank Q up and the information drains faster — a noisier motion model loses information quicker. This is the price the information form pays for its addition-cheap updates.

Prediction drains information (the dual cost)

Set the process noise Q. Each Predict press: invert → inflate by Q → invert back, draining the information bar. Higher Q drains it faster. Press Add measurement to fuse a reading (information jumps back up by addition — the cheap step). Watch predict and update pull in opposite directions.

Process noise Q 1.0
Why is the predict step expensive in the Information Filter, when the update step is cheap addition?

Chapter 5: Decentralized Fusion — Every Node Just Adds Its Information

Now we cash in the property from Chapter 3 — fusion is commutative addition — and watch it build an entire architecture. Back in Lesson 2 we met three fusion architectures: centralized (one computer ingests every sensor), decentralized (each sensor node has its own brain and they share results), and distributed (nodes cooperate with no central authority). The decentralized and distributed designs are robust — no single point of failure — but they raised a hard question: how do independent nodes pool their estimates correctly without a central referee? The information form answers it in one word: add.

The decentralized recipe

The setup: N sensor nodes are scattered around a target. Each node makes its own local observation and, crucially, computes its own little contribution in information form — an information matrix and vector. To get the globally optimal fused estimate (the one a single all-seeing central filter would compute), the network does exactly this:

1. Each node observes locally
node i measures the target, computes its information contribution Ωi, ξi — a number it can ship
2. The pool ADDS all contributions
Ωpool = ∑i Ωi  ·  ξpool = ∑i ξi — the global belief is just the sum of the locals
3. Convert back to read the answer
Σ = Ωpool−1, μ = Σ·ξpool — exactly what a central filter would have produced
↻ repeat every time-step

Step 2 is the miracle. The global fused estimate — the optimal one — is literally the sum of every node's local information. No node needs to know what the others measured. No node needs to act first. The "pool" can be a central tallier, or a token passed around a ring, or each node broadcasting its number to all the others — the architecture doesn't matter, because addition is commutative and associative. The math is indifferent to the topology.

Why this is the property decentralized fusion was waiting for. A central Kalman filter would have to receive all N raw measurements and run one big entangled update. The information form lets each node do its own tiny computation (in parallel, with no coordination) and reduces the global fusion to a sum — the single most parallelizable, communication-light, fault-tolerant operation there is. Lose a node? Its term drops out of the sum and the rest still fuse correctly. Add a node tomorrow? Add one more term. The information form is, quite simply, the native language of sensor networks.

A worked three-node fuse

Make it real with three nodes each measuring a target's x-position with different precision. (We'll keep it 1-D so you can check every step by hand; the matrix case is identical with bold letters.)

NodeReading xiVariance σ²iInformation Ωi = 1/σ²iInfo vector ξi = Ωixi
1 (close, sharp)50.011.00050.00
2 (mid-range)52.040.25013.00
3 (far, vague)47.0100.1004.70

Each node ships its two numbers (Ωi, ξi). The pool adds them — no coordination, any order:

Ωpool = 1.000 + 0.250 + 0.100 = 1.350
ξpool = 50.00 + 13.00 + 4.70 = 67.70

Convert back to read the answer the whole network agrees on:

σ²fused = 1/Ωpool = 1/1.350 = 0.741 m²
fused = σ²fused · ξpool = 0.741 × 67.70 = 50.15 m

The fused estimate is 50.15 m with variance 0.741 m². Notice two payoffs. First, the fused estimate leans toward node 1 (the sharp one at 50.0) and barely listens to the vague node 3 at 47.0 — the information weighting did that automatically. Second, the fused variance 0.741 is smaller than node 1's variance of 1 — even the best single node is improved by pooling the others. Three nodes, three additions, and the network reached the globally optimal estimate with zero central coordination. That is decentralized fusion.

Provably equal to the central filter. The headline guarantee: this decentralized sum produces exactly the estimate a single centralized filter fed all three readings would compute — not an approximation, the identical number. That's the theorem behind Durrant-Whyte & Rao's decentralized data fusion: because the information form makes fusion additive, you can split the computation across nodes and the sum reassembles the centralized result perfectly. You get the robustness of decentralization with no loss of optimality.

The one fatal assumption: independence

The whole scheme rests on a single assumption — that the nodes' information contributions are independent. Addition is only correct when you're adding genuinely independent pieces of evidence. If two nodes secretly share information (they both used the same prior, or one node's estimate was passed to the other and back), then adding both double-counts that shared piece, and the pool becomes falsely overconfident — the information matrix says you know more than you really do. This is the central hazard of information-form fusion, it has a name (the double-counting or data-incest problem), and the fix is the subject of Lesson 11. For now, plant the flag: add only independent information; correlated sources need a different tool (covariance intersection, the Lesson 11 topic). We'll dissect the failure in Chapter 9.

Below, place sensor nodes around a target and pool their information. Each node you add contributes a term to the sum; the fused estimate (and its ellipse) updates to the optimal pooled belief. Toggle a node off and its term simply drops out of the sum — no re-derivation, the rest still fuse correctly. This is the decentralized recipe, live.

Decentralized pool — nodes add their information

The cross is the true target. Click Add node to drop a sensor node on the rim; each contributes its information to the pool (the fused ellipse tightens). Click a node to toggle it off — its term leaves the sum and the pool re-fuses, no central coordination. The readout shows Ωpool as a literal sum of the active nodes.

0 nodes — pool empty
click a node dot to toggle it on/off
Three sensor nodes contribute informations 1.0, 0.25, 0.10 (vectors 50.0, 13.0, 4.7) about a target's position. How does a decentralized network compute the globally optimal fused estimate?

Chapter 6: Showcase — A Sensor Network Tightening By Addition

Every idea from chapters 0–5 now lives in one interactive scene. Several sensor nodes surround a target, each with its own directional view — some see the target sharply left-right but vaguely in depth, others the reverse. You toggle each node on and off and watch the fused uncertainty ellipse tighten as their informations add, and a side-by-side readout confirms the decentralized sum equals what a central filter would compute. No new theory — just the whole lesson, breakable.

What to watch for. Each node's view is an oriented information ellipse — thin in the direction it measures well, fat in the direction it can't. When you add a node, the fused ellipse doesn't shrink uniformly — it shrinks most in the direction the new node is sharp. Two nodes with crossed orientations (one sharp horizontally, one sharp vertically) fuse into a tight little circle, each covering the other's blind direction. This is information addition doing geometry.
The sensor-network fuser — toggle nodes, watch the ellipse

The cross is the true target. Each node has an oriented view (its faint ellipse shows what it can and can't pin down). Toggle nodes with the buttons (lit = contributing). The fused ellipse is the sum of all active informations — it tightens most where the active nodes are sharp. The panel shows decentralized sum vs central filter — they match exactly. Press Run to let the target drift (predict + update live).

Play with it and the lesson announces itself through behavior, not formulas:

A guided experiment — reproduce the whole lesson in five clicks

  1. All off but Node 1. Thin horizontal sliver — one directional source, one direction known. The information matrix is nearly rank-deficient (almost zero info in y).
  2. Add Node 2 (vertical). The sliver becomes a tight circle. Two crossed informations added to cover both axes. Watch the fused variance in both x and y drop at once.
  3. Add Nodes 3 and 4 (diagonals). The circle shrinks further — more independent information, more sharpness, monotonically. Each click is one addition to the pool.
  4. Toggle Node 1 back off. Its term leaves the sum and the ellipse loosens slightly in its direction — clean subtraction, no re-derivation. Decentralization tolerates a dropped node.
  5. Press Run. The target drifts; each step the filter predicts (ellipse grows — the expensive dual step from Chapter 4) then the active nodes update (ellipse re-tightens by addition — the cheap step). Watch predict and update tug the ellipse bigger and smaller in turn.
You just watched the entire information form work. Information is sharpness (the ellipse). The matrix and vector encode it (the oriented views). Update is addition (each node tightens the ellipse). Predict is the costly round-trip that loosens it (Run). Decentralized fusion is the sum (the matching panel rows). And the whole thing is the Kalman filter you already knew — just wearing its inside-out coat, the one that fits a sensor network.

Chapter 7: Use Cases & Real Products — Where the Information Form Quietly Runs

Every lesson in this series ends with the same four chapters — Use Cases, Practical Application, Debugging, Connections — because a method you can't point at in a shipped system is a method you don't really own. The information form is the quiet workhorse behind a surprising amount of real robotics and tracking infrastructure, precisely because it makes the one operation those systems do constantly — fuse many sources — into addition.

Decentralized sensor networks — the original use. The information form was popularized for exactly this: a web of radar, sonar, or camera nodes tracking targets with no central computer. Each node fuses its own observations into local information, broadcasts the contribution, and every node adds the received contributions to hold the same global estimate — provably identical to a (non-existent) central filter. Durrant-Whyte and Rao's decentralized data-fusion work, the foundation of modern multi-sensor tracking, is built on this additive property.

Multi-robot fusion. A team of robots mapping a building, or a swarm of drones tracking a moving object, each see a slice of the world. The information form lets each robot ship a compact information contribution and the team fuse them by addition — robust to a robot dropping out (its term just leaves the sum) and easy to grow (a new robot adds a term). The same property that helps a 12-camera warehouse helps a 12-robot swarm.

SLAM in information form — the SEIF. Simultaneous Localization and Mapping (a later lesson in this series) carries a giant state: the robot's pose plus every landmark. In the covariance form the map's covariance matrix is dense and grows expensively. In information form, the Sparse Extended Information Filter (SEIF) exploits a gorgeous fact: the information matrix of a SLAM problem is nearly sparse — most landmark pairs share almost no information, so most off-diagonal entries are near zero and can be dropped. That sparsity makes information-form SLAM scale to huge maps where covariance-form SLAM chokes. Thrun, Burgard & Fox devote a chapter to it.

Track-to-track fusion in defense / aerospace. Multiple radars each produce a track (an estimate of a target's state). Fusing tracks from independent radars into one common air picture is naturally an information-form operation: convert each track to information, add, convert back. It's the standard tool when many independent trackers must agree on one truth.

The pattern across products

Notice the recurring logic: the information form shows up exactly where a system must fuse many sources, often without a central authority, and where extensibility (adding/dropping sources) matters.

SystemWhat's fusedWhy the information form
Decentralized radar/sonar nettarget tracks across nodesno central computer; each node adds its contribution, all agree
Multi-robot mapping / swarmpartial observations per robotrobust to a robot dropping out; trivial to add robots (one more term)
SEIF SLAMrobot pose + thousands of landmarksinformation matrix is sparse → scales where dense covariance can't
Track-to-track fusion (aerospace)independent radar trackscombine many trackers into one air picture by addition
Smart-building / warehouse sensingmany ceiling cameras / lidarseach camera adds its directional information; easy to grow the grid

The deep case — why SLAM loves the information form

SLAM is the masterclass, and it's worth seeing why the information form wins there specifically. In SLAM the robot accumulates measurements relating its pose to landmarks. Each measurement, in information form, is a sparse addition: a landmark observation adds information only to the entries linking the robot and that one landmark — it touches a tiny corner of the giant information matrix. So the matrix stays sparse: zeros everywhere two things were never co-observed. A sparse matrix is cheap to store and (with the right tricks) cheap to work with, which is why information-form SLAM scales to city-sized maps.

The covariance form does the opposite: every measurement makes the whole covariance matrix denser (correlations leak everywhere), so it bloats and slows as the map grows. The lesson's central trade reappears: the information form's expensive step is prediction (the robot moving), but in SLAM you make far more measurements than motions — you observe many landmarks per step — so paying for cheap, sparse, additive measurement updates is exactly the right bargain. The structure of the problem picks the form.

The deployable insight. Reach for the information form when (1) you fuse many sources, especially more measurements than predictions; (2) the sources are distributed with no natural central computer; (3) you need to add or drop sources cheaply; or (4) the problem has sparse structure (like SLAM) the information matrix can exploit. Stick with the Kalman/covariance form when prediction dominates (few sensors, fast dynamics) — the next chapter makes that choice mechanical.
Why does the Sparse Extended Information Filter (SEIF) let information-form SLAM scale to huge maps where the covariance form chokes?

Chapter 8: Practical Application — Information Form vs Kalman: When to Use Which

You now know both coordinate systems and the trade between them. The practical question every engineer faces is simply: for this problem, do I track covariance (Kalman) or information (this lesson)? This recurring "now build it" chapter turns the trade-off into a procedure you can run on any project, then walks two concrete designs end-to-end.

The decision rule, in one sentence

It all comes down to which step you do more of, because the two forms have mirror-image costs (Chapter 4):

The rule. Count your predicts and your updates. If you make many measurements per prediction (lots of sensors, slow dynamics) → use the information form (cheap additive updates dominate). If you make many predictions per measurement (few sensors, fast dynamics, frequent motion steps) → use the Kalman/covariance form (cheap predicts dominate). The form whose cheap step you do most often wins.

The full decision procedure

Three questions pin down the choice:

Q1: Are the sources DISTRIBUTED (no central computer)?
Yes → lean information form — decentralized nodes fuse by addition, no coordination
Q2: Do you fuse MANY sources per time-step?
Many → information form (each fuse is one cheap addition). Few + fast motion → Kalman (predict dominates)
Q3: Does the problem have SPARSE structure (e.g. SLAM)?
Yes → information form — the sparse information matrix is cheap; covariance goes dense

The zero-prior superpower — starting with no information

One practical trick deserves its own spotlight because the Kalman form simply can't do it cleanly. To start a filter, you need an initial belief — a prior. But what if you genuinely have no prior, no idea where the target is? In the covariance form you'd need an "infinite covariance," which is singular and breaks the math (you can't invert it in the update). In the information form, no prior = zero information, and zero is a perfectly ordinary number:

Ωinit = 0   ξinit = 0   (total ignorance, perfectly well-defined)

You initialize the filter at zero and let the first measurement's information be the entire belief (0 + Ωz = Ωz). We did exactly this in Chapter 3's worked fuse — started from Ω = 0, ξ = 0, and the two sensors built the belief from scratch. This non-informative prior is clean, standard, and a real reason to pick the information form when you want to start a filter with honest ignorance rather than a made-up guess.

Why "zero is clean" matters. In the moment form, "I know nothing" is a singular infinity that crashes the update. In the information form it's the additive identity — adding to zero just gives you the thing you added. The information form doesn't merely tolerate total ignorance; it represents it with the most natural number in arithmetic. Any time you must initialize without a trustworthy prior, this alone can decide the form.

Worked design 1 — a distributed camera grid

The task: track a forklift's [x, y] using 12 ceiling cameras, fused live, with the grid easy to expand. Walk the procedure. Q1: distributed? Yes — 12 cameras, ideally no single choke-point computer (and one camera dying shouldn't blind the system). Q2: many sources per step? Twelve measurements every frame, and the forklift moves slowly (one predict between batches of twelve updates) — measurement-heavy. Q3: sparse structure? Not especially, but Q1 and Q2 already point hard at the information form.

The design: each camera computes its directional information contribution (sharp along the direction it sees the forklift, vague in depth), ships the two numbers, and a tally (central or gossiped) adds them. Start the filter at Ω = 0 (no prior — we don't know where the forklift starts). Adding camera 13 next month = adding one term. A camera failing = its term drops out. The expensive predict happens only once per slow forklift step, so its cost is amortized over twelve cheap additive updates. Information form, decisively.

forklift: 12 cameras → add 12 directional informations per frame, 1 predict per step, init Ω = 0

Worked design 2 — a single-IMU drone attitude filter

Now flip every answer. The task: estimate a racing drone's orientation at 1000 Hz from one IMU. Q1: distributed? No — one onboard computer, one sensor. Q2: many sources per step? No — one sensor, and the drone's attitude changes violently, so you predict the fast dynamics many times between the relatively sparse usable measurements. This is prediction-heavy: lots of fast motion steps, few independent sources. Q3: sparse structure? No.

The design: every question points to the Kalman/covariance form, because its cheap step (predict) is the one you do constantly, and its expensive step (update) happens rarely. Wrapping this in the information form would mean paying the double-inversion predict cost a thousand times a second to save on an update you barely do — backwards. Kalman form, decisively. Same estimation problem, opposite form, chosen purely by the predict-vs-update count.

drone: 1 IMU, 1000 predicts/sec >> sparse updates → Kalman (covariance) form
The reusable recipe. (1) Distributed sources with no central computer → information form. (2) Count predicts vs updates: more updates → information; more predicts → Kalman. (3) Sparse structure (SLAM-like) → information. (4) Need to start from honest ignorance → information (zero prior). (5) Need to add/drop sources cheaply → information. When in doubt, ask which cheap step you'll do most — that form wins. The two forms give identical answers; you're optimizing compute, not accuracy.
You're tracking a slow forklift with 12 ceiling cameras (many measurements per motion step), and you want to add cameras over time and start without knowing where the forklift is. Which form, and why?

Chapter 9: Debugging & Failure Modes — The Information Form's Three Traps

The information form's elegance hides three specific failure modes, and the deadliest of them — double-counting — is a direct consequence of the very property that makes the form so attractive (addition). This recurring chapter catalogs the traps, the symptom each shows in the field, and the test that exposes it before it ships.

Trap 1 — Double-counting: adding correlated information twice

This is the big one, the failure that the addition trick is one mistake away from. Recall the fatal assumption from Chapter 5: you may only add independent information. When two sources secretly share a piece of evidence and you add both, that shared piece gets counted twice, and the pool becomes falsely overconfident — the information matrix claims you know far more than you actually do, and the uncertainty ellipse shrinks to a tiny lie.

How does it happen? The classic route: node A sends its estimate to node B; B fuses it with its own and sends the result back to A; A, not realizing B's message already contains A's own contribution, adds it again. Now A's own information is double-counted. This is the data-incest (or rumor-propagation) problem — information echoing around a network gets re-summed as if it were fresh evidence.

Make the failure numerical. Suppose a true single piece of evidence is Ω = 0.25 (variance 4). If two correlated sources each carry that same evidence and you naively add them, you get Ω = 0.5 (variance 2) — you now believe you're twice as certain as the evidence warrants. Your ellipse is half the area it should be; your filter will confidently reject correct measurements that disagree with its phantom precision. Overconfidence is more dangerous than under-confidence — a too-tight filter stops listening and diverges.

Symptom & detection. Symptom: the filter is overconfident — its reported uncertainty (the ellipse) is far smaller than its actual errors, and it starts ignoring or rejecting good measurements (a classic sign of a too-small covariance). Detection: a consistency check — compare the filter's claimed uncertainty against the empirical spread of its errors (the normalized innovation / NEES test). If errors are routinely much larger than the ellipse predicts, you're double-counting. Fix: ensure you only ever add independent contributions, track provenance so a node never re-adds its own information, and for genuinely correlated sources use covariance intersection (Lesson 11), which fuses safely without assuming independence.

Trap 2 — Expensive / ill-conditioned prediction

The information form's predict step (Chapter 4) needs two matrix inversions per step. Two things go wrong. First, cost: in a high-dimensional state, paying n³ twice per prediction can dominate your runtime — if your profiler shows the filter pinned in the predict step, you may have picked the wrong form for a prediction-heavy problem (re-read Chapter 8). Second, numerical conditioning: the matrices you invert during predict can become ill-conditioned (nearly singular), so the inverse amplifies floating-point error and the filter's numbers drift or blow up.

Symptom & detection. Symptom: prediction is the runtime bottleneck, or the filter's state develops NaNs / wild values after many steps. Detection: monitor the condition number of the matrices being inverted in predict (the ratio of largest to smallest eigenvalue) — a huge condition number means the inverse is untrustworthy. Fix: if cost is the issue, switch to the Kalman form for that subsystem (cheap predict). If conditioning is the issue, use numerically stable inversion (Cholesky, not naive Gaussian elimination) or regularize by adding a tiny multiple of the identity to keep the matrix invertible.

Trap 3 — Singular information at initialization

Chapter 8 sold you the zero-prior superpower: start at Ω = 0 (total ignorance). True — but it has a sharp edge. A zero information matrix (or any singular / non-invertible one) means you cannot yet convert back to a mean, because reading the mean requires μ = Ω−1ξ and you can't invert a singular matrix. Worse, a single directional sensor (like Chapter 2's edge-on camera) contributes information in one direction only, so its information matrix is rank-deficient — if that's all you've fused, Ω is still singular and there is no mean to read in the unobserved direction.

Symptom & detection. Symptom: trying to read the estimate (convert to μ, Σ) throws a singular-matrix error, or returns garbage in one direction. This is correct behavior — you genuinely don't know the answer there yet — but it crashes naive code. Detection: check Ω's rank (or its smallest eigenvalue) before inverting; if it's deficient, you don't yet have enough independent information to estimate every direction. Fix: don't try to read a mean until Ω is full-rank (enough independent sensors have contributed to pin every direction), or add a weak regularizing prior (a tiny Ω on the diagonal) so the matrix is always invertible — at the honest cost of injecting a faint made-up belief.

A debugging checklist you can run on any information filter

CheckHowCatches
Independence auditCould any two added contributions share evidence (echoed estimates, shared priors)?Trap 1 (double-counting)
Consistency / NEES testAre actual errors much bigger than the claimed ellipse?Trap 1 (overconfidence from double-counting)
Condition number monitorWatch the eigenvalue ratio of matrices inverted in predictTrap 2 (ill-conditioned predict)
Profile predict vs updateWhich step dominates runtime?Trap 2 (wrong form for the problem)
Rank check before invertIs Ω full-rank before reading the mean?Trap 3 (singular init / rank-deficient)
The meta-lesson. The information form's single greatest strength — that fusion is addition — is also the source of its single greatest danger: addition is only correct for independent evidence, and it's seductively easy to add the same evidence twice. Treat every "+" in your fuser as a promise of independence. When you can't keep that promise (correlated sources), don't add — use covariance intersection. The other two traps are the price of the predict-side cost and the zero-prior trick; both are detectable with a condition-number or rank check before you invert.
A node's estimate echoes around a sensor network and gets re-added into the pool as if it were fresh evidence. The filter's reported ellipse shrinks but its real errors stay large. Which trap is this and what's the fix?

Chapter 10: Connections, References & Cheat-Sheet

You can now flip the Kalman filter inside out at will, and you know exactly when that flip pays off. Before pointing at what's next, here's everything in one place — the cheat-sheet to screenshot, the motto, the real sources, and the cross-links.

The information filter — cheat-sheet

The core idea: track inverse covariance (information) instead of covariance. Same filter, same answers, mirror-image costs.

The duality (memorize):
· covariance Σ ↔ information matrix Ω = Σ−1 (sharpness; big entry = sharp axis; zero = total ignorance)
· mean μ ↔ information vector ξ = Ωμ (info-scaled center)
· convert back: Σ = Ω−1, μ = Ω−1ξ (the only inversions)

Update = ADD (the killer feature): Ωnew = Ωold + Ωz, ξnew = ξold + ξz. Fusing N independent sensors = N additions. Commutative (any order), reversible (subtract to undo). Equals the inverse-variance fuse of Lesson 3 exactly.

Predict = EXPENSIVE (the dual cost): Ω = (FΩ−1FT + Q)−1 — two matrix inversions per step, because prediction LOSES information and Q lives in covariance space.

Decentralized fusion: each node ships (Ωi, ξi); the pool adds them; convert back — provably identical to a central filter, IF the nodes are independent.

Zero prior = total ignorance = clean zero — start a filter with no prior (Ω = 0), impossible cleanly in the covariance form.

Pick the form: many updates per predict / distributed / sparse (SLAM) → information. Many predicts per update / few sensors / fast dynamics → Kalman.

The one danger: double-counting correlated information → overconfidence. Add only INDEPENDENT info; use covariance intersection (Lesson 11) otherwise.

The motto

"What I cannot create, I cannot understand." — Richard Feynman.
You can now create the Kalman filter's inside-out twin — and choose, on any problem, whether to think in spread or in certainty.

The information form in one quick-reference table

Screenshot this. It is the whole lesson collapsed into a single lookup:

StepKalman (moment) formInformation formCost in info form
State carriedμ, Σξ = Ωμ, Ω = Σ−1
Update (fuse sensor)Kalman gain + inversionΩ += Ωz, ξ += ξz (ADD)CHEAP — addition
Predict (motion)FΣFT + Q (direct)(FΩ−1FT + Q)−1EXPENSIVE — 2 inversions
Total ignoranceΣ → ∞ (singular)Ω = 0 (clean)trivial
Fuse N sourcesentangled batch inversionsum of N termsN additions

Where this lesson sits in the series

This was Lesson 9 of 22, in the spatial-fusion arc. The information form you just learned is the bridge between the classical filters (Lessons 4–8) and the distributed, large-scale fusion the rest of the series tackles — it's the form that makes SLAM (later), sensor networks, and robust multi-source fusion tractable.

LessonsArcHow the information form connects
1–3Foundationsthe fusion problem; architectures (centralized/decentralized/distributed — the information form is decentralization's native language); the inverse-variance fuse the information add reproduces
4–8Classical estimationBayes filter; the Kalman filter (this lesson is its inverse-covariance twin); EKF/UKF; particle filters
9Information form (here)the Kalman filter flipped — fusion becomes addition, enabling distributed fusion and sparse SLAM
10–13Spatial fusionoccupancy grids; SLAM (the SEIF uses exactly this form); visual-inertial odometry; multi-target tracking & data association
11, 14–18Robust & distributedcovariance intersection (fuses correlated info safely — the fix for this lesson's double-counting trap); fault detection; consensus over networks

Next up, Lesson 10: Occupancy Grids — where the additive-information idea reappears in a delightfully concrete form. An occupancy grid maps the world as cells that are "occupied" or "free," and each sensor sweep adds evidence (in log-odds, which behave just like information — independent evidence adds) to each cell. You'll see the same "fusion = addition" principle from this lesson, applied to building a map instead of tracking a point.

Related lessons on Engineermaxxing

References

  1. Thrun, S., Burgard, W., and Fox, D. Probabilistic Robotics. MIT Press, 2005. Chapter 3 derives the Information Filter as the dual of the Kalman filter (the information matrix Ω and vector ξ, the additive update, the costly predict), and a later chapter covers the Sparse Extended Information Filter (SEIF) for SLAM. The canonical treatment. probabilistic-robotics.org
  2. Durrant-Whyte, H. F. and Rao, B. Y. S. "A Fully Decentralized Algorithm for Multisensor Kalman Filtering." Foundational work showing decentralized nodes fuse to the optimal central estimate by adding information contributions — the theoretical basis for Chapter 5. See also Durrant-Whyte's lecture notes on decentralized data fusion. researchgate
  3. Maybeck, P. S. Stochastic Models, Estimation, and Control, Vol. 1. Academic Press, 1979. The classic estimation-theory derivation of the information filter as the inverse-covariance Kalman filter, with the predict/update duality worked out in full.
  4. Mutambara, A. G. O. Decentralized Estimation and Control for Multisensor Systems. CRC Press, 1998. A book-length treatment of information-form decentralized fusion, including the channel-filter machinery that avoids double-counting in networks.
A colleague says "the Information Filter is just a faster Kalman filter — it's strictly better." What's the precise correction?