Case study

IMU-GNSS Sensor Fusion Drift Case Study

Mathematical engineering case study on IMU-GNSS sensor fusion drift, yaw-rate bias, Kalman innovation gating, covariance inconsistency, safe-mode decision, filter retuning, and validation evidence.

This case study examines a sensor-fusion failure in a mobile inspection system that combines an inertial measurement unit with GNSS position updates. The estimator looks smooth, but the vehicle gradually leaves its expected path because the filter underestimates inertial yaw-rate bias and rejects the measurements that would have corrected it.

The engineering question is not whether a Kalman filter was implemented. The question is whether the estimate, covariance, residuals, and validation evidence are credible enough to support navigation and control decisions.

Case Context

An outdoor inspection rover follows a planned route around an industrial site. It estimates position and heading using:

  • wheel speed and steering commands;
  • a low-cost gyroscope measuring yaw rate;
  • GNSS position updates at 1\ \text{Hz};
  • a Kalman-filter-based sensor-fusion algorithm;
  • geofence and route-deviation logic tied to the fused position estimate.

During a maintenance inspection, the rover drifts toward the edge of the approved route. GNSS measurements appear inconsistent with the estimator prediction and are repeatedly rejected by the innovation gate. Operators stop the mission and compare the logged trajectory with surveyed control points.

Event Data

QuantityValue
average rover speed1.5\ \text{m/s}
time since last trusted correction120\ \text{s}
measured yaw-rate bias after event0.08^\circ/\text{s}
yaw-rate bias standard deviation assumed by filter0.015^\circ/\text{s}
predicted one-sigma horizontal position uncertainty3.0\ \text{m}
independent surveyed position error at stop point14.5\ \text{m}
GNSS innovation at a rejected update[5.6,\ -2.1]\ \text{m}
innovation covariance for that update\operatorname{diag}(4,\ 4)\ \text{m}^2
two-dimensional 95 percent chi-square gate5.99
consecutive GNSS measurements rejected7

The raw GNSS status flags show degraded but usable geometry, not a complete outage. The independent surveyed point later confirms that the fused estimate, not the GNSS position, carried the larger error during the stopped segment.

Step 1: Estimate Heading Error from Gyroscope Bias

Convert the measured yaw-rate bias to radians per second:

\displaystyle b_\psi=0.08^\circ/\text{s}\left(\frac{\pi}{180}\right)=0.001396\ \text{rad/s}

Integrated yaw error over:

t=120\ \text{s}

is:

\Delta\psi=b_\psi t
\Delta\psi=0.001396(120)=0.1675\ \text{rad}

Convert to degrees:

\displaystyle 0.1675\left(\frac{180}{\pi}\right)=9.6^\circ

Engineering Comment

A yaw error near 10^\circ is large enough to create visible path drift. The gyroscope can look stable over a few seconds and still create unacceptable dead-reckoning error over two minutes.

Step 2: Estimate Cross-Track Drift

For small heading error growing approximately linearly from a constant yaw-rate bias, a first-order lateral drift estimate is:

\displaystyle e_y\approx \frac{1}{2}v b_\psi t^2

where:

v=1.5\ \text{m/s}

Substitute:

\displaystyle e_y\approx \frac{1}{2}(1.5)(0.001396)(120^2)
e_y=15.1\ \text{m}

Engineering Comment

This simple estimate is close to the surveyed error of 14.5\ \text{m}. That does not prove the whole trajectory model, but it strongly supports yaw-rate bias as a plausible dominant cause.

Step 3: Review the Rejected GNSS Innovation

For one rejected GNSS update, the innovation vector is:

\nu=\begin{bmatrix}5.6\\-2.1\end{bmatrix}\ \text{m}

The innovation covariance is:

S=\begin{bmatrix}4&0\\0&4\end{bmatrix}\ \text{m}^2

Normalized innovation squared is:

NIS=\nu^TS^{-1}\nu

Because S^{-1}=\operatorname{diag}(0.25,\ 0.25):

\displaystyle NIS=\frac{5.6^2}{4}+\frac{(-2.1)^2}{4}
NIS=7.84+1.10=8.94

The two-dimensional 95 percent gate is:

\chi^2_{2,0.95}=5.99

Comparison:

8.94>5.99

The filter rejects the GNSS update.

Engineering Comment

Rejecting one measurement can be reasonable. Rejecting seven consecutive measurements in the same direction is a different pattern. It may mean the sensor is wrong, but it may also mean the prediction is drifting while the covariance is too small.

Step 4: Check Covariance Consistency

The filter reports one-sigma horizontal position uncertainty:

\sigma_{pos}=3.0\ \text{m}

The independent surveyed position error is:

e_{survey}=14.5\ \text{m}

Normalized error:

\displaystyle z_e=\frac{e_{survey}}{\sigma_{pos}}=\frac{14.5}{3.0}=4.83

Engineering Comment

An error of 4.83\sigma is possible but should be rare under a consistent Gaussian uncertainty model. In this case it occurs with a physical explanation: the filter covariance did not grow enough during inertial drift, so the innovation gate became overconfident.

Step 5: Diagnose the Filter Failure

The failure is not simply “GNSS was bad” or “the Kalman filter failed.” The evidence points to a coupled estimator-design problem:

EvidenceInterpretation
measured yaw-rate bias is 0.08^\circ/\text{s}larger than bias assumption
drift estimate is 15.1\ \text{m}matches surveyed error scale
seven GNSS updates rejectedgate was persistently inconsistent
covariance reported 3.0\ \text{m} one-sigmaestimator was overconfident
independent survey supports GNSS correction directionrejected measurements were not all bad

The root cause is an underestimated inertial error model combined with a gate that treated the model prediction as more trustworthy than it was.

Step 6: Decide Safe Operating Action

The immediate decision is:

Do not continue autonomous route following using the current fused estimate. Enter supervised mode, keep outputs speed-limited, log estimator state, and require an estimator validation update before releasing autonomous navigation again.

The decision is justified because the fused estimate supports a geofence and route-deviation function. A smooth but overconfident position estimate can be more dangerous than a noisy estimate that reports uncertainty honestly.

Corrective Design

The revised estimator and validation plan should include:

  1. estimate gyroscope bias as a state or increase yaw process noise where bias is credible;
  2. inflate covariance during GNSS degradation, long dead-reckoning intervals, or low excitation;
  3. distinguish single-measurement rejection from repeated same-direction innovation bias;
  4. monitor normalized innovation statistics by operating mode;
  5. use GNSS quality indicators only as evidence, not as unconditional truth;
  6. add a route-deviation safe mode when covariance or innovation patterns exceed limits;
  7. validate against surveyed points, not only against the fused trajectory itself.

The filter should also record enough data for diagnosis: raw measurements, timestamps, covariance, innovations, gate decisions, selected mode, bias estimates, and software version.

Validation Retest

After retuning, run a validation route with surveyed control points and intentional GNSS degradation.

Acceptance criteria:

MetricCriterion
surveyed position errorbelow route tolerance with stated confidence
normalized innovation squareddistribution consistent with assumed gate rate
consecutive rejection ruletriggers review or covariance inflation before drift becomes unsafe
covariance coverageat least 95 percent of surveyed points inside reported 95 percent interval
safe modeenters speed-limited supervised mode when uncertainty exceeds route limit
replay testlogged data reproduce estimator decisions offline

Engineering Comment

Estimator validation should test the decision supported by the estimate. Here the decision is navigation within a route boundary, not whether the plotted trajectory looks smooth.

Failure Mode Review

Failure modeCauseEffectInitial rating
overconfident fused position during GNSS correction rejectionunderestimated yaw bias and tight innovation gateroute deviation, geofence error, unsafe autonomous motionS=8,\ O=4,\ D=5

Initial risk priority number:

RPN_{initial}=8(4)(5)=160

With bias-state estimation, covariance inflation, repeated-innovation monitoring, surveyed validation, and speed-limited safe mode:

RPN_{residual}=8(2)(2)=32

Transferable Lessons

Sensor fusion does not make weak measurements reliable by averaging them. It makes an engineering estimate under assumptions about sensors, timing, dynamics, uncertainty, and fault behavior.

A strong estimator release record includes:

  1. state definition, units, frames, and sign conventions;
  2. sensor timing, latency, sampling, calibration, and quality flags;
  3. process-noise and measurement-noise assumptions;
  4. innovation and residual statistics;
  5. covariance coverage against independent data;
  6. fault cases such as bias, dropout, multipath, stale data, and timestamp error;
  7. decision rules for safe mode, rejection, retuning, and operator review.

The practical lesson is that a filter must be validated as a decision system. A smooth position trace is not enough. Engineers need to know when the estimator is wrong, how wrong it could be, and what action the system takes when uncertainty stops being acceptable.

REF

See also