There’s a lot of stuff you can find through Google and Wikipedia, but having a basic intuition could be useful.
Essentially, a Kalman filter means repeatedly applying a two-step process:
- Make a guess
- Use a measurement to update the guess
A Kalman filter formalizes a simple idea: when you know how fast you’re going, you can predict your geolocation from the last reported GPS position, and then update when a new GPS report comes in.
We will talk about two variables here: the mean, which is your best guess, and your uncertainty, which represents the accuracy of that guess. In terms of GPS, you would be talking about the GPS location and the margin of error (e.g. 10 meters).
With every update you do, you increase your uncertainty a bit because you’re not really that sure the velocity hasn’t changed. When a new measurement comes in, you update the position and the certainty.
The mean and uncertainty can be represented as a Bell curve (a normal distribution), with the variable on the X axis and the probability of it having that value on the Y axis:
Here µ (mu) is the mean and σ (sigma) is the uncertainty. Any such curve can be described by these two values.
The trick is that you can actually multiple two bell curves (your prediction and your measurement) and get a new one representing the combined knowledge, which you’d do when you get a new GPS position after having done some predictions. You’ll find the math for this on Wikipedia and other sites.