The Kalman filter estimates the state of a system from noisy measurements. It combines a mathematical model of how the system behaves with sensor data that is never perfect. The result is an estimate that is better than either the model or the sensor alone.
Rudolf Kalman published the algorithm in 1960. It was used in the Apollo navigation computer and has been in almost every guidance system since. A robot uses it to fuse wheel odometry, IMU, GPS, and lidar into a single position estimate. A drone uses it to combine accelerometer and gyroscope data into a stable attitude.
How the Kalman filter works
- Predict: use the model to estimate the next state.
- Update: use the sensor measurement to correct the prediction.
- Gain: weight the prediction and measurement by their uncertainty.
- Covariance: track how uncertain the estimate is.
- Iterate: repeat at every time step.
The filter assumes linear systems and Gaussian noise. Real systems are often nonlinear, which is why the extended Kalman filter and unscented Kalman filter exist. They linearize the model around the current estimate. The Kalman filter is not magic. It is a principled way to combine imperfect information. Give it a bad model or bad sensor data and it will produce a bad estimate. But when the model and sensors are reasonable, it is remarkably effective. It is one of the most important algorithms in robotics.
Comments
No comments yet. Be the first to share a thought.
Leave a comment