Do you know any papers on or implementations of GPS + IMU sensor fusion for localization that are not based on an EKF (Extended Kalman Filter) or UKF (Unscented Kalman Filter)?

I'm asking is because

  1. I've found KFs difficult to implement
  2. I want something simpler (less computationally expensive)
  3. rlabbe's book on Kalman Filters suggests they aren't ideal for this use case. In this chapter it says:

Kalman filters for inertial systems are very difficult, but fusing data from two or more sensors providing measurements of the same state variable (such as position) is quite easy.

Further in the "Can you Filter GPS outputs?" part

Hence, the signal is not white, it is not time independent, and if you pass that data into a Kalman filter you have violated the mathematical requirements of the filter. So, the answer is no, you cannot get better estimates by running a KF on the output of a commercial GPS. [...] This is a difficult problem that hobbyists face when trying to integrate GPS, IMU's and other off the shelf sensors.

If the above is true, other approaches should be out there. Yet answers to gps-imu fusion and implementation questions only point to EKFs. So far, I've only found a Master's thesis implementing an EIF (Extended Information Filter) and a paper with an Adaptive filter I don't quite understand. Do you know of alternative approaches?

  • $\begingroup$ Could you elaborate on your application? Why do you need fused data and what platform are you using it for? $\endgroup$ Jul 27 '21 at 14:06
  • $\begingroup$ The kalman filter works really well (and that it why it has stood the test of time). There are several libraries that have implemented it and you should be using one of those. That being said, it is just a bayesian filter and there are alternatives like the particle filter. $\endgroup$ Jul 27 '21 at 14:09
  • $\begingroup$ Overall the short answer is no. rlabbe's book said it is difficult, not "not ideal". Almost all real-world applications use a Kalman filter. The papers you linked to EIF and the adaptive filter are just Kalman filter variants. The particle filter is one the exception I can think of, but that is even more complicated to implement, and more computationally expensive. $\endgroup$
    – edwinem
    Jul 27 '21 at 17:08

I still can't understand how the kalman filter works, but maybe you could substitute stochastic approximations for it.

  1. Assume frequent response measurements on a static point on the GPS to obtain, for example, a Gaussian shape.
  2. Integrate the IMU variables twice, including the error tolerance, so that it also behave stochastic shape. you could approximate the IMU offset error to a radius of a Gaussian.
  3. Overlapping both frequencies results will give you a distribution of the final position, then you could use confidence intervals or take the espected value for the position.

So the result will be a distribution shape that could estimate the expected point with some confidence '$ \alpha $' (let's say 95% zone, or 99% confidence in this zone)


Kalman filters are just an intelligent way to do a weighted average of two measurements. Intelligent in the sense that it takes into account the uncertainties of each measurement to output the estimate with the minimum variance. In fact, if the measurement and process covariances are not changing during operation, the KF converges to a fixed-weight weighted average, e.g. a complementary filter.

You can fuse GPS position and velocity estimates with a process model and IMU orientation estimation using a weighted average.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.