The Kalman Filter Idea¶
Level: High School (Ages 16-18)
Putting It All Together¶
You've learned all the pieces. Now let's see how they fit together into the Kalman Filter!
The Big Picture¶
The Kalman filter is an algorithm that: 1. Keeps track of what you know (state + uncertainty) 2. Predicts what will happen next 3. Measures what actually happened 4. Combines prediction and measurement optimally 5. Repeats forever
It's like having a really smart assistant that: - Remembers everything - Makes educated guesses - Listens to sensors - Figures out the truth - Never stops learning
The Two-Step Dance¶
Step 1: PREDICT (Time Update)¶
"What do I expect to happen?"
Inputs: - Previous state estimate - Previous uncertainty - Motion model - Time elapsed
Outputs: - Predicted state - Predicted uncertainty (larger!)
Example: Tracking a car
Previous: position=100m ± 2m, velocity=20m/s ± 1m/s
Time: 1 second passes
Predicted: position=120m ± 3m, velocity=20m/s ± 1m/s
Step 2: UPDATE (Measurement Update)¶
"What did I actually observe?"
Inputs: - Predicted state - Predicted uncertainty - Measurement - Measurement uncertainty
Outputs: - Updated state (weighted average!) - Updated uncertainty (smaller!)
Example: Continuing from above
Notice: Uncertainty decreased from ±3m to ±2.4m!
Why It's Optimal¶
The Kalman filter is mathematically optimal for linear systems with Gaussian noise. This means:
- No other algorithm can do better (for these conditions)
- It minimizes the error in your estimates
- It's the best possible weighted average
What "Optimal" Means¶
Imagine 1000 different ways to combine prediction and measurement. The Kalman filter automatically finds the ONE way that gives the smallest average error!
The Kalman Filter Loop¶
Initialize:
- Set initial state
- Set initial uncertainty
Loop forever:
1. PREDICT:
- Use motion model to predict next state
- Increase uncertainty (process noise)
2. UPDATE:
- Get measurement from sensor
- Calculate Kalman Gain
- Update state (weighted average)
- Decrease uncertainty
3. Repeat
Detailed Example: Tracking a Train¶
Let's track a train moving at constant velocity.
Setup¶
State: [position, velocity] Motion model: Constant velocity Sensor: GPS (measures position only)
Initial Conditions (t=0)¶
Position uncertainty: ±10m Velocity uncertainty: ±5m/s
Time t=1s: PREDICT¶
Motion model:
Predicted state:
Predicted uncertainty (grows!):
Time t=1s: UPDATE¶
Measurement: GPS says position = 23m ± 5m
Kalman Gain (how much to trust measurement):
K = Predicted_Uncertainty / (Predicted_Uncertainty + Measurement_Uncertainty)
= 144 / (144 + 25)
= 144 / 169
= 0.85
K=0.85 means trust the measurement quite a bit!
Updated position:
new_position = predicted + K × (measured - predicted)
= 25 + 0.85 × (23 - 25)
= 25 + 0.85 × (-2)
= 25 - 1.7
= 23.3m
Updated uncertainty (decreases!):
Much more certain now! (±4.6m vs ±12m)
Final state at t=1s:
Time t=2s: PREDICT¶
And the cycle continues!
Key Insights¶
Insight 1: Uncertainty Oscillates¶
PREDICT → Uncertainty increases
UPDATE → Uncertainty decreases
PREDICT → Uncertainty increases
UPDATE → Uncertainty decreases
...
Over time, it settles to a steady value!
Insight 2: Kalman Gain Adapts¶
- When prediction is certain: K is small (trust prediction)
- When measurement is certain: K is large (trust measurement)
- It automatically adjusts!
Insight 3: Information Never Lost¶
Every measurement improves your estimate. Even noisy measurements help!
Insight 4: Works in Real-Time¶
You don't need to wait for all data. Process measurements as they arrive!
What Makes It "Kalman"?¶
Rudolf Kalman invented this in 1960 for NASA. What made it revolutionary:
- Recursive: Only needs current state, not all history
- Optimal: Mathematically proven to be best possible
- Efficient: Fast enough to run in real-time
- General: Works for many different problems
Assumptions and Limitations¶
The Kalman filter works best when:
✓ Good Assumptions¶
- Linear system: State changes linearly
- Gaussian noise: Errors follow bell curve
- Known models: You know how things move
- White noise: Errors are independent
✗ Limitations¶
- Non-linear systems: Need Extended Kalman Filter
- Non-Gaussian noise: Need Particle Filter
- Unknown models: Need adaptive filters
- Outliers: Need robust methods
Comparison to Other Methods¶
Simple Average¶
Problems: - Treats all measurements equally - Doesn't use motion model - Doesn't adapt to changing uncertainty
Moving Average¶
Problems: - Arbitrary window size - Doesn't use motion model - Doesn't weight by uncertainty
Kalman Filter¶
Advantages: - Uses motion model - Weights by uncertainty - Adapts automatically - Mathematically optimal
Real-World Success Stories¶
Apollo Moon Landing (1960s)¶
The Kalman filter guided Apollo spacecraft to the moon! It combined: - Inertial measurements (accelerometers, gyros) - Star tracker observations - Ground radar
GPS Navigation (1990s-present)¶
Your phone uses Kalman filtering to: - Combine GPS satellites - Use motion sensors - Smooth out noise - Predict position between updates
Self-Driving Cars (2010s-present)¶
Autonomous vehicles use Kalman filters to: - Fuse camera, radar, lidar - Track other vehicles - Estimate own position - Predict future states
Weather Forecasting¶
Meteorologists use Kalman filtering to: - Combine weather models - Incorporate measurements - Update forecasts - Reduce uncertainty
Practice Problems¶
Problem 1: Conceptual Understanding¶
A robot is tracking its position. Answer true or false:
a) Uncertainty always decreases over time b) Kalman Gain is always between 0 and 1 c) Predictions are always more accurate than measurements d) The filter needs to store all past measurements
Problem 2: Predict-Update Sequence¶
Given: - State: [position=50m, velocity=10m/s] - Position uncertainty: ±5m - Velocity uncertainty: ±2m/s
After 2 seconds: a) What's the predicted position? b) If measurement is 68m ± 8m, calculate Kalman Gain c) What's the updated position?
Problem 3: Uncertainty Analysis¶
Initial uncertainty: ±10m After PREDICT: ±12m After UPDATE with measurement (±5m): ?
Calculate the updated uncertainty.
Problem 4: Kalman Gain Interpretation¶
For each scenario, predict if K will be close to 0, 0.5, or 1:
a) Prediction: ±2m, Measurement: ±20m b) Prediction: ±20m, Measurement: ±2m c) Prediction: ±5m, Measurement: ±5m
Problem 5: Real-World Application¶
You're tracking a drone with: - GPS: Updates every 1 second, ±5m accuracy - IMU: Updates every 0.01 seconds, drifts ±0.1m per second
Design a Kalman filter strategy: a) What's your state vector? b) When do you PREDICT? c) When do you UPDATE? d) Which sensor is more reliable short-term? Long-term?
Try It Yourself!¶
Experiment 1: Manual Kalman Filter¶
Track a rolling ball: 1. Measure position at t=0, 1, 2 seconds 2. Calculate velocity from first two points 3. PREDICT position at t=3 4. MEASURE actual position at t=3 5. UPDATE estimate using weighted average 6. Repeat for t=4, 5, 6...
Experiment 2: Uncertainty Tracking¶
- Start with position estimate: 0 ± 10m
- PREDICT after 1 second (add ±2m process noise)
- UPDATE with measurement (±5m)
- Track how uncertainty changes over 10 cycles
- Plot uncertainty vs time
Experiment 3: Kalman Gain Behavior¶
For different uncertainty ratios: 1. Prediction: ±1m, Measurement: ±10m → Calculate K 2. Prediction: ±5m, Measurement: ±5m → Calculate K 3. Prediction: ±10m, Measurement: ±1m → Calculate K
Plot K vs uncertainty ratio.
Experiment 4: Comparison¶
Track the same object with: 1. Simple average of all measurements 2. Moving average (last 3 measurements) 3. Kalman filter
Which is most accurate? Most responsive?
Key Concepts¶
- Two-step process: Predict, then Update
- Uncertainty oscillates: Grows in predict, shrinks in update
- Kalman Gain: Automatically balances prediction vs measurement
- Optimal: Best possible linear estimator
- Recursive: Only needs current state
- Real-time: Processes data as it arrives
What's Next?¶
The next chapter will implement a complete 1D Kalman filter in Python. You'll see the actual code and run it yourself!
Key Vocabulary - Kalman Filter: Optimal recursive state estimator - Time Update: Prediction step - Measurement Update: Correction step - Kalman Gain: Optimal weighting factor - Recursive: Uses only current state, not full history - Optimal: Minimizes mean squared error