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