docs(perception): record full TGS shadow acceptance
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# M4.9T5 full source-paced TRAVEL TGS shadow — 2026-08-26
|
||||
|
||||
Status: **recorded source-paced CPU shadow accepted; candidate retained**.
|
||||
Visual traversability quality, full-graph performance, navigation and actuation
|
||||
remain unaccepted.
|
||||
|
||||
## Decision
|
||||
|
||||
The gravity-aligned TGS-only candidate completed the entire `RAVNOVES00`
|
||||
recorded timeline on Worker 006. Every source timeline frame and every eligible
|
||||
LiDAR point is represented. No frame was dropped for capacity, AOS was never
|
||||
invoked, no GPU was requested and the canonical Triton container remained
|
||||
healthy with the same identity.
|
||||
|
||||
This accepts TGS as a bounded CPU shadow candidate. It does not yet make TGS a
|
||||
navigation authority or prove that its occupied/ground interpretation is
|
||||
correct for vegetation, terrain, gaps or the future vehicle envelope.
|
||||
|
||||
## Frozen identity
|
||||
|
||||
| Item | Identity |
|
||||
| --- | --- |
|
||||
| LAB result | `m49-tgs-full-shadow-0faeaaf3aba8dccae974eab51ff9cccf264a13ec285abb1920c1e5a09a7e87bc` |
|
||||
| Worker run | `Worker 006 / ravnoves00-full-001` |
|
||||
| Mission Core revision used by Worker | `40c850b167dda366d8aa45d828520168affaf9fd` |
|
||||
| Deterministic Worker artifact | `5e0ea16c7a5cc760463836718b0cd8b0006ffc4b202e5f706a20a86ef2f912ab` |
|
||||
| Source pack SHA-256 | `0685d24219d8236caf8b7f1685e93f6d6b59e7fd015a768d88a92bbe8b154944` |
|
||||
| TGS config SHA-256 | `c2e07010aaee78259d36c057962d6bfb885349251ff7356d867e5813e632881c` |
|
||||
| Linked visual result | `m4-threat-replay-2a953c5f27f2a5b1dddc5c658c1de2c323d7796084a099c024987a1da03aa324` |
|
||||
|
||||
The profile is a `0.45 m`, `12 m` radius, `1 s` causal rolling
|
||||
`map-gravity-local` costmap. The four states remain separate:
|
||||
`GROUND_SUPPORT`, `NONGROUND_OCCUPIED`, `UNKNOWN_REJECTED` and `UNOBSERVED`.
|
||||
|
||||
## Full-run result
|
||||
|
||||
| Measurement | Result |
|
||||
| --- | ---: |
|
||||
| Timeline | `4,489 / 4,489` frames |
|
||||
| LiDAR available / missing | `3,928 / 561` |
|
||||
| Recorded duration / effective rate | `448.623 s / 10.003945 FPS` |
|
||||
| Eligible points | `63,646,163` |
|
||||
| Ground / non-ground / rejected | `16,579,467 / 47,046,815 / 19,881` |
|
||||
| Unaccounted points | `0` |
|
||||
| TGS p50 / p95 / p99 / max | `1.190 / 1.694 / 2.08973 / 9.106 ms` |
|
||||
| Completion age p50 / p95 / p99 / max | `17.920792 / 29.140775 / 41.428455 / 659.980295 ms` |
|
||||
| Capacity drops | `0` |
|
||||
| Worker wrapper wall time | `569.401084 s` |
|
||||
|
||||
All formal source-paced, point-accounting and capacity gates passed. The
|
||||
completion-age maximum is retained as an outlier; the accepted gate is the
|
||||
measured `p99 = 41.43 ms`, not the maximum.
|
||||
|
||||
## Fail-closed behavior
|
||||
|
||||
The `561` timeline frames without a LiDAR sample are not removed, interpolated
|
||||
or copied from the preceding frame. Each is emitted as a complete `2,244`-cell
|
||||
costmap with all states explicitly `UNOBSERVED`, zero occupied cells and zero
|
||||
source points. This preserves chronology without inventing free space.
|
||||
|
||||
## Canonical LAB publication and UI acceptance
|
||||
|
||||
The immutable result is published on the canonical Mission Core service at
|
||||
port `8000`. The LAB reuses the recorded camera timeline and exposes independent
|
||||
`SOURCE POINTS`, `TGS COSTMAP`, `3D` and `PLAN` controls.
|
||||
|
||||
The first implementation fetched one large JSON frame at a time. Browser QA
|
||||
showed that this was only intermittently exact at `1×`. The published viewer
|
||||
therefore uses immutable chunks of `24` spatial frames and prefetches the next
|
||||
chunk. A final `1×` browser acceptance sampled twenty consecutive positions
|
||||
across chunk boundaries: all twenty displayed the exact TGS frame and none
|
||||
showed the loading placeholder. A real missing-LiDAR frame was separately
|
||||
accepted with `0 source points`, `2,244 unobserved`, `0 occupied` and no retained
|
||||
previous cloud.
|
||||
|
||||
## Sealed evidence
|
||||
|
||||
| File | Bytes | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| `costmap-states.npy` | `10,073,444` | `4173f8b6b743755d6d6cbd863c433fe44853974bdd4898002e08574a65783a1a` |
|
||||
| `costmap-z-bounds-m.npy` | `80,586,656` | `f8d68b5ca09860ef857a22e15e114bbeabde32492d5c821ee59dfa62ae40373a` |
|
||||
| `frames.ndjson` | `1,178,262` | `878e20806d55cdc1fa16692397e11a0e56af760a83c173c8fc73319a39b0e779` |
|
||||
| `worker-summary.json` | `1,076` | `487d4be6f3d724bca647aa2e48ba89e7ffd0c78f1bfc5e7e5a01e1db82379dc7` |
|
||||
|
||||
## Next gate
|
||||
|
||||
Attach this unchanged TGS stage to the realtime world-state graph in shadow
|
||||
mode alongside the frozen camera semantic-risk provider. Measure complete-graph
|
||||
FPS, end-to-end latency, CPU/GPU/VRAM and queue drops against the accepted
|
||||
baseline. Keep navigation authority off. In parallel, review the full camera +
|
||||
source cloud + TGS timeline for false occupied carpets, missed compact
|
||||
obstacles, vegetation and usable gaps. Only the combination of acceptable
|
||||
visual behavior and acceptable integrated-graph regression can promote the
|
||||
candidate beyond shadow.
|
||||
Reference in New Issue
Block a user