-
-
Notifications
You must be signed in to change notification settings - Fork 2
Invariant EKF
Please read over the Kalman Filter and Sensor Fusion section of the Localization page and view the additional resources before starting here. The Extended Kalman Filter (EKF) is a version of the Kalman filter adapted for nonlinear systems, and is the standard used in navigation systems today. Instead of representing process dynamics through a constant matrix, which is only suitable for linear processes, the EKF uses the Jacobian of the process dynamics model. Evaluated at the current state, it provides a local linear approximation for an otherwise nonlinear process. This approximation is then used in the regular Kalman filter as matrix
Highly recommend checking out these resources for a more detailed explanation and algorithm equations:
- https://en.wikipedia.org/wiki/Extended_Kalman_filter
- https://www.alanzucconi.com/2022/07/24/extended-kalman-filter/
- https://www.youtube.com/watch?v=E-6paM_Iwfc
Although the EKF is powerful, the dependence of the error covariance
I-EKF resources:
- public ROB 530 lectures: https://www.youtube.com/watch?v=3ZBzZigz8GQ, https://www.youtube.com/watch?v=-woCjTB9Blo
- github repo of ROB 530 resources (code examples): https://github.com/UMich-CURLY-teaching/UMich-ROB-530-public
- https://kth.diva-portal.org/smash/get/diva2:1632658/FULLTEXT01.pdf
We are currently developing a right-invariant EKF algorithm in MATLAB in the loc/iekf
branch. Our goal is to fuse information from a variety of sensors in the RI-EKF by incorporating their data in the filter's prediction and correction steps.
Sensors used in the prediction step typically don't provide a direct measurement of the rover's pose. Instead, information about the rover's pose can be derived using what we know about physics and kinematics.
- gyroscope
- accelerometer
- horizontal/vertical velocity
Sensors used in the correction step are usually direct measurements of the rover's pose.
- RTK position
- magnetometer
- accelerometer (can provide roll/pitch)
- RTK heading/pitch
After implementing a proof of concept, we would like to test it using some drive data and in simulation before uploading it onto the real rover.