Most people know Kalman filters and some know particle filters. However, they have some shortcomings depending of intended applications. Most applications are tracking/localization related tasks in robotics. Therefore, we’ll look at what else is available.

Well, technically all algorithms mentioned here would be called categorized as (non-)linear filters. However, most applications aim at some kind of tracking/localization.

  • Kalman Filter (KF) [1]
  • Extended Kalman Filter (EKF) [2]
  • Error-State Extended Kalman Filter (ES-EKF) [3]
  • Unscented Kalman Filter (UKF) [4]
  • Ensemble Kalman Filter (EnKF) [5]
  • Invariant Extended Kalman Filter (IEKF) [6]
  • Particle Filter [7]
  • Madgwick Filter [8]
  • Mahony Filter (ECF - Explicit Complementary Filter) [9]
  • Complementary Filter [10]
  • Premerlani and Bizard Filter [11]
  • L1 Tracker [12]

References

[1] https://www.cs.unc.edu/~welch/kalman/

[2] https://doi.org/10.1117/12.280797

[3] https://arxiv.org/abs/1711.02508

[4} https://cse.sc.edu/~terejanu/files/tutorialUKF.pdf

[5] https://arxiv.org/abs/0901.3725

[6] https://www.mdpi.com/1424-8220/18/9/2855

[7] https://www.stats.ox.ac.uk/~doucet/doucet_johansen_tutorialPF2011.pdf

[8] https://wiki.ros.org/imu_filter_madgwick

[9] https://rdrr.io/cran/RAHRS/man/MahonykIMU.html

[10] https://www.pieter-jan.com/node/11

[11] http://gentlenav.googlecode.com/files/DCMDraft2.pdf

[12] https://cpb-us-w2.wpmucdn.com/blog.nus.edu.sg/dist/8/10877/files/2019/01/CVPR_2012_tracker-13stjfi.pdf