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.

Logmap IMU Preintegration Results

This report summarizes the executed Galilean IMU factor NEES notebook. All four GTSAM preintegration backends use the default SE2(3)SE_2(3) Logmap factor error,

error = state_j.logmap(predictedState_j);

The notebook is the executable source of truth. Its mechanical Monte Carlo, statistics, tables, and Plotly code are kept in galilean_imu_factor_nees.py.

The Galilean row is the companion paper’s Gal(3)×R6\mathrm{Gal}(3)\times\mathbb R^6 direct-product model. It retains Delama et al.'s held-input composition and uses Brossard et al.'s endpoint and rotating-frame structure, but its physical bias model, left-invariant covariance, and right correction are the companion paper’s formulation.

How to read the results

Normalized Estimation Error Squared (NEES) tests whether a residual and its predicted covariance agree. The expected mean is the residual dimension: 9 for the ordinary IMU factor and 15 for the Combined factor. A value nearest that mean is best; a smaller NEES is not automatically better.

Physical position and velocity RMS errors are reported separately. A residual chart cannot repair deterministic integration error.

One-second inertial stress test

This experiment integrates simultaneous high rotation and acceleration at 20 Hz. The expected 95% interval for mean 9D NEES is [8.849, 9.152].

BackendPosition RMS (m)Velocity RMS (m/s)Mean Logmap error normMean NEES
Manifold0.05780.10490.081814.502
Tangent0.05780.10490.081814.507
Lie group0.05780.10490.081814.502
Galilean0.04270.07670.00118.959

The established backends are overconfident in this deliberately stressful finite-rate case. Galilean preintegration removes most of the held-input mean error and remains statistically consistent.

Powered ascent in a rotating Earth frame

The four-second sounding-rocket scenario includes 12 g measured specific force, changing attitude, gravity, and Earth rotation. “Specified” means the known Earth rate is supplied through omegaCoriolis.

BackendEarth ratePosition RMS (m)Velocity RMS (m/s)Mean NEES
ManifoldNot specified1.40790.805716.715
ManifoldSpecified1.23640.685914.012
TangentNot specified1.40790.805716.715
TangentSpecified1.23640.685914.012
Lie groupNot specified1.40790.805716.715
Lie groupSpecified1.23640.685914.012
GalileanNot specified0.84910.53179.663
GalileanSpecified0.82130.50709.090

The expected mean-NEES interval is again [8.849, 9.152]. Correctly supplying Earth rate improves every backend. Galilean is the only backend inside the interval when Earth rate is specified.

Long-horizon uncertainty with fixed nonzero bias

This ten-second experiment centers every backend on its own noise-free discrete mean, isolating accumulated sensor uncertainty while retaining a fixed nonzero accelerometer and gyroscope bias. The expected mean-NEES interval is [8.815, 9.187].

BackendMean NEESMedian NEESMean Logmap error norm
Manifold8.9958.2660.2156
Tangent8.9968.2860.3133
Lie group8.9958.2660.2156
Galilean8.9938.2530.2193

All four Logmap results are statistically consistent and within 0.007 of the theoretical mean.

Full 15D uncertainty with bias random walk

The Combined experiment samples accelerometer and gyroscope bias random walks and retains the full state-bias covariance. Its expected mean-NEES interval is [14.761, 15.241].

BackendMean NEESMedian NEESMean Logmap error norm
Manifold15.01114.3100.1369
Tangent15.02714.3290.3117
Lie group15.01114.3100.1369
Galilean15.01014.3330.1390

Every backend remains inside the confidence interval when the state block uses the Logmap residual.

Right-applied first-order bias correction

The companion paper defines the Galilean first-order correction

Υ^ij(b^+δb)Υ^ij(b^)Exp(Jbδb)\widehat\Upsilon_{ij}(\hat b+\delta b) \simeq \widehat\Upsilon_{ij}(\hat b)\operatorname{Exp}(J_b\delta b)

on the right because its direct-product state uses a standard left-invariant error. The deterministic experiment compares this correction, and each other backend’s corresponding first-order approximation, against complete reintegration. It uses a nonzero bias linearization point, one second of smooth three-axis motion, 2,000 paired random directions per magnitude, and δba=30δbω\lVert\delta b_a\rVert=30\lVert\delta b_\omega\rVert. The table reports median error at the largest joint update, 0.35.

BackendRotation (microdeg)Position (mm)Velocity (cm/s)
Manifold209.9220.50470.1593
Tangent1.5030.50470.1593
Lie group209.9220.38620.0226
Galilean209.9220.30350.0130

The corrected Lie-group implementation materially improves the position and velocity approximation over the additive Manifold/Tangent correction. Its velocity error is about seven times smaller at the largest update. Galilean is best in position and velocity for this held-input trajectory. Manifold, Lie-group, and Galilean have nearly identical attitude error, while Tangent’s tangent-space correction differs.

All backends are exact at zero bias update, and their local first-order approximation errors scale quadratically with update magnitude.

Recommendations

Legacy and ComponentWise remain compatibility choices, but they are not active modes in the current notebooks.