docs(perception): accept integrated TGS graph load gate
This commit is contained in:
@@ -572,6 +572,16 @@ Exit:
|
|||||||
|
|
||||||
### M4.9 — recorded-realtime release candidate and cutover
|
### M4.9 — recorded-realtime release candidate and cutover
|
||||||
|
|
||||||
|
The first complete integrated source-paced load gate passed on `2026-08-27`:
|
||||||
|
the frozen RF-DETR world-state graph and unchanged CPU TGS candidate accounted
|
||||||
|
for all `4,489` frames at `11.860865 FPS`, with joined output p95/p99 of
|
||||||
|
`46.825886/63.94485 ms` and zero capacity drops. The immutable identities and
|
||||||
|
resource envelope are recorded in
|
||||||
|
[`experiments/perception/M49_TGS_INTEGRATED_GRAPH_ACCEPTANCE_2026-08-27.md`](../experiments/perception/M49_TGS_INTEGRATED_GRAPH_ACCEPTANCE_2026-08-27.md).
|
||||||
|
This closes only the one-loop integrated load gate. Visual traversability,
|
||||||
|
uncapped parity, repeated-loop soak, restart/recovery, navigation, actuation
|
||||||
|
and production remain open.
|
||||||
|
|
||||||
Execute on Worker 006 with the frozen RAVNOVES00 source:
|
Execute on Worker 006 with the frozen RAVNOVES00 source:
|
||||||
|
|
||||||
1. one full `1.0×` 448.723-second replay;
|
1. one full `1.0×` 448.723-second replay;
|
||||||
|
|||||||
@@ -344,6 +344,17 @@ This accepts the CPU source-paced shadow and retains the candidate. It does not
|
|||||||
accept visual traversability quality, integrated graph performance, navigation
|
accept visual traversability quality, integrated graph performance, navigation
|
||||||
or actuation.
|
or actuation.
|
||||||
|
|
||||||
|
The product-integration load gate then passed on `2026-08-27`. The unchanged
|
||||||
|
TGS candidate ran concurrently with the frozen RF-DETR world-state graph for
|
||||||
|
all `4,489` frames at a requested `12 Hz`: every graph frame was delivered,
|
||||||
|
every TGS frame was accounted and capacity drops remained zero. The joined
|
||||||
|
output sustained `11.860865 FPS`, measured `46.825886/63.94485 ms` at p95/p99,
|
||||||
|
and the CPU-only TGS stage measured `1.735/2.14019 ms` at p95/p99 with a
|
||||||
|
`22.6 MiB` memory maximum. See
|
||||||
|
[`experiments/perception/M49_TGS_INTEGRATED_GRAPH_ACCEPTANCE_2026-08-27.md`](../experiments/perception/M49_TGS_INTEGRATED_GRAPH_ACCEPTANCE_2026-08-27.md).
|
||||||
|
Integrated runtime capacity is accepted; visual traversability, physical free
|
||||||
|
space, navigation, actuation and production remain unaccepted.
|
||||||
|
|
||||||
### T4 — Candidate C occupancy/ESDF probe
|
### T4 — Candidate C occupancy/ESDF probe
|
||||||
|
|
||||||
- Run nvblox separately with RF-DETR disabled for the isolated probe.
|
- Run nvblox separately with RF-DETR disabled for the isolated probe.
|
||||||
@@ -361,15 +372,16 @@ or actuation.
|
|||||||
|
|
||||||
## Immediate next action
|
## Immediate next action
|
||||||
|
|
||||||
Review the published full gravity-aligned TGS timeline in camera, metric 3D and
|
Keep the accepted integrated graph frozen and review the published full
|
||||||
costmap space. Preserve
|
gravity-aligned TGS timeline in camera, metric 3D and costmap space. Preserve
|
||||||
`GROUND_SUPPORT`, `NONGROUND_OCCUPIED`, `UNKNOWN_REJECTED` and `UNOBSERVED` as
|
`GROUND_SUPPORT`, `NONGROUND_OCCUPIED`, `UNKNOWN_REJECTED` and `UNOBSERVED` as
|
||||||
separate products; do not use AOS or infer free cells from absent
|
separate products; do not use AOS or infer free cells from absent
|
||||||
republication. Attach the unchanged candidate to the realtime world-state graph
|
republication. Integrated FPS, latency, resources and queue behavior are now
|
||||||
in non-authoritative shadow mode and measure complete-graph FPS, latency,
|
accepted for the one-loop source-paced gate. If occupied evidence carpets the
|
||||||
resource use and queue drops. If occupied evidence carpets the route, soft
|
route, soft traversable vegetation or usable gaps, reject TGS without tuning it
|
||||||
traversable vegetation or usable gaps, reject TGS without tuning it against the
|
against the review evidence. Close and induce-test the Worker inference-runtime
|
||||||
review evidence. Candidate A T2 replay remains blocked by the failed unmodified
|
restart guard, then proceed to repeated-loop soak only if visual review also passes.
|
||||||
T1 gate. No LOW-STEP tuning, new object model, camera resize, fisheye
|
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
|
rectification, manual dataset or parallel heavy Worker job is authorized by
|
||||||
this decision.
|
this decision.
|
||||||
|
|||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# M4.9T5 integrated TGS + reference graph shadow — 2026-08-27
|
||||||
|
|
||||||
|
Status: **complete source-paced integrated shadow accepted**. Integrated
|
||||||
|
runtime capacity is accepted for the frozen RAVNOVES00 graph. Visual
|
||||||
|
traversability quality, physical free space, navigation, actuation and
|
||||||
|
production remain unaccepted.
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
The unchanged gravity-aligned TGS candidate and the frozen RF-DETR
|
||||||
|
world-state graph completed the same `4,489`-frame RAVNOVES00 timeline from a
|
||||||
|
shared `12 Hz` start barrier on Worker 006. Every graph frame was delivered,
|
||||||
|
every TGS frame was accounted, all queues remained bounded and no capacity
|
||||||
|
drop or supersession occurred.
|
||||||
|
|
||||||
|
The integrated graph sustained `11.860865 FPS`, compared with the frozen
|
||||||
|
reference result at `11.79902 FPS`. TGS added `1.735 ms` at p95 and used at
|
||||||
|
most `22.6 MiB` of container memory; it did not add a GPU model. The exact
|
||||||
|
per-frame join of graph and TGS outputs measured `46.825886 ms` at p95 and
|
||||||
|
`63.94485 ms` at p99. This accepts the runtime integration gate without
|
||||||
|
changing any navigation or safety authority.
|
||||||
|
|
||||||
|
## Frozen identity
|
||||||
|
|
||||||
|
| Item | Identity |
|
||||||
|
| --- | --- |
|
||||||
|
| Integrated result | `m49-tgs-integrated-graph-shadow-75e48fd8acf0246be16613e087fcf26fe909f7834718d217c74785a57f494b24` |
|
||||||
|
| Worker run | `Worker 006 / ravnoves00-integrated-12fps-003` |
|
||||||
|
| Mission Core revision used by Worker | `f153d671d316ea7b2200c0edcb80206d896ffcd5` |
|
||||||
|
| Deterministic Worker artifact | `1818ea57887db819e9d986713b050bd15eae1a43ee4af70c5b8b5d39f4cd8522` |
|
||||||
|
| Worker wheel | `b9414a1f2f1998543aeb63824d3cdfe55bbc6e4eecc3146d65962ebc7da86b8b` |
|
||||||
|
| TGS native binary | `2c3b4c7e6b66d19d2e32ee3ef867fa8c14073be29441bcd19fe565d9632c6538` |
|
||||||
|
| Integrated profile | `b61e018b2d04eec58802e2d4186ce7a3dd3a15b254db106b57b609e903eeef80` |
|
||||||
|
| Frozen graph config | `1db6f6fa0561d819505a5e4f62fe256dab6fe4d9da6b4f1a9a5073bfcf772c90` |
|
||||||
|
| Frozen TGS profile | `c2e07010aaee78259d36c057962d6bfb885349251ff7356d867e5813e632881c` |
|
||||||
|
| Linked accepted TGS result | `m49-tgs-full-shadow-ef98de7db7596d48e8c8c0549ce68e6704ee03e87c8c4bcf1e3e748b7ccb032e` |
|
||||||
|
|
||||||
|
The release was built from `git archive` of the declared revision. Uncommitted
|
||||||
|
GAUSS and PlayCanvas files were neither packaged nor changed by the run.
|
||||||
|
|
||||||
|
## Full-run result
|
||||||
|
|
||||||
|
| Measurement | Result |
|
||||||
|
| --- | ---: |
|
||||||
|
| Graph admitted / delivered | `4,489 / 4,489` |
|
||||||
|
| TGS timeline accounted | `4,489 / 4,489` |
|
||||||
|
| LiDAR available | `3,928` |
|
||||||
|
| Delivery ratio | `1.0` |
|
||||||
|
| Capacity drops / supersessions / failures | `0 / 0 / 0` |
|
||||||
|
| Effective world-state rate | `11.860865 FPS` |
|
||||||
|
| Frozen reference rate | `11.79902 FPS` |
|
||||||
|
| World-state completion p50 / p95 / p99 / max | `28.437492 / 46.696395 / 63.94485 / 170.202343 ms` |
|
||||||
|
| Joined graph+TGS output p50 / p95 / p99 / max | `28.57367 / 46.825886 / 63.94485 / 170.202343 ms` |
|
||||||
|
| TGS stage p50 / p95 / p99 / max | `1.186 / 1.735 / 2.14019 / 6.151 ms` |
|
||||||
|
| TGS completion p50 / p95 / p99 / max | `17.605461 / 31.771832 / 42.957350 / 70.851977 ms` |
|
||||||
|
| Queue high-water marks | `2` for every bounded stage |
|
||||||
|
| Worker wrapper wall time | `544.887447 s` |
|
||||||
|
|
||||||
|
All nineteen formal identity, accounting, throughput, latency, telemetry,
|
||||||
|
capacity and false-authority checks passed.
|
||||||
|
|
||||||
|
## Resource envelope
|
||||||
|
|
||||||
|
| Resource | Result |
|
||||||
|
| --- | ---: |
|
||||||
|
| GPU utilization mean / p95 / max | `43.114973 / 53 / 57 %` |
|
||||||
|
| GPU memory mean / p95 / max | `9,737.144 / 9,744 / 9,751 MiB` |
|
||||||
|
| GPU power p95 / max | `149.342 / 153.81 W` |
|
||||||
|
| TGS CPU mean / p95 / max | `3.474793 / 5.27 / 6.04 %` |
|
||||||
|
| TGS memory mean / p95 / max | `20.571818 / 21.84 / 22.6 MiB` |
|
||||||
|
| Graph container memory max | `1,769.472 MiB` |
|
||||||
|
| Triton container memory max | `582.9 MiB` |
|
||||||
|
|
||||||
|
The measured GPU envelope belongs to the already accepted reference graph.
|
||||||
|
TGS is a CPU-only stage and does not request CUDA, Vulkan or a second model.
|
||||||
|
|
||||||
|
## LAB publication boundary
|
||||||
|
|
||||||
|
No third visual viewer is created for this gate. The TGS cells, source points,
|
||||||
|
camera frames and semantic archive are byte-identical to the already published
|
||||||
|
`m49-tgs-full-shadow` LAB. This run proves concurrent runtime behavior, so its
|
||||||
|
new evidence is the immutable timing, queue and resource report above. Visual
|
||||||
|
quality review continues in the existing full-shadow LAB.
|
||||||
|
|
||||||
|
## Runtime recovery finding
|
||||||
|
|
||||||
|
Preflight found the canonical `ndc-mission-core-triton` container stopped after
|
||||||
|
the Docker runtime restarted. Docker reported exit code `255`, no OOM event and
|
||||||
|
Compose configured `restart: "no"`. The accepted run began only after the exact
|
||||||
|
same container was started and healthy; its container ID remained
|
||||||
|
`4232fb040062a8384809e73612baa92b343ddcb60f00c23e7091eb4909959223`
|
||||||
|
throughout the run.
|
||||||
|
|
||||||
|
This is a deployment-lifecycle defect, not a perception overload result. The
|
||||||
|
container must use a durable restart policy and an unhealthy-state watchdog;
|
||||||
|
changing the TGS or detector graph cannot fix it.
|
||||||
|
|
||||||
|
The live container was subsequently changed in place to
|
||||||
|
`restart: unless-stopped`. Docker confirmed the service remained `running` and
|
||||||
|
`healthy` with the same container ID, so applying the mitigation caused no
|
||||||
|
inference restart. This protects the current container from process and Docker
|
||||||
|
daemon restarts. The versioned Worker Compose source still declares
|
||||||
|
`restart: "no"`; closing that source-level drift and inducing a controlled
|
||||||
|
recovery remain a separate deployment gate.
|
||||||
|
|
||||||
|
## Sealed compact evidence
|
||||||
|
|
||||||
|
| File | SHA-256 |
|
||||||
|
| --- | --- |
|
||||||
|
| `result.json` | `bfc881aa943d46582a248b6024a413c3c4b3a6959fa4a674f6ec33d658fdcbdf` |
|
||||||
|
| `graph-result.json` | `784d27b908137843f6adf08d267576a74b0676f5f98226923399ae59f538b78a` |
|
||||||
|
| `tgs-result.json` | `c0245744892b66c7f24af3cd7ea9c8cd8d543114fffa70e32d8d5fef81054716` |
|
||||||
|
| `worker-summary.json` | `c449246d14fb927b6490bcf657950b354f101fd3eb4b296bc0f6dd8543aafe10` |
|
||||||
|
|
||||||
|
## Next gate
|
||||||
|
|
||||||
|
Keep this integrated graph frozen. Complete the independent visual
|
||||||
|
traversability review in the existing TGS LAB, concentrating on vegetation,
|
||||||
|
compact obstacles, false occupied carpets, usable gaps and missing-LiDAR
|
||||||
|
behavior. In parallel, close the Worker inference-runtime restart policy and
|
||||||
|
verify an induced stop/recovery without changing result identity. Only after
|
||||||
|
both gates pass may the candidate advance to repeated-loop soak and recovery
|
||||||
|
acceptance; navigation and actuation remain off.
|
||||||
Reference in New Issue
Block a user