docs(perception): reject direct TRAVEL AOS compatibility
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user