diff --git a/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md b/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md index 2ee31a1..ada580f 100644 --- a/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md +++ b/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md @@ -308,8 +308,17 @@ The upstream T3 qualification passed on `2026-08-26`: exact-source KITTI regression was bit-identical to the committed gold result, the standalone example produced all outputs and the ROS 2 Jazzy node was discoverable. See [`experiments/perception/M49_T3_TRAVEL_UPSTREAM_QUALIFICATION_2026-08-26.md`](../experiments/perception/M49_T3_TRAVEL_UPSTREAM_QUALIFICATION_2026-08-26.md). -RAVNOVES00 replay remains gated on scan-model compatibility and the GPL runtime -boundary. + +The direct RAVNOVES00 compatibility gate then rejected the combined TGS+AOS +profile. TGS ground/non-ground membership was invariant under point-order +reversal, but AOS failed all `20/20` order comparisons with labeled-point +Jaccard as low as `0.469`; its `64 × 4,500`, `-24.8°…+2.0°` KITTI scan model is +not the K1 registered-map-increment contract. The complete evidence is in +[`experiments/perception/M49_T3_TRAVEL_RAVNOVES_COMPATIBILITY_2026-08-26.md`](../experiments/perception/M49_T3_TRAVEL_RAVNOVES_COMPATIBILITY_2026-08-26.md). +Direct AOS admission is closed. TGS alone remains eligible for a bounded +ground/non-ground adapter that retains the exact unreturned complement as +unknown evidence. GPL runtime, visual quality and full-source realtime remain +open gates. ### T4 — Candidate C occupancy/ESDF probe @@ -328,9 +337,11 @@ boundary. ## Immediate next action -Verify TRAVEL's spinning-scan assumptions against the bounded causal -RAVNOVES00 `lio_pcl` representation, then build the recorded-replay adapter if -the required information exists. 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. +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. diff --git a/experiments/perception/M49_T3_TRAVEL_RAVNOVES_COMPATIBILITY_2026-08-26.md b/experiments/perception/M49_T3_TRAVEL_RAVNOVES_COMPATIBILITY_2026-08-26.md new file mode 100644 index 0000000..f328d3a --- /dev/null +++ b/experiments/perception/M49_T3_TRAVEL_RAVNOVES_COMPATIBILITY_2026-08-26.md @@ -0,0 +1,148 @@ +# M4.9 T3 TRAVEL compatibility on RAVNOVES00 — 2026-08-26 + +Status: **direct TRAVEL TGS+AOS profile rejected**; TGS retained for a bounded +ground/non-ground adapter probe; visual quality, realtime integration, +navigation and actuation remain disabled + +## Decision + +The unmodified TRAVEL KITTI profile cannot consume the RAVNOVES00 `lio_pcl` +representation as a complete ground-and-instance provider. Ground segmentation +is deterministic and fast on the tested inputs, but the above-ground object +segmentation changes materially when the exact same points are presented in +reverse order. The fixed KITTI vertical-angle profile also does not describe +the K1 registered-map increments. + +Mission Core therefore rejects direct admission of TRAVEL AOS. It retains the +unmodified TGS stage for the next bounded adapter test because its ground and +non-ground partitions were bit-set invariant across all order comparisons. The +adapter must preserve TGS-rejected points as explicit unknown evidence rather +than silently dropping them. No AOS cluster, camera box, free cell or command +receives authority from this run. + +## Frozen identity + +| Item | Identity | +| --- | --- | +| TRAVEL source | `95dc2fbd66a343efd9060c45a5711b6307a950a4` | +| Mission Core probe source | `28d52972370097d3f3e376e17c9fdb388b0e7ebf` | +| Deterministic Worker artifact | `c726018a62f602ff1f51432fbdf4bba67aa969735f9798a55472b079eff8a0fb` | +| TRAVEL image | `sha256:7b412020f4d8392d1d1ed1b33beadc44140f0ea8f781e62dd69796042334300f` | +| CPU preparation/analysis image | `sha256:ceb13548617e4bd3f619766bfdff00af3fa5160946b367828da6d2233dcdcba0` | +| RAVNOVES00 LiDAR pack | `0685d24219d8236caf8b7f1685e93f6d6b59e7fd015a768d88a92bbe8b154944` | +| Compatibility profile | [`config/perception/m49-travel-ravnoves-compatibility-v1.json`](../../config/perception/m49-travel-ravnoves-compatibility-v1.json) | + +The release artifact was built from a clean committed revision, copied into a +new Worker release root and verified before extraction. The run used the two +already-qualified images by exact image ID. It performed no image build, +network access, CUDA/Vulkan request or GPU lease. + +## Input contract + +The probe used the ten operator-reviewed anchors `171`, `306`, `368`, `402`, +`450`, `509`, `525`, `744`, `1122` and `1856` with two causal representations: + +1. `current_increment`: the exact registered map increment transformed into + the current LiDAR frame; +2. `causal_rolling_1s`: current and past increments from the preceding one + second, bounded to the accepted `12 m` local-map radius and transformed into + the current LiDAR frame. + +No future frame was used. Missing republication was not interpreted as free +space. The source pack has no retained intensity, ring/channel, per-point time +or native ray model; intensity was zero-filled only to satisfy the XYZI input +ABI. + +Each representation was run in source order and exact reverse order. This +produced `10 × 2 × 2 = 40` isolated CPU invocations. + +## Result + +### TGS ground/non-ground stage + +| Measurement | Current increment | Causal rolling 1 s | +| --- | ---: | ---: | +| Eligible points over ten source-order anchors | `20,468` | `144,872` | +| Ground + non-ground points returned | `20,337` | `144,871` | +| Unreturned eligible points | `131` | `1` | +| Anchors with complete accounting | `7/10` | `9/10` | +| Ground multiset order Jaccard, minimum | `1.000` | `1.000` | +| Non-ground multiset order Jaccard, minimum | `1.000` | `1.000` | +| TGS stage p50 | `0.269 ms` | `1.775 ms` | +| TGS stage p95 | `0.329 ms` | `4.379 ms` | +| TGS stage maximum | `0.583 ms` | `4.807 ms` | + +TGS classification is order-invariant on all twenty source/reverse +comparisons. The missing points are not random process loss. TRAVEL internally +routes below-plane or filtered points into its outlier cloud, while the public +example and ROS wrapper publish only `ground`, `nonground` and AOS `labeled`. +Frame `171` accounts for `129` of the `131` missing current-increment points; +they lie approximately `2.59–5.09 m` from the sensor. A safety adapter must +retain the exact input complement as `UNKNOWN_REJECTED`, never as free. + +### AOS above-ground object stage + +| Measurement | Result | +| --- | ---: | +| Accepted source/reverse comparisons | `0/20` | +| Labeled-point multiset Jaccard, minimum | `0.469` | +| Labeled-point multiset Jaccard, median | `0.663` | +| Labeled-point multiset Jaccard, maximum | `0.963` | +| Current-increment non-ground points retained as labeled, median | `20.6%` | +| Causal-rolling non-ground points retained as labeled, median | `38.4%` | + +This is a representation incompatibility, not a threshold-quality judgment. +AOS projects points into a `64 × 4,500` spherical range matrix and keeps the +first point that reaches an occupied angular bin. A registered-map increment +does not carry an upstream ring order, so reversing an otherwise identical +array changes which points survive projection and changes cluster membership. + +The pinned KITTI profile declares a vertical range of `-24.8°…+2.0°`. Only +`26.7%` of current-increment non-ground points and `34.4%` of causal-rolling +non-ground points lie inside that declared range. The pinned implementation's +row lookup also has no valid end-of-range branch for an angle above the maximum. +Changing the angle table and inventing a pseudo-ring layout would create a new +K1-specific algorithm profile; it is not accepted as the ready upstream system +tested here. + +### Wrapper and resource envelope + +- Forty isolated invocations completed in `6.654335 s`, including container + startup, input preparation and analysis. +- Per-invocation wall p50 was `50 ms`; p95 was `70.5 ms`. These include + process startup and are not the candidate-stage realtime measurement. +- Maximum measured process RSS was `18,140 KiB`. +- Canonical `ndc-mission-core-triton` retained the same container ID and stayed + `running/healthy`. +- The one-shot scheduled task and all three exact candidate container names + were removed. Worker free memory after cleanup was approximately `52.82 GiB`. +- Frigate, GAUSS/PlayCanvas, the GPU allocation and the canonical port `8000` + were not modified. + +## Sealed evidence + +Worker root: + +`D:\NDC_MISSIONCORE\runtime\results\m49-t3-travel-ravnoves\ravnoves-compat-001` + +| File | Bytes | SHA-256 | +| --- | ---: | --- | +| `result.json` | `26,810` | `ff0b27f469cccad258c53ae07cb04ad00e696d82b32021c4f1f38ba7fa39d66a` | +| `worker-summary.json` | `1,007` | `007eb400f6a12c950e81a631dc1c7824bc10c0024327fb9965f5689d3b4c6a22` | +| `inputs/input-manifest.json` | `22,967` | `1239f2517c5dfcb46827cfd8f370e642a70eac3a83e39d6b769564321e2ff930` | +| `travel-timing.tsv` | `1,606` | `959b82372dbb197525071f030a4be1d6f3ff848e32b62b4b47b4f2bf2fa9d3d7` | + +## Next gate + +Build a TGS-only recorded adapter with four explicit outputs: + +1. positive `GROUND_SUPPORT` from TGS ground; +2. `NONGROUND_OCCUPIED` from every TGS non-ground point, without AOS; +3. `UNKNOWN_REJECTED` from the exact eligible-input complement; +4. `UNOBSERVED` for cells with no positive support, never free by omission. + +The first review remains the ten anchors in a 3D occupancy/costmap view. Camera +projection is diagnostic only and follows after the metric output is sealed. +The adapter is admitted only if compact obstacles and the passages between them +remain explicit without large vegetation/curb walls. GPL distribution and +full-source realtime remain separate gates.