The first stage of CHARACTERIZE — validate the INPUT before blaming the estimator (half the #211/#247 bugs were input/calibration or input-conditioned). IMU: Allan variance (σ_g, σ_a, bias instability → the filter's Q vs propagator.hpp ImuNoise defaults), bias/saturation/clipping, timestamp monotonicity + rate. Camera: exposure/blur/brightness, feature-density/texture/parallax profile, IMU-camera time-sync + rate checks. Acceptance: a CLI/offline tool prints a stream characterization report for a EuRoC sequence. Part of #261. See docs/assessments/vio-diagnostic-methodology.md §C.8 / §B. Relates to the intelligence-per-Watt benchmark (#199) and embedded deployment, where runtime stream/consistency health is operational safety, not just dev tooling.
The first stage of CHARACTERIZE — validate the INPUT before blaming the estimator (half the #211/#247 bugs were input/calibration or input-conditioned). IMU: Allan variance (σ_g, σ_a, bias instability → the filter's Q vs propagator.hpp ImuNoise defaults), bias/saturation/clipping, timestamp monotonicity + rate. Camera: exposure/blur/brightness, feature-density/texture/parallax profile, IMU-camera time-sync + rate checks. Acceptance: a CLI/offline tool prints a stream characterization report for a EuRoC sequence. Part of #261. See docs/assessments/vio-diagnostic-methodology.md §C.8 / §B. Relates to the intelligence-per-Watt benchmark (#199) and embedded deployment, where runtime stream/consistency health is operational safety, not just dev tooling.