# Kalman Filter - Position/Velocity from Accelerometer and periodic position measurements

I am trying to implement an EKF to estimate my position and velocity states by using accelerometer measurements as well as periodic GPS (position) measurements. Basically I want to use the constantly use the accelerometer and re-calibrate it for every position measurement that is available. When there is GPS dropouts, the estimates rely solely on the accelerometer readings.

I believe I have it working if all measurements are available. Since my acceleration is not one of my states, my accelerometer measurements are used in the predict side of my filter. The position measurements are in the update side like normal.

If a position measurement is unavailable, what do I do during my update? Without a position measurement, am I basically just saying that a priori estimate is equal to my posteriori? (i.e. my "pretend" position measurement is just my estimated position).

Or is there something fancier that has to be done? Is there issues with the system not being "observable" (i.e. observability matrix not full rank) when the position measurements are not available?

I'm not sure how well it works, but one way to tweak the model is to set the measurement noise variance for the missing position measurement to a large value (meaning high uncertainty of the measurement), just for that missing time instant.

Setting it to be "infinite" should have the same effect as what you're doing now: just equate a priori and a posteriori estimates.

What setting the variance to some smaller value might give is a way to keep "momentum" in the position change.

I've not tried this approach, so please take with a grain of salt!

• I think you mean "measurement noise" and not "process noise", right? That does make sense, I will give it a try. But what would my measurement be (when the GPS is unavailable) before the noise is added?
– Joe
Oct 7, 2013 at 19:33
• @Joe Yup! Corrected. I'd just do what you're doing now (use the previous estimate), but increase the variance.
– Peter K.
Oct 7, 2013 at 19:43
• When you say "Setting it to be "infinite" should have the same effect as what you're doing now: just equate a priori and a posteriori estimates." Can you explain? I'm looking at the update equation, x_hat_plus = x_hat_minus + K*(y_measurement - h(x_hat_minus)). In order for my a priori and a posteriori estimates to be equal, then y_meas must equal h(x_hat_minus). How is this possible with infinite noise?
– Joe
Oct 7, 2013 at 20:40