Skip to content

Scenarios

The benchmark is fifteen named cases in configs/benchmark.yaml. They differ only in what is degraded, so a difference between two rows is a difference in the scenario and not in the initial conditions. Every case runs the same 30 s synthetic path at seed 0. The synthetic motion, the sensor models and every configuration key are described in the model reference, and the results are on the Results page.

Run one with navkit run --only <name>; list them with navkit run --list.

gnss_only

GNSS at 5 Hz, no outage, no vision. The reference every other case is read against. Its verdict is mixed rather than clean: mean NEES sits slightly above the expected value while no epoch leaves the 2-sigma ellipsoid.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision off.

dead_reckoning

Inertial integration with no aiding at all. Reported as the control for "how much of the result is the filter and how much is the motion model".

Configuration: GNSS off; vision off; estimator DeadReckoning.

vision_anchor_in_measurement_noise

The pre-refactor arrangement, where the visual anchor error is folded into the measurement covariance. Retained as a regression control, not as a supported configuration.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused; anchor error folded into measurement noise.

vision_only

Visual odometry at 20 Hz with no GNSS. In this fixture it is less accurate than dead reckoning and severely overconfident: nothing constrains the absolute pose, and the claimed uncertainty is far smaller than the error.

Configuration: GNSS off; vision 20.0 Hz, fused.

outage_control

15 s GNSS outage, 5 s to 20 s, with vision off. The baseline for a contested receiver: the error grows and so does the claimed uncertainty, and coverage stays at or above nominal. The verdict is mixed because mean NEES is slightly above the expected value.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision off; GNSS outage 5 s to 20 s.

outage_visual

The same 15 s outage with vision on. Position error is lower than the control in this window, but the claimed uncertainty stays small and coverage collapses: accurate and confidently wrong. That is why vision_enabled defaults to false. The accuracy gain depends on when the outage starts (see the outage sweep); the overconfidence does not.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused; GNSS outage 5 s to 20 s.

outage_visual_degraded_camera

Visual aiding through the outage with 30% of camera frames dropped in 1 s bursts. Checks whether an intermittent visual stream changes the result. It does not: the filter is still overconfident, with a smaller error than the clean case.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused; GNSS outage 5 s to 20 s; camera drop 30% in 1 s bursts.

outage_visual_clone

The outage_visual scenario with the previous visual pose carried as a stochastic clone instead of a stored anchor. Same data, same seeds, same gate.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused; GNSS outage 5 s to 20 s; previous visual pose as a stochastic clone.

outage_visual_degraded_camera_rereferenced

The degraded-camera scenario with every delivered measurement taken against the last delivered frame, and the single-anchor model. Separates the effect of the generator from the effect of the clone: the anchor is no better calibrated.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused, re-referenced to the last delivered frame; GNSS outage 5 s to 20 s; camera drop 30% in 1 s bursts; single anchor.

outage_visual_degraded_camera_clone

The degraded-camera scenario with re-referenced measurements and the stochastic clone.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused, re-referenced to the last delivered frame; GNSS outage 5 s to 20 s; camera drop 30% in 1 s bursts; stochastic clone.

vision_only_clone

Visual odometry at 20 Hz with no GNSS, with the stochastic clone. Nothing constrains the absolute pose, so the claimed uncertainty has to grow with the error and not stay small.

Configuration: GNSS off; vision 20.0 Hz, fused; stochastic clone.

outage_visual_clone_outliers

The clone with 5% of visual frames carrying an error twenty times the nominal one, as with a wrong feature match. The chi-square gate rejects them and the filter stays calibrated.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused, 5% of frames with a twenty-fold error; GNSS outage 5 s to 20 s; stochastic clone.

outage_visual_clone_scale_drift

The clone with a slowly drifting error of up to 10% on the translation scale, as monocular scale drifts. The inertial unit holds the metric scale, so the filter stays calibrated.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused, translation scale drifting up to 10% (correlation time 30 s); GNSS outage 5 s to 20 s; stochastic clone.

outage_visual_clone_correlated

The clone with visual errors correlated over 2 s, as they are when consecutive frames share features. The clone assumes independent errors, so it is overconfident again. This is the case the clone does not survive.

Configuration: GNSS 5.0 Hz, sigma 0.8 m; vision 20.0 Hz, fused, errors correlated over 2 s; GNSS outage 5 s to 20 s; stochastic clone.

outage_visual_clone_correlated_inflated

The same correlated errors with the filter told the visual noise is four times larger than the generator drew. Calibration is restored, at a cost in accuracy that still leaves the position error well inside the no-vision control's.

Configuration: As the previous case, with the filter assuming four times the visual noise; stochastic clone.