Makes it seem a lot more approachable than many people have made it sound to me, but I may be horribly misunderstanding still.
Makes it seem a lot more approachable than many people have made it sound to me, but I may be horribly misunderstanding still.
So... my over-simplified touch-stones for KF's:
1. Everything is a Baysian quantity -- a mean (best guess) and a std. dev. (confidence).
2. You have a model of the system state.
3. You have some sensors, and you have some model for the accuracy & precision (noise) in the measurements.
Now, two rules:
1. The model runs open loop and at a regular cadence: "Tick tock, tick tock, the model updates on the clock." Of course, since you are running open loop, your confidence in every value of the model gets worse with each iteration (std. dev. grows). How much you adjust (reduce) the confidence is based on the precision of the system and the control inputs.
2. Sensors readings are applied as they come in: "Use'em if you got'em."
So.... now the moving average part... if you are twice as confident in your current estimate as you are in the reliability of the new measurement, do a weighted average of 2/3 of the current estimate and 1/3 of the sensor. This is why the confidence is carried along for all state values and sensor readings. Of course compute the weights of the moving average according to the current confidence values with every update.
And that is about 103% of what I know about Kalman filters :)
As an aside a nice property of particle filtering (a different approach for localization and SLAM) is that there’s no linearity assumption. A nice property of both particle filtering and the KF/EKF is that the Markov assumption holds. This simplifies the underlying mathematics, as well as benefits the implementation on a computer by reducing time and space complexity required to evaluate the algorithms at each step.