All About Kalman Filters
Here is a collection of Udacity student posts, all about Kalman filters. Kalman filters are a tool that sensor fusion engineers use for self-driving cars.
Imagine you have a radar sensor that tells you another vehicle is 15 meters away, and a laser sensor that says the vehicle is 20 meters away. How do you reconcile those sensor measurements?
That’s what a Kalman filter does.
Jeremy has a really nice post on the intuition behind Kalman filters — why we use them and how they work. Plus the GIF is cool:
“It’s just a cycle of predict (“based on your previous motion, I’d expect you to be here n seconds later”) and measurement update (“but my sensor thinks you’re here”), from which a compromise is made and a new state vector and covariance matrix are determined”
Self-Driving Car Engineer Diary — 8
Actually, this quick post is as much about the deep neural networks Andrew experimented with between terms as it is about the Kalman filters from the beginning of Term 2. But he does highlight using behavior driven development to build his Kalman filter pipeline, which is awesome:
“I added Behaviour Driven Development (BDD) tests using Catch to my project. While this took extra time to setup, I’ve seen the benefit of developer tests too many times to ignore them, especially when using verbose languages like C++.”
This post by Mithi is a great place to look if you’re interested in the math behind all of the vectors and matrices that drive the Extended Kalman Filter.
“A lidar can measure distance of a nearby objects that can easily be converted to cartesian coordinates
(px, py). A radar sensor can measure speed within its line of sight
(drho)using something called a doppler effect. It can also measure distance of nearby objects that can easily be converted to polar coordinates
(rho, phi)but in a lower resolution than lidar.”
Alena’s breakdown of the differences between Kalman Filters, Extended Kalman Filters, and Unscented Kalman Filters is terrific. Here’s the summary, but there’s a lot more at the link:
“In a case of nonlinear transformation EKF gives good results, and for highly nonlinear transformation it is better to use UKF.”
Joshua’s post takes the Kalman filter from the highest-level intuitions, through the mathematical theory, all the way to the algorithmic implementation.
“Kalman filter algorithm can be roughly organised under the following steps:
1. We make a prediction of a state, based on some previous values and model.
2. We obtain the measurement of that state, from sensor.
3. We update our prediction, based on our errors