From 67d5d6fa05e2fc1f4232e6dc3220a1301d72116f Mon Sep 17 00:00:00 2001 From: DCCONSTRUCTIONS Date: Wed, 26 Aug 2026 19:51:50 +0300 Subject: [PATCH] docs(perception): record gravity-aligned TGS evidence --- ...LITY_AND_STATIC_OBSTACLE_STACK_DECISION.md | 25 +++- ...M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md | 139 ++++++++++++++++++ 2 files changed, 156 insertions(+), 8 deletions(-) create mode 100644 experiments/perception/M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md diff --git a/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md b/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md index ada580f..6732023 100644 --- a/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md +++ b/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md @@ -320,6 +320,14 @@ ground/non-ground adapter that retains the exact unreturned complement as unknown evidence. GPL runtime, visual quality and full-source realtime remain open gates. +The gravity-aligned TGS-only adapter completed on the same ten anchors with all +eligible input points accounted as ground, non-ground or rejected and no AOS +invocation. It emits a deterministic `0.45 m`, `12 m` local evidence grid while +preserving unobserved cells. See +[`experiments/perception/M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md`](../experiments/perception/M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md). +Representation/accounting is accepted for the visual gate; obstacle and +traversability quality are not yet accepted. + ### T4 — Candidate C occupancy/ESDF probe - Run nvblox separately with RF-DETR disabled for the isolated probe. @@ -337,11 +345,12 @@ open gates. ## Immediate next action -Build the TGS-only recorded adapter over the bounded causal RAVNOVES00 -representation. Preserve `GROUND_SUPPORT`, `NONGROUND_OCCUPIED`, the exact -`UNKNOWN_REJECTED` complement and `UNOBSERVED` as separate products; do not use -AOS or infer free cells from absent republication. Review the ten anchors in -metric 3D/costmap space before adding diagnostic camera projection. Candidate A -T2 replay remains blocked by the failed unmodified T1 gate. No LOW-STEP tuning, -new object model, camera resize, fisheye rectification, manual dataset or -parallel heavy Worker job is authorized by this decision. +Import the sealed gravity-aligned TGS evidence pack into one laboratory review +surface and review the ten anchors in metric 3D/costmap space. Preserve +`GROUND_SUPPORT`, `NONGROUND_OCCUPIED`, `UNKNOWN_REJECTED` and `UNOBSERVED` as +separate products; do not use AOS or infer free cells from absent +republication. Add diagnostic camera projection only after the metric evidence +is accepted. Candidate A T2 replay remains blocked by the failed unmodified T1 +gate. No LOW-STEP tuning, new object model, camera resize, fisheye +rectification, manual dataset or parallel heavy Worker job is authorized by +this decision. diff --git a/experiments/perception/M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md b/experiments/perception/M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md new file mode 100644 index 0000000..365e10c --- /dev/null +++ b/experiments/perception/M49_TGS_FAIL_CLOSED_EVIDENCE_2026-08-26.md @@ -0,0 +1,139 @@ +# M4.9 gravity-aligned TGS fail-closed evidence — 2026-08-26 + +Status: **evidence adapter completed**; visual obstacle/traversability quality, +full-source realtime, navigation and actuation remain disabled + +## Decision + +The TGS-only adapter now produces a complete, fail-closed metric evidence pack +for the ten RAVNOVES00 review anchors. It preserves the SLAM map gravity axis, +applies only a translation into the current local origin, never invokes AOS and +accounts for every point inside TRAVEL's declared `1–80 m` processing range. + +This closes the representation and accounting gate. It does not accept visual +quality. Several anchors still contain a high non-ground share, so the next +gate is a 3D/costmap review of the sealed output rather than threshold tuning or +camera boxes. + +## Frozen identity + +| Item | Identity | +| --- | --- | +| TRAVEL source | `95dc2fbd66a343efd9060c45a5711b6307a950a4` | +| Mission Core source | `941fb8961693c7e1e122921842d547d9fe9bb94f` | +| Deterministic Worker artifact | `f52ea1995e973872ef4050de03fcef1aafa58a278d16506b05b8378102fd5781` | +| TRAVEL image | `sha256:7b412020f4d8392d1d1ed1b33beadc44140f0ea8f781e62dd69796042334300f` | +| CPU preparation/analysis image | `sha256:ceb13548617e4bd3f619766bfdff00af3fa5160946b367828da6d2233dcdcba0` | +| RAVNOVES00 LiDAR pack | `0685d24219d8236caf8b7f1685e93f6d6b59e7fd015a768d88a92bbe8b154944` | +| Executable profile | [`config/perception/m49-tgs-fail-closed-evidence-v1.json`](../../config/perception/m49-tgs-fail-closed-evidence-v1.json) | + +The artifact used a new Worker release root and exact image IDs. The Worker +compiled a bounded TGS-only entrypoint against the pinned upstream headers; no +TRAVEL source file was changed. The entrypoint calls `TravelGroundSeg` and does +not construct or invoke `ObjectCluster`. + +## Representation + +Two source profiles were prepared for anchors `171`, `306`, `368`, `402`, +`450`, `509`, `525`, `744`, `1122` and `1856`: + +- `current_increment`: exact current registered map increment; +- `causal_rolling_1s`: current and preceding one second of positive map + support, bounded to `12 m`, with no future frame. + +For both profiles the current map position is subtracted, but the map axes are +not rotated into the handheld LiDAR orientation. This preserves the verified +SLAM gravity axis required by a terrain model. The previous sensor-frame probe +remains valid only for rejecting AOS's scan/ring assumptions; it is not used as +the TGS quality result. + +The evidence pack has four explicit cell states: + +| State | Meaning | +| --- | --- | +| `GROUND_SUPPORT` | positive TGS ground evidence | +| `NONGROUND_OCCUPIED` | every TGS non-ground point; no instance filter | +| `UNKNOWN_REJECTED` | exact in-range input complement not returned by TGS | +| `UNOBSERVED` | no positive evidence in the bounded local cell; never free by omission | + +The local review grid is `0.45 m` with a `12 m` radius. State priority is +non-ground, rejected, ground, then unobserved. This is evidence precedence, not +a robot-footprint collision policy. + +## Anchor result + +Primary profile: `causal_rolling_1s`. + +| Anchor | Ground points | Non-ground points | Rejected points | Ground cells | Non-ground cells | Unobserved cells | +| ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| `171` | `8,304` | `18,479` | `0` | `495` | `413` | `1,336` | +| `306` | `5,646` | `13,821` | `0` | `694` | `265` | `1,285` | +| `368` | `4,323` | `2,482` | `0` | `600` | `196` | `1,448` | +| `402` | `5,782` | `3,190` | `0` | `641` | `260` | `1,343` | +| `450` | `6,933` | `5,058` | `0` | `451` | `304` | `1,489` | +| `509` | `5,941` | `11,460` | `0` | `481` | `287` | `1,476` | +| `525` | `5,797` | `14,441` | `0` | `473` | `270` | `1,501` | +| `744` | `2,900` | `16,754` | `3` | `388` | `324` | `1,532` | +| `1122` | `2,422` | `3,403` | `0` | `599` | `228` | `1,417` | +| `1856` | `4,967` | `2,759` | `0` | `693` | `181` | `1,370` | + +All eligible points across both profiles and all twenty anchor/profile records +are represented as ground, non-ground or rejected. A rejected point can share +a cell with higher-priority non-ground evidence; therefore the point count may +be non-zero while the final rejected-cell count is zero. + +The gravity-aligned result is materially different from the diagnostic +sensor-frame run. At anchor `171`, rolling ground evidence increases from `626` +to `8,304` points. This confirms that TGS quality must not be judged in the +handheld sensor orientation. + +The result is still not visually accepted. Anchors `171`, `509`, `525` and +especially `744` retain large non-ground populations. The 3D review must decide +whether these are correct buildings/vegetation/curbs outside the passage, +terrain-model overclassification inside the passage, or both. + +## Timing and resources + +| Measurement | Current increment | Causal rolling 1 s | +| --- | ---: | ---: | +| TGS p50 | `0.275 ms` | `1.378 ms` | +| TGS maximum | `0.327 ms` | `3.807 ms` | + +- End-to-end Worker wrapper: `12.085689 s`, including source verification, + preparation, one C++ compile, twenty process starts, evidence packing and + analysis. +- Per-process wall p50: `20 ms`; p95: `40 ms`. +- Maximum process RSS: `9,292 KiB`. +- No GPU flag, CUDA/Vulkan context, image build or network access was used. +- Canonical Triton retained the same container ID and stayed + `running/healthy`. +- All exact candidate containers and the one-shot scheduled task were removed; + Worker free memory after cleanup was approximately `52.945 GiB`. +- Frigate, GAUSS/PlayCanvas and port `8000` were not modified. + +## Sealed evidence + +Worker root: + +`D:\NDC_MISSIONCORE\runtime\results\m49-tgs-fail-closed\gravity-anchors-001` + +| File | Bytes | SHA-256 | +| --- | ---: | --- | +| `evidence/result.json` | `9,137` | `0cfefcfa7e5e5ba015442446a830c7d0c0c93ac40b0b1e8888686590184c666a` | +| `evidence/evidence.npz` | `1,599,830` | `eaf1cd94cf7d3956e6bfebe4038ea18e6824fb6df5806e4c3b2d5b1c838f3b7b` | +| `worker-summary.json` | `975` | `ad8b2a23a46dd0c8039b07136fdb6e6cfe579fe6d4bbf3696ea2a16089174fbe` | +| `inputs/input-manifest.json` | `13,357` | `7a22e61606e1fa9ab61d47417f941b590a68b29e4529d4c290992ce7eb89a642` | +| `tgs-timing.tsv` | `638` | `a8f439996205286335ac392b37f51b54056d04e9cb07e03648c52c1e8f2f6ae8` | + +## Next gate + +Import the sealed `evidence.npz` into one laboratory review surface with: + +1. 3D points colored by the four evidence states; +2. top-down `0.45 m` costmap cells in the same local coordinate frame; +3. anchor selection and exact counts from `result.json`; +4. no AOS clusters, camera boxes, future frames or physical authority. + +The operator review must focus on the mandatory obstacle/gap cases and on the +large non-ground populations listed above. Camera projection follows only if +the metric evidence is accepted.