diff --git a/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md b/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md index ee5896e..2ee31a1 100644 --- a/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md +++ b/docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md @@ -304,6 +304,13 @@ Candidate A receives no replay or runtime authority in this revision set. - Stop if Candidate A already passes and TRAVEL adds no measurable value that justifies GPL runtime implications. +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. + ### T4 — Candidate C occupancy/ESDF probe - Run nvblox separately with RF-DETR disabled for the isolated probe. @@ -321,7 +328,9 @@ Candidate A receives no replay or runtime authority in this revision set. ## Immediate next action -Run the isolated upstream qualification for Candidate B, TRAVEL. Candidate A -T2 replay is 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. +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. diff --git a/experiments/perception/M49_T3_TRAVEL_UPSTREAM_QUALIFICATION_2026-08-26.md b/experiments/perception/M49_T3_TRAVEL_UPSTREAM_QUALIFICATION_2026-08-26.md new file mode 100644 index 0000000..7859c78 --- /dev/null +++ b/experiments/perception/M49_T3_TRAVEL_UPSTREAM_QUALIFICATION_2026-08-26.md @@ -0,0 +1,99 @@ +# M4.9 T3 TRAVEL upstream qualification — 2026-08-26 + +Status: **upstream candidate qualified**; RAVNOVES00 quality, realtime, +navigation and actuation remain disabled + +## Decision + +The frozen TRAVEL revision builds and passes its official C++ regression path +on Worker 006. The run also passes the standalone example smoke and produces a +discoverable ROS 2 Jazzy `travel_node`. + +This accepts TRAVEL for the next recorded-replay compatibility gate. It does +not yet accept the RAVNOVES00 `lio_pcl` representation, Mission Core latency, +vegetation handling, obstacle quality, navigation or control. + +## Frozen identity + +| Item | Identity | +| --- | --- | +| TRAVEL source | `95dc2fbd66a343efd9060c45a5711b6307a950a4` | +| Mission Core qualification source | `67578f4ce16316dbaa562cba466ca9ab820fa380` | +| Deterministic Worker artifact | `01cb4954de748d2e23567734a5dc5043ebfa7d1596313c3ddba792fa94ac3cb7` | +| Worker image | `sha256:7b412020f4d8392d1d1ed1b33beadc44140f0ea8f781e62dd69796042334300f` | +| Image size | `1,030,088,960` bytes | +| KITTI fixture | `1,994,688` bytes; SHA-256 `bf272996d5b6d25cc5589e1089137cb20a98b63bd4823a7fea5631b359f6d68c` | +| Committed gold result | SHA-256 `8aaacaa57d17a8a2f043c3ea0a0c134d36a3c50da2385f2364ca4eff53ea9b9f` | + +The release artifact was built twice with identical SHA-256, copied into a new +Worker release directory and verified again before extraction. The run used +the exact upstream revision and did not modify its source. + +## Upstream result + +- `124,668` KITTI points loaded. +- Official C++ regression output was bit-identical to the committed gold dump. +- Ground segmentation produced `70,175` ground and `54,462` non-ground points. +- Above-ground clustering received `54,462` points, projected `47,311`, + labeled `45,792` and produced `185` canonical clusters in the regression + representation. +- The standalone example wrote non-empty ground, non-ground and labeled + outputs. +- ROS 2 Jazzy discovered `travel_ros travel_node` from the isolated merged + install. + +The example prints `The # of point clouds and # of labels are not same` +because the official smoke fixture intentionally contains a Velodyne frame but +no optional KITTI labels directory. The example returns success and writes all +three required outputs; the official upstream CI uses the same unlabeled smoke +shape. This diagnostic is recorded rather than hidden. + +## Timing and memory + +| Measurement | Observation | +| --- | ---: | +| Worker image build | `290.528115 s` | +| Worker qualification wrapper | `1.667882 s` | +| Sealed in-container qualification section | `617 ms` | +| C++ bit-regression wall time | `0.04 s` | +| C++ bit-regression maximum RSS | `39,504 KiB` | +| Reported TGS time | `11.168 ms` | +| Reported AOS range-map / clustering / post stages | `3 / 6 / 1 ms` | + +These numbers are promising but are not Mission Core realtime acceptance. They +cover one native KITTI scan and include neither RAVNOVES00 causal support +assembly nor pose transforms, camera arbitration, costmap publication or full +graph load. + +## Sealed evidence + +Worker output root: + +`D:\NDC_MISSIONCORE\runtime\results\m49-t3-travel\upstream-001` + +| File | Bytes | SHA-256 | +| --- | ---: | --- | +| `result.json` | `674` | `d3fb582b96f907c92156767bf0186fa565897f593bcfd89943ad6a639c0aed38` | +| `worker-summary.json` | `824` | `baedc1b292691be50c5ef70169df1ff43f99f0e122f527a557a599a906a90d28` | +| `qualification.log` | `3,557` | `7dc5b8ecb1cb8ad91fc08edbfcc6ab818e4524e271b0524bb02914cf5f96d933` | +| `resource.txt` | `893` | `dc5638295170cb1edd9c16e2c4ae9b53a89b22b014d27a847c127d6b9afa541c` | + +After capture, the candidate container and one-shot scheduled task were absent. +Canonical `ndc-mission-core-triton` remained `running/healthy`. The build and +qualification requested no CUDA, Vulkan or GPU lease; the concurrent Frigate +GPU allocation was not modified. + +## Compatibility gate before RAVNOVES00 replay + +TRAVEL's accepted KITTI profile assumes an organized spinning-LiDAR geometry +(`64` vertical scans, `4,500` horizontal bins and a fixed vertical angle +range). RAVNOVES00 supplies registered vendor-map increments rather than one +conventional complete raw scan per video frame. The next step must therefore +prove that a bounded causal body-frame representation preserves the angular +and temporal information TRAVEL requires. Missing returns may not be invented, +treated as free, or filled from future frames. + +TRAVEL remains GPL-3.0-or-later and is evaluation-only until a separate +distribution decision. Camera semantics remain primary for material meaning; +LiDAR/TRAVEL remains metric evidence and cannot independently declare tall +vegetation traversable.