feat: add camera-first lidar geometry fusion

This commit is contained in:
DCCONSTRUCTIONS
2026-07-26 11:49:27 +03:00
parent f791b63890
commit 677dbdb776
6 changed files with 1458 additions and 3 deletions
+24 -3
View File
@@ -5,7 +5,8 @@ Status: accepted architecture plan; L0/L1 implemented; L2 diagnostic A/B
complete; full GOOSE and RELLIS qualification complete; L2.6d K1 replay
local-surface temporal qualification, operator triage and prior-plane residual
explainability implemented; L2.6e recorded-source-paced bounded shadow
qualified; E28 complete worker replay accepted; dynamic-observation layer next
qualified; E28 complete worker replay accepted; E29 camera-first semantic and
parallel geometry-only replay implemented; operator review and shadow gate next
Scope: passively received real-time K1 point/pose evidence, immutable replay and
future live shadow processing
Explicitly out of scope: K1 firmware modification, a new onboard exporter, new
@@ -585,16 +586,36 @@ independent gate without increasing unsafe false-free or false-dynamic output.
- [x] Run the complete accepted K1 local-surface profile on the NVIDIA worker.
- [ ] Commission physical K1 acquisition separately; do not block replay
development on device presence.
- [ ] Fuse K1 geometric evidence with E26 camera evidence as independent
- [x] Fuse K1 geometric evidence with E26 camera evidence as independent
sources; a LiDAR-native detector remains optional.
- [ ] Publish `agree`, `single-source`, `conflict` and `unknown`; unknown remains
- [x] Publish `agree`, `single-source`, `conflict` and `unknown`; unknown remains
occupied.
- [x] Preserve unassociated L2.6 occupied components as a separate bounded
geometry-only layer without inventing semantic classes or free space.
- [ ] Review E29 conflict, camera-only and geometry-only episodes in the
operator surface and freeze a vehicle-footprint/self-filter contract.
- [ ] Replay the E29 contract at recorded source pace with staleness/deadline
health and exact bounded-queue accounting.
- [ ] Measure sensor-to-result latency, deadline misses, drops, memory and GPU
headroom on a physical run.
Exit: repeatable shadow telemetry only. Navigation and safety acceptance remain
false.
LAB E29 binds the complete E26 camera-first result to the complete L2.6
source-aligned local-surface derivative. It processed `4,489` frames and
`20,513` observations. Of `19,625` current semantic observations, `6,341`
have connected occupied LiDAR support, `13,246` remain explicit camera-only and
`38` are conflicts; `888` held or unavailable observations remain `unknown`.
The independent layer retains `21,321` unassociated occupied components rather
than calling them free or assigning a guessed class. Postprocessing p95 was
`2.517 ms/frame`. These are coverage and runtime measurements on one replay,
not detection accuracy or planner acceptance. The immutable diagnostic result
is
`e29-camera-geometry-421a9d930638bef12cd5eb10979a477917fa4a389e655ed95f73ba4bd62e13dc`;
the detailed interpretation and reproduction contract are in
`experiments/perception/LAB_E29_REPORT_2026-07-26.md`.
### L5 — local occupancy and Nav2
- [ ] Qualify conservative hit-based occupied/unknown output from the existing