Skip to content

feat: add bias-aware GPS IMU fusion EKF - #1426

Open
zjn20030811 wants to merge 1 commit into
AtsushiSakai:masterfrom
zjn20030811:feat/gps-imu-bias-ekf
Open

feat: add bias-aware GPS IMU fusion EKF#1426
zjn20030811 wants to merge 1 commit into
AtsushiSakai:masterfrom
zjn20030811:feat/gps-imu-bias-ekf

Conversation

@zjn20030811

Copy link
Copy Markdown

Reference issue

Closes #603.

What does this implement/fix?

Adds a self-contained 2D GPS/IMU fusion example based on a bias-aware extended Kalman filter. The state estimates position, velocity, yaw, two accelerometer-bias terms, and gyroscope bias. Body-frame accelerations are rotated into the world frame, and bias random walks are included in the process covariance. GPS updates use a Joseph-form covariance update and an optional Mahalanobis innovation gate so isolated position outliers do not destabilize the estimate.

The existing CTRV example fuses velocity/yaw-rate observations but does not model raw accelerometer bias. This example complements it without changing existing APIs.

Additional information

  • Added a deterministic curved-trajectory simulation and a localization documentation page.
  • Added regression coverage for straight-line propagation, periodic yaw boundaries, finite-difference Jacobians, outlier rejection, covariance symmetry/positive semidefiniteness, and deterministic GPS improvement over inertial dead reckoning.
  • Validation: python -m pytest tests -l -Werror --durations=0 (143 passed) on Python 3.12 with the repository dependency versions; Ruff and Black checks pass.

CheckList

  • Added an unittest for the new algorithm.
  • Added documentation for the new example.
  • All local CI tests are green.

@zjn20030811

Copy link
Copy Markdown
Author

Validation update: the EKF regression suite covers biased GPS/IMU innovations, Joseph-form covariance updates, and gating of rejected measurements. The implementation keeps the error-state covariance positive semidefinite while preserving the existing API. Focused tests and static checks pass.

@AtsushiSakai please review when convenient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add GPS IMU fusion

1 participant