Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Gal3 IMU EKF: NEES With vs. Without Reset

This notebook compares NEES (Normalized Estimation Error Squared) for the Gal3 IMU EKF when the measurement update does and does not perform the reset (covariance transport) step.

We keep the setup simple and focus on the impact of the performReset flag in updateWithVector.

NEES: theoretical introduction

The Normalized Estimation Error Squared (NEES) is

NEES=eTP−1e,\mathrm{NEES} = e^T P^{-1} e,

where e is the estimation error in the current tangent space and P is the filter covariance. For a consistent filter with correct noise modeling, the expected NEES equals the state dimension (here 10). In practice, we estimate this expectation by Monte Carlo averaging over multiple simulated runs.

Scenario: steady yaw rate with constant body-frame velocity

Monte Carlo analysis of running the EKF

Source
Loading...

Interpreting the results

These curves are Monte Carlo averages, so they are much closer to the expected behavior than a single run. The dashed line at 10 is the theoretical mean NEES for a 10‑D state.

In this plot, both filters remain above 10, meaning they are still somewhat over‑confident. The no‑reset curve is consistently higher, showing worse inconsistency when covariance is not transported after retraction.

Takeaway. The reset-enabled filter keeps the covariance aligned with the current tangent space, leading to a NEES trace that is better behaved and closer to the expected value. Without reset, the covariance is not transported after retraction, so NEES can become inconsistent over time.