4.7 KiB
ADR 0041: Registered map increment and rolling local occupancy
Date: 2026-08-05 Status: accepted and implemented for M4.5R/M4.6
Context
The recorded K1 topic lixel/application/report/lio_pcl is post-LIO data in the
vendor SLAM map frame. In RAVNOVES00 it behaves as a registered map increment:
one message contains points contributed at that moment, not a complete scan of
everything currently visible. Therefore a structure can remain physically
present while its points are absent from a later message.
M4.5 originally applied a 0.75 s temporal object hold directly to those
increments. M4.6 then rendered the current increment as if it were the complete
LiDAR scene. At frame 1880 the exact camera frame visibly contains two
concrete hemispheres, while the current lio_pcl increment has no corresponding
points in the corridor. The old result m4-threat-replay-78a06d... consequently
lost them from 3D. This was a representation error, not evidence that LiDAR had
measured free space.
Decision
Mission Core keeps three distinct products:
current registered increment ──> exact source context
current occupied components ───> temporal identity and motion evidence
bounded rolling occupancy ─────> conservative local obstacle presence
RollingLocalObstacleMapProvider accumulates only qualified current occupied
cells in the SLAM map frame. It never interprets missing republication as free
space. Retained cells are evicted only by explicit bounds:
- voxel size
0.45 m; - retention
3.0 s; - local radius
12.0 maround the recorded pose; - maximum
65,536active cells, with fail-closed capacity handling; - bounded component size/count and deterministic 26-neighbour connectivity.
The provider publishes only cells not present in the current increment as
TemporalState.RETAINED. Current and retained identities cannot overlap.
Retained components have ephemeral identity, carry their last-hit age and never
claim current motion. They may assert threat when their occupied cells
intersect the current virtual corridor; outside the corridor they remain
unknown, never not-threat.
The 0.75 s temporal object state remains separate. It continues to answer
whether a current component has enough bounded history for motion reasoning. It
is not a map-clearing policy.
Evidence and acceptance
The accepted M4.5R result is
m4-temporal-replay-b8611526dfcd2b9be9049560d751bbd23a9ad54b7dda8e9dc48a17374d46266e.
Its frame ledger SHA-256 is
08a03669d3487ecf7bd62b047ae5b8d1ff586a27e7435e5f235907a4d709dd25.
Across all 4,489 source frames it records:
848,868current increment occupied cells;69,855retained component publications and1,776,145retained cell publications;- peak
907active cells and35retained components; 29,620time evictions,6,512radius evictions and zero capacity drops;- maximum retained age exactly
3.0 sand587active cells at replay end.
The accepted M4.6 result is
m4-threat-replay-ef521b23eee704dee99856b6e93d5047a9b358e21ffda3ea9cacc2ef768164d9.
All 4,489 frames completed with 27,299 current metric, 69,855 rolling-map,
37,995 stale/held and 10,158 camera-only evidence publications assessed
exactly once. Decisions are 6,626 threat, 10,700 not-threat and 127,981 unknown. All 10/10 deterministic fixtures pass with zero critical false-safe
outcomes.
Frame 1880 is a mandatory engineering visual regression. It binds two
separate body-frame regions to two retained components. The near region must
assert threat; both regions are present in the accepted result. These anchors
encode a reproducible owner-reviewed visual case, not independent object truth.
The common LAB viewer exposes CURRENT INCREMENT and ROLLING MAP as separate
layers over the same selected frame. The current point count is not relabelled
as a complete scan, and retained occupied cells remain independently hideable.
Consequences and limitations
- Missing points cannot create free-space or navigation authority.
- Short-lived obstacle disappearance caused solely by incremental publication is removed from the replay decision path.
- A moving object may leave a conservative ghost for up to
3.0 s; retained occupancy can block but cannot claim motion or clearance. - No ray-level free-space clearing is available in this recording. A future raw scan/ray provider must add explicit observation and clearing semantics rather than weakening this contract.
- The two frame-1880 anchors are regression evidence, not independent truth, detector accuracy or physical collision acceptance.
- Live K1, measured
T_body_from_sensor, physical body geometry, navigation, commands and actuation remain outside M4.5R/M4.6 authority.