Tuesday, August 21, 2012

What is a Kalman Filter?

What a week. I flew out to L.A. on Sunday afternoon to spend a week at the Kalman Filter Consultant Associates (KFCAs) course on Global Navigation Satellite System (GNSS) and Inertial Navigation System (INS) integration. I'll say that the course was a blur. We covered two graduate level text-books in one week, and the whole time I felt like I was just barely able to tread water. The good news, however, is that I feel like I have a fairly solid understanding of what a Kalman Filter is and how it can be used, any further epiphanies on the subject I will be sure to capture on this blog.

 Quick History

Kalman filters have a bit of a buzz about them.  They first gained fame with their use in the Apollo program landing lunar modules, but nowadays they are showing up in many different platforms.  One of the more common places is in AI and robotics (where I first saw them).

What is it?

A Kalman Filter is a state-space prediction and analysis algorithm. In lay-mans terms, it can predict the outputs and the reliability of those outputs for a given set of related equations.  Kalman Filters are closely related to Least-Squares estimators, in fact given a pre-set data set they will arrive at the same result.  The difference is that a Kalman Filter is recursive, needing only the previous output and the current output.

How does it work?

Kalman Filters require a model of the system they will be used on.  This model creates the predicted response of a system which is subtracted from the system's sensor outputs to yield an error state matrix.  It is essentially a system model coupled with an noise predictor, using normalized noise spectra in the multiplications.  Normal noise also known as Gaussian noise has the characteristic of shrinking its standard deviation when multiplied by another Normal noise profile.  That means regardless of the spread of the two noises, the combined profile will be more certain than either of the originals.  The pivotal piece is that your noise profiles must be gaussian or be compensated to be gaussian.

No comments: