You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add per-LH innovation gate for reflection rejection (TE-PROC-039)
When light-outlier-threshold > 0, compute the pre-update RMS innovation
for each lighthouse batch via a dry-run of map_light_data (no state change).
If rms_innovation > threshold * light_residuals_all, skip that LH for the
current sync cycle.
Unlike the EWMA-history approach, this fires on the frame of the reflection
itself rather than requiring multiple bad frames to accumulate. Disabled by
default (threshold=0); a starting value of 5.0 is recommended.
Adds 6 OutlierGate property tests to residual_cascade_props.c covering:
disabled states (threshold=0, cold start), fire/no-fire on either side of
the threshold, RMS correctness, and single-spike detection.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/specs/tracking-engine-specs.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,7 @@ Prefix: **TE**
39
39
-[x]**TE-PROC-036**: While the tracked object is stationary (IMU variance below `kalman-stationary-*` thresholds), the system shall apply a Zero Velocity Update pseudo-measurement forcing velocity and acceleration toward zero.
40
40
-[x]**TE-PROC-037**: When tracking is lost (no valid measurements for the configured timeout period), the system shall reset the Kalman state covariance to reflect high uncertainty.
41
41
-[x]**TE-PROC-038**: The system shall scale each lighthouse's observation noise covariance R by the ratio of that lighthouse's EWMA residual to the fleet mean residual, so that lighthouses with above-average residuals receive proportionally less Kalman weight.
42
+
-[x]**TE-PROC-039**: Where `light-outlier-threshold` is > 0, the system shall compute the pre-update RMS innovation for each lighthouse batch and skip that lighthouse's Kalman update for the current sync cycle if the RMS exceeds `light-outlier-threshold × light_residuals_all`.
0 commit comments