Summary
FusionCore ATE RMSE 3D: 49.2 m. robot_localization EKF: 18.2 m. This is one of two sequences where RL wins.
Root cause
This is the lowest-GPS-density sequence in the benchmark set. 15,594 GPS fixes vs 30,000-46,000 on other sequences. It contains a 461-second GPS blackout (7.7 minutes) around t=35-42 min.
During that window the filter dead-reckons on encoder and IMU alone. FusionCore's coast mode inflates process noise to let chi2 accept the returning GPS fix after drift. The problem: heading error accumulated during 7.7 minutes of inertial-only integration exceeds what the bias-estimation pipeline fully corrects within that duration.
The encoder WZ bias (B_EWZ) is calibrated from GPS heading cross-covariance before the blackout. During the blackout, the filter subtracts this estimated bias. But if the true B_EWZ drifts slightly (temperature, load), the residual heading error compounds over 7.7 minutes. At 100 Hz with a small uncorrected heading rate error, the lateral position error grows quadratically.
Why does RL win here? RL-EKF runs in 2D mode (two_d_mode: true). Its state is lower-dimensional and heading drift accumulates more slowly in the absence of full 3D IMU integration. This is a structural advantage for RL on GPS-sparse, flat-terrain sequences.
Per-minute analysis
| Time window |
FC error |
Status |
| 0 - 35 min |
2 - 8 m |
Normal GPS coverage |
| 35 - 42 min |
grows to ~40-50 m |
461-second blackout, heading drift accumulates |
| 42 - 55 min |
partially recovers to ~20-30 m |
GPS returns, but heading error leaves a position offset |
Sequence characteristics
- Duration: 55 min (shortest in the set)
- GPS fixes: 15,594 (vs 30,000-46,000 elsewhere)
- Blackout duration: 461 seconds
- Terrain: flat campus, low dynamic range for heading observability
What would fix this
The heading error during blackout is fundamentally an observability problem: without GPS, heading is only constrained by encoder WZ and gyro, both of which have biases that cannot be separated from true angular velocity without an external reference.
Two approaches under investigation:
-
Tighter coast_q_factor for heading specifically. The current coast mode inflates all process noise uniformly. Heading drift is the dominant error source; inflating heading noise less aggressively would reduce drift at the cost of slower outlier reacquisition.
-
Magnetometer integration. A heading measurement during blackout would close the observability gap directly. This requires a magnetometer input and soft-iron calibration, which adds setup complexity.
The coast_q_factor tradeoff is the active area of investigation. Any increase that helps 2012-06-15 risks hurting blackout recovery on sequences with adversarial GPS at the blackout boundary (see the companion issue for 2012-08-20).
Reproduce
bash benchmarks/run_one.sh 2012-06-15
Results write to benchmarks/nclt/2012-06-15/results_full/.
Summary
FusionCore ATE RMSE 3D: 49.2 m. robot_localization EKF: 18.2 m. This is one of two sequences where RL wins.
Root cause
This is the lowest-GPS-density sequence in the benchmark set. 15,594 GPS fixes vs 30,000-46,000 on other sequences. It contains a 461-second GPS blackout (7.7 minutes) around t=35-42 min.
During that window the filter dead-reckons on encoder and IMU alone. FusionCore's coast mode inflates process noise to let chi2 accept the returning GPS fix after drift. The problem: heading error accumulated during 7.7 minutes of inertial-only integration exceeds what the bias-estimation pipeline fully corrects within that duration.
The encoder WZ bias (
B_EWZ) is calibrated from GPS heading cross-covariance before the blackout. During the blackout, the filter subtracts this estimated bias. But if the trueB_EWZdrifts slightly (temperature, load), the residual heading error compounds over 7.7 minutes. At 100 Hz with a small uncorrected heading rate error, the lateral position error grows quadratically.Why does RL win here? RL-EKF runs in 2D mode (
two_d_mode: true). Its state is lower-dimensional and heading drift accumulates more slowly in the absence of full 3D IMU integration. This is a structural advantage for RL on GPS-sparse, flat-terrain sequences.Per-minute analysis
Sequence characteristics
What would fix this
The heading error during blackout is fundamentally an observability problem: without GPS, heading is only constrained by encoder WZ and gyro, both of which have biases that cannot be separated from true angular velocity without an external reference.
Two approaches under investigation:
Tighter
coast_q_factorfor heading specifically. The current coast mode inflates all process noise uniformly. Heading drift is the dominant error source; inflating heading noise less aggressively would reduce drift at the cost of slower outlier reacquisition.Magnetometer integration. A heading measurement during blackout would close the observability gap directly. This requires a magnetometer input and soft-iron calibration, which adds setup complexity.
The
coast_q_factortradeoff is the active area of investigation. Any increase that helps 2012-06-15 risks hurting blackout recovery on sequences with adversarial GPS at the blackout boundary (see the companion issue for 2012-08-20).Reproduce
Results write to
benchmarks/nclt/2012-06-15/results_full/.