58 lines
2.2 KiB
Markdown
58 lines
2.2 KiB
Markdown
# ADR 0035: Camera-first shadow and physical rig-geometry boundary
|
|
|
|
Date: 2026-07-30
|
|
Status: accepted and implemented
|
|
|
|
## Decision
|
|
|
|
Mission Core preserves one perception ownership rule:
|
|
|
|
```text
|
|
camera owns semantic class and object proposal
|
|
LiDAR owns metric support and range
|
|
```
|
|
|
|
The canonical E29 association is exposed as one reusable frame evaluator and
|
|
is reused by E29 and full-source candidate shadows. A camera proposal remains
|
|
an object when LiDAR support is unavailable; its range remains unavailable.
|
|
Unassociated LiDAR geometry remains geometry without a semantic class.
|
|
|
|
E53 runs a candidate camera detector over every RAVNOVES00 frame through that
|
|
unchanged association. It is a diagnostic shadow and cannot mutate E29,
|
|
persistent reconstruction or runtime detector selection.
|
|
|
|
## Rig geometry
|
|
|
|
Vehicle-body and LiDAR mount/extrinsic use
|
|
`missioncore.rig-geometry/v1`. The contract has three states:
|
|
|
|
- `unbound`: no physical body or mount values may be present;
|
|
- `measured`: body and rigid transform require immutable measurement evidence
|
|
and uncertainty, but collision remains unavailable;
|
|
- `qualified`: geometry passed its named qualification method, while
|
|
collision still requires a separate algorithm and safety gate.
|
|
|
|
RAVNOVES00 binds `ravnoves00-portable-k1/unbound-v1`. It is portable K1
|
|
evidence and supplies no vehicle body or measured LiDAR→body transform.
|
|
Invented dimensions, sensor height or identity transforms are rejected.
|
|
|
|
## Resource correction
|
|
|
|
The first E53 full pass exposed repeated decompression of
|
|
`cloud_points_map` inside the frame loop. That immutable result failed its
|
|
50 ms p95 gate at 210.7093 ms.
|
|
|
|
The accepted implementation materializes compressed source members once
|
|
before sequential frame processing. The corrected run processed all 4 489
|
|
frames at 1.7993 ms p95 and 36.8594 MiB peak-RSS growth. No Docker, worker,
|
|
network service or second Mission Core backend participates in the path.
|
|
|
|
## Authority
|
|
|
|
E53 proves technical full-source execution, not detector accuracy:
|
|
|
|
- E29 overlap is comparison, not ground truth;
|
|
- adjacent image-space IoU is continuity diagnostics, not tracking truth;
|
|
- the candidate detector is not operationally promoted;
|
|
- collision, navigation, safety and commands remain false.
|