2
$\begingroup$

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?

$\endgroup$
3
  • $\begingroup$ Could you elaborate on your application? Why do you need fused data and what platform are you using it for? $\endgroup$ Jul 27, 2021 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, 2021 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, 2021 at 17:08

2 Answers 2

1
$\begingroup$

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.

$\endgroup$
0
$\begingroup$

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)

$\endgroup$
1
  • $\begingroup$ If the noise in a system is Gaussian/zero-mean (big if), then the long-term measured values should match your expected values. The Kalman filter uses a model of your system to estimate what your measurements should be, then compares those estimates to the actual measurements. This residual should, in the long-term, be zero if your states are correct and your noise is zero-mean. This then means that any long-term nonzero value indicates errors in your system state. How much of a state correction you get depends on how noisy your measurements are and how big of an error you had in your estimate. $\endgroup$
    – Chuck
    May 6, 2022 at 13:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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