docs(perception): define traversability evaluation sequence
This commit is contained in:
@@ -189,6 +189,13 @@ sealed Current/Patchwork++ comparison rejected Patchwork++ for navigation:
|
|||||||
despite much lower latency and a small Ground-IoU gain, obstacle non-ground
|
despite much lower latency and a small Ground-IoU gain, obstacle non-ground
|
||||||
recall regressed from `80.46%` to `69.70%`.
|
recall regressed from `80.46%` to `69.70%`.
|
||||||
|
|
||||||
|
Operator review of the later M4.8R3 LOW-STEP replay rejected its connected-
|
||||||
|
component camera boxes as the product representation for general static
|
||||||
|
obstacles. The replacement evaluation is terrain-relative and sequential:
|
||||||
|
GSeg3D plus Nav2 Ground Consistency first, TRAVEL as the class-free challenger,
|
||||||
|
and nvblox only as a separately measured occupancy/ESDF candidate. See the
|
||||||
|
[traversability and static-obstacle stack decision](docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md).
|
||||||
|
|
||||||
See [the Dataset Gateway plan](docs/14_LIDAR_DATASET_GATEWAY.md),
|
See [the Dataset Gateway plan](docs/14_LIDAR_DATASET_GATEWAY.md),
|
||||||
[the laboratory run canon](docs/15_LABORATORY_RUN_CANON.md) and
|
[the laboratory run canon](docs/15_LABORATORY_RUN_CANON.md) and
|
||||||
[ADR 0021](docs/adr/0021-dataset-gateway-representation-boundary.md).
|
[ADR 0021](docs/adr/0021-dataset-gateway-representation-boundary.md).
|
||||||
|
|||||||
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"schema_version": "missioncore.traversability-candidate-manifest/v1",
|
||||||
|
"decision_document": "docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md",
|
||||||
|
"frozen_utc": "2026-08-26T13:53:55Z",
|
||||||
|
"source_contract": {
|
||||||
|
"source_id": "RAVNOVES00",
|
||||||
|
"expected_timeline_frames": 4489,
|
||||||
|
"input_representation": "registered-vendor-map-increment-plus-causal-local-support/v1",
|
||||||
|
"future_frames_allowed": false,
|
||||||
|
"missing_support_means_free": false
|
||||||
|
},
|
||||||
|
"candidates": [
|
||||||
|
{
|
||||||
|
"sequence": 1,
|
||||||
|
"candidate_id": "gseg3d-ground-consistency",
|
||||||
|
"role": "primary",
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"repository": "https://github.com/dfki-ric/ground_segmentation_ros2.git",
|
||||||
|
"revision": "5c5ba6f5ca0d682db2d59b2ad2f6a317ee938b95",
|
||||||
|
"observed_ref": "refs/heads/master",
|
||||||
|
"license": "BSD-3-Clause"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "https://github.com/dfki-ric/nav2_ground_consistency_costmap_plugin.git",
|
||||||
|
"revision": "41cec620efba6c370dccfc59a6ec1134775ff48a",
|
||||||
|
"observed_ref": "refs/heads/main",
|
||||||
|
"license": "BSD-3-Clause"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sequence": 2,
|
||||||
|
"candidate_id": "travel",
|
||||||
|
"role": "class-free-challenger",
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"repository": "https://github.com/url-kaist/TRAVEL.git",
|
||||||
|
"revision": "95dc2fbd66a343efd9060c45a5711b6307a950a4",
|
||||||
|
"observed_ref": "refs/heads/main",
|
||||||
|
"license": "GPL-3.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sequence": 3,
|
||||||
|
"candidate_id": "isaac-ros-nvblox",
|
||||||
|
"role": "separate-gpu-occupancy-esdf-probe",
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"repository": "https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.git",
|
||||||
|
"revision": "ef47346399c71a4342c03bdbec2136ec735da4b8",
|
||||||
|
"observed_ref": "refs/tags/v4.6-0",
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"execution_policy": {
|
||||||
|
"heavy_candidates_run_sequentially": true,
|
||||||
|
"allow_parallel_gauss_compute": false,
|
||||||
|
"allow_source_mutation": false,
|
||||||
|
"allow_navigation_or_actuation": false,
|
||||||
|
"allow_camera_resize_or_rectification": false,
|
||||||
|
"allow_new_semantic_model": false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1539,6 +1539,11 @@ production navigation cutover. The result remains replay-simulated;
|
|||||||
physical-live authority, commands, actuation, planner-authoritative free space
|
physical-live authority, commands, actuation, planner-authoritative free space
|
||||||
and collision-safety acceptance are false. The next milestone boundary is
|
and collision-safety acceptance are false. The next milestone boundary is
|
||||||
M4.9 recorded-realtime release-candidate validation using this frozen graph.
|
M4.9 recorded-realtime release-candidate validation using this frozen graph.
|
||||||
|
Subsequent operator visual review rejected the LOW-STEP connected-component
|
||||||
|
camera boxes as a general static-obstacle product path. That decision does not
|
||||||
|
alter the immutable M4.8R3 runtime evidence; it redirects the next perception
|
||||||
|
evaluation to the terrain-relative sequence in
|
||||||
|
[`docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md`](23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md).
|
||||||
|
|
||||||
## Implementation order
|
## Implementation order
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,278 @@
|
|||||||
|
# Traversability and class-free static-obstacle stack decision
|
||||||
|
|
||||||
|
Date: 2026-08-26
|
||||||
|
Status: accepted for sequential recorded-replay evaluation; not accepted for
|
||||||
|
navigation or actuation
|
||||||
|
|
||||||
|
## Decision summary
|
||||||
|
|
||||||
|
Mission Core stops treating the M4.8R3 `LOW-STEP` connected-component and
|
||||||
|
camera-box projection as the product path for general static-obstacle
|
||||||
|
perception. M4.8R3 remains immutable evidence that a bounded occupied-only
|
||||||
|
heuristic can execute in the realtime envelope. Operator review of the complete
|
||||||
|
visual result rejected its obstacle quality and representation:
|
||||||
|
|
||||||
|
- isolated vegetation, curb edges and sparse returns become false obstacles;
|
||||||
|
- bins, carts, thin posts, railings and hemispheres are inconsistently lost;
|
||||||
|
- spatially unrelated points merge into large rectangular camera regions;
|
||||||
|
- one-frame components flicker without ground/obstacle evidence competition;
|
||||||
|
- 2D rectangles erase the free passage between separate 3D obstacles.
|
||||||
|
|
||||||
|
This is an abstraction failure, not a threshold-tuning failure. A navigation
|
||||||
|
system requires a terrain-relative occupancy and traversability product, not a
|
||||||
|
detector that attempts to name every static object and not a bounding box as
|
||||||
|
the safety primitive.
|
||||||
|
|
||||||
|
The sequential evaluation order is:
|
||||||
|
|
||||||
|
1. **GSeg3D + Nav2 Ground Consistency + Nav2 Costmap** — primary candidate.
|
||||||
|
2. **TRAVEL + the same costmap boundary** — class-free challenger if the
|
||||||
|
primary candidate misses compact or thin obstacles or merges passages.
|
||||||
|
3. **Isaac ROS nvblox** — separate GPU occupancy/ESDF candidate after the CPU
|
||||||
|
terrain contour is measured; it is not stacked into the first test.
|
||||||
|
|
||||||
|
RF-DETR remains the semantic risk provider for people, children, animals,
|
||||||
|
cars, trucks, motorcycles and bicycles. It does not decide the presence or
|
||||||
|
shape of an unknown static obstacle. Native `800x600` fisheye input remains
|
||||||
|
unchanged.
|
||||||
|
|
||||||
|
## Required product representation
|
||||||
|
|
||||||
|
```text
|
||||||
|
LiDAR + pose + optional IMU
|
||||||
|
|
|
||||||
|
v
|
||||||
|
terrain-relative ground / non-ground evidence
|
||||||
|
|
|
||||||
|
v
|
||||||
|
temporally stable local occupancy and UNKNOWN support state
|
||||||
|
|
|
||||||
|
v
|
||||||
|
robot-footprint collision cost + traversability
|
||||||
|
|
|
||||||
|
+----> planner / collision monitor (future authority gate)
|
||||||
|
|
|
||||||
|
+----> camera projection (diagnostic visualization only)
|
||||||
|
|
||||||
|
camera RF-DETR ----> dynamic semantic risk hints ----------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The canonical safety output is a costmap/elevation/occupancy product. Camera
|
||||||
|
boxes may be derived for operator review, but a box must never be the source of
|
||||||
|
occupied cells, clearance, passage width or a control action.
|
||||||
|
|
||||||
|
## Candidate A — GSeg3D and Ground Consistency
|
||||||
|
|
||||||
|
### GSeg3D
|
||||||
|
|
||||||
|
[DFKI GSeg3D ROS 2](https://github.com/dfki-ric/ground_segmentation_ros2)
|
||||||
|
is a BSD-3-Clause ROS 2 component for CPU realtime processing of 3D LiDAR. It
|
||||||
|
publishes separate ground and obstacle point clouds and provides:
|
||||||
|
|
||||||
|
- optional IMU gravity alignment;
|
||||||
|
- two-phase coarse/fine ground segmentation;
|
||||||
|
- configurable slope, local height and inlier thresholds;
|
||||||
|
- ROS 2 Humble and Jazzy support;
|
||||||
|
- no task-specific dataset or neural-network inference.
|
||||||
|
|
||||||
|
Mission Core evaluates it as the first replacement for the current local
|
||||||
|
height connected-component heuristic.
|
||||||
|
|
||||||
|
### Nav2 Ground Consistency
|
||||||
|
|
||||||
|
[DFKI Ground Consistency](https://github.com/dfki-ric/nav2_ground_consistency_costmap_plugin)
|
||||||
|
is a BSD-3-Clause Nav2 costmap layer and is included in the current
|
||||||
|
[Nav2 outdoor 3D-LiDAR tutorial](https://ros-navigation.github.io/mkdocs.nav2.org/rolling/tutorials/general_tutorials/navigation2_with_ground_consistency_layer/navigation2_with_ground_consistency_layer/).
|
||||||
|
It consumes ground and non-ground point clouds and supplies the missing product
|
||||||
|
semantics:
|
||||||
|
|
||||||
|
- ground and obstacle evidence compete per costmap cell;
|
||||||
|
- evidence accumulates and decays instead of trusting one point in one frame;
|
||||||
|
- obstacle height is evaluated relative to local ground;
|
||||||
|
- robot height and minimum clearance are explicit configuration inputs;
|
||||||
|
- sparse cells can use bounded neighboring-ground interpolation;
|
||||||
|
- a cell without reliable support can fail closed instead of becoming free.
|
||||||
|
|
||||||
|
The first test keeps all free-space and actuation authority false. The layer is
|
||||||
|
evaluated only as a recorded-replay occupancy provider.
|
||||||
|
|
||||||
|
### Nav2 boundary
|
||||||
|
|
||||||
|
[Nav2 Costmap 2D](https://docs.nav2.org/configuration/packages/configuring-costmaps.html)
|
||||||
|
provides footprint-aware obstacle, voxel and inflation layers. A later physical
|
||||||
|
gate may add the independent
|
||||||
|
[Nav2 Collision Monitor](https://docs.nav2.org/rolling/configuration_and_development/configuration_guide/core_servers/collision_monitor/configuring_collision_monitor_node/),
|
||||||
|
but recorded replay does not publish commands.
|
||||||
|
|
||||||
|
## Candidate B — TRAVEL
|
||||||
|
|
||||||
|
[TRAVEL](https://github.com/url-kaist/TRAVEL) performs class-free traversable
|
||||||
|
ground detection and above-ground instance clustering. Its ROS 2 wrapper is
|
||||||
|
verified by the project on Humble and Jazzy. The published evaluation reports
|
||||||
|
roughly `20-30 Hz` and explicitly targets safe navigation in unseen urban and
|
||||||
|
wild environments without assigning names such as pole, vehicle or wall.
|
||||||
|
|
||||||
|
TRAVEL is valuable when individual compact obstacles and the gaps between them
|
||||||
|
must remain spatially distinct. Its GPL-3.0 license prevents silent admission
|
||||||
|
into a proprietary product runtime. It is initially a benchmark/challenger;
|
||||||
|
distribution consequences require a separate decision.
|
||||||
|
|
||||||
|
Primary reference:
|
||||||
|
[TRAVEL paper](https://arxiv.org/abs/2206.03190).
|
||||||
|
|
||||||
|
## Candidate C — Isaac ROS nvblox
|
||||||
|
|
||||||
|
[Isaac ROS nvblox](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nvblox/index.html)
|
||||||
|
uses GPU-accelerated TSDF/ESDF reconstruction from depth and/or 3D LiDAR and
|
||||||
|
publishes a Nav2 costmap. Current NVIDIA documentation supports ROS 2 Jazzy on
|
||||||
|
x86_64 with an Ampere-or-newer NVIDIA GPU and at least 8 GiB VRAM; Worker 006's
|
||||||
|
RTX 4090 is inside that hardware class.
|
||||||
|
|
||||||
|
Nvblox is evaluated separately because it answers dense occupied-space and
|
||||||
|
clearance questions well, but it is not by itself a complete terrain-relative
|
||||||
|
traversability classifier. Its official kernel timings are not an end-to-end
|
||||||
|
Mission Core FPS guarantee.
|
||||||
|
|
||||||
|
## Candidates not admitted to the first sequence
|
||||||
|
|
||||||
|
| Candidate | Reason not first |
|
||||||
|
| --- | --- |
|
||||||
|
| Autoware Universe | Mature road-vehicle perception and occupancy, but a large automotive/lane-driving stack for this rover-sized contour. |
|
||||||
|
| Offroad-Nav 2026 | Relevant complete pipeline, but currently ROS 1 Noetic; ROS 2 port is in development and the real-robot branch is not published. |
|
||||||
|
| `elevation_mapping_cupy` | Strong GPU elevation-map implementation, but the maintained integration remains ROS 1/catkin. It is retained as an algorithmic reference. |
|
||||||
|
| CMU AEDE/FAR/TARE | Proven research navigation components, but not the shortest supported ROS 2 product baseline for this test. |
|
||||||
|
| Additional image segmentation model | Consumes GPU and still cannot establish metric support, clearance or unknown space. |
|
||||||
|
|
||||||
|
## Source representation boundary
|
||||||
|
|
||||||
|
`RAVNOVES00` does not contain a conventional complete raw LiDAR scan per video
|
||||||
|
frame. Its `lio_pcl` stream is a registered vendor-map increment in the SLAM
|
||||||
|
map frame. Missing republication is not free-space evidence.
|
||||||
|
|
||||||
|
Therefore every candidate run must preserve three distinct products:
|
||||||
|
|
||||||
|
1. exact current registered increment;
|
||||||
|
2. bounded causal rolling support/occupancy in the map frame;
|
||||||
|
3. candidate ground/non-ground/costmap output with source lineage.
|
||||||
|
|
||||||
|
For Candidate A, the evaluation adapter may present a bounded causal local
|
||||||
|
cloud in the current body frame. It may not use future frames, clear cells from
|
||||||
|
missing points, or relabel unobserved space as free. Dynamic-object semantics
|
||||||
|
remain outside this static replay adapter.
|
||||||
|
|
||||||
|
## Operator-reviewed regression set
|
||||||
|
|
||||||
|
The following RAVNOVES00 source frames are mandatory review anchors. They are
|
||||||
|
operator-reviewed engineering cases, not independent statistical ground truth.
|
||||||
|
|
||||||
|
| Frame | Required observation |
|
||||||
|
| ---: | --- |
|
||||||
|
| 171 | The grass/curb region must not become a large blocking object; the visible bin must remain obstacle evidence when supported by LiDAR. |
|
||||||
|
| 306 | The cart and right hemisphere must not be lost while curb corners become dominant. |
|
||||||
|
| 368 | The hemisphere extent must stay compact; the right railing must remain obstacle evidence. |
|
||||||
|
| 402 | The near hemisphere must not inflate into a camera-sized rectangular exclusion zone. |
|
||||||
|
| 450 | Curb/ramp terrain must be evaluated relative to local ground instead of becoming arbitrary boxes. |
|
||||||
|
| 509 | Isolated vegetation or sparse returns must not immediately become a stable blocking object. |
|
||||||
|
| 525 | Sparse local returns must not merge into one large occupied camera rectangle. |
|
||||||
|
| 744 | The grass/curb strip must not be promoted into a wall. |
|
||||||
|
| 1122 | The compact hemisphere and both thin posts must be represented when LiDAR support is present. |
|
||||||
|
| 1856 | Two posts remain separate, two hemispheres remain separate, and the passages between them remain explicit. |
|
||||||
|
|
||||||
|
## Acceptance contract
|
||||||
|
|
||||||
|
### Quality
|
||||||
|
|
||||||
|
- Static obstacle output is class-free and geometry-backed.
|
||||||
|
- All supported critical anchors above are occupied or conservatively unknown,
|
||||||
|
never false-free.
|
||||||
|
- Vegetation, curb edges and isolated returns do not create large persistent
|
||||||
|
lethal regions without sustained non-ground evidence.
|
||||||
|
- Separate posts and hemispheres remain separate at the costmap resolution.
|
||||||
|
- A camera rectangle cannot merge two distinct occupied regions or erase their
|
||||||
|
gap.
|
||||||
|
- Unobserved support, drop-offs and no-return regions remain `UNKNOWN/LETHAL`
|
||||||
|
until positive support is observed.
|
||||||
|
- No manual object-class annotation or detector training is permitted for this
|
||||||
|
gate.
|
||||||
|
|
||||||
|
### Realtime and resource envelope
|
||||||
|
|
||||||
|
- Process all `4,489` timeline frames with zero unaccounted loss.
|
||||||
|
- Isolated candidate output keeps up with at least the recorded `10 Hz` source
|
||||||
|
cadence.
|
||||||
|
- Integrated graph FPS regression is at most `5%` relative to the immutable
|
||||||
|
M4.8R3 `11.79902 FPS` reference.
|
||||||
|
- Candidate-stage p95 latency is at most `25 ms` and p99 at most `50 ms` in the
|
||||||
|
recorded replay contour.
|
||||||
|
- The primary CPU candidate does not add another neural model or consume the
|
||||||
|
RF-DETR GPU budget.
|
||||||
|
- CPU, RAM, GPU, VRAM, queue depth, supersession and output age are recorded;
|
||||||
|
no result is accepted only because it looks good in selected frames.
|
||||||
|
|
||||||
|
### Authority
|
||||||
|
|
||||||
|
Passing this document's tests accepts a recorded-replay perception provider.
|
||||||
|
It does not accept physical free space, navigation, commands, actuation,
|
||||||
|
collision safety or a robot body model.
|
||||||
|
|
||||||
|
## Sequential execution plan
|
||||||
|
|
||||||
|
### T0 — Worker and source preflight
|
||||||
|
|
||||||
|
- Inventory Worker 006 OS/WSL, ROS 2, Docker, compiler, CPU/RAM and RTX 4090.
|
||||||
|
- Confirm the immutable RAVNOVES00 source and accepted M4.8R3 result locally on
|
||||||
|
the worker without copying private source evidence back to the Mac.
|
||||||
|
- Record a content-addressed candidate manifest and exact upstream revisions.
|
||||||
|
|
||||||
|
The first T0 snapshot is recorded in
|
||||||
|
[`experiments/perception/M49_T0_TRAVERSABILITY_PREFLIGHT_2026-08-26.md`](../experiments/perception/M49_T0_TRAVERSABILITY_PREFLIGHT_2026-08-26.md).
|
||||||
|
Exact upstream revisions are frozen in
|
||||||
|
[`config/perception/m49-traversability-candidate-manifest-v1.json`](../config/perception/m49-traversability-candidate-manifest-v1.json).
|
||||||
|
T0 found the source and the accepted raw M4.8R3 run intact, but did not start a
|
||||||
|
build: the parallel GAUSS contour was active and free Worker memory had fallen
|
||||||
|
to approximately `669 MiB`. That is a resource-admission stop, not a candidate
|
||||||
|
failure.
|
||||||
|
|
||||||
|
### T1 — Candidate A isolated qualification
|
||||||
|
|
||||||
|
- Build GSeg3D and Ground Consistency in a new isolated `ndc-` worker contour.
|
||||||
|
- Run upstream sample/demo data first to prove the unmodified components.
|
||||||
|
- Measure component latency and memory before adding Mission Core adapters.
|
||||||
|
|
||||||
|
### T2 — Candidate A RAVNOVES00 replay
|
||||||
|
|
||||||
|
- Feed the bounded causal local cloud with exact pose lineage.
|
||||||
|
- Produce ground, non-ground, occupancy and unknown layers for all frames.
|
||||||
|
- Review the ten mandatory anchors and compute full-run stability/resource
|
||||||
|
metrics.
|
||||||
|
- Do not draw system camera boxes until the costmap result is sealed.
|
||||||
|
|
||||||
|
### T3 — Candidate B challenger
|
||||||
|
|
||||||
|
- Run TRAVEL against the identical source representation and anchors.
|
||||||
|
- Compare compact-obstacle recall, passage preservation, temporal stability and
|
||||||
|
CPU cost against Candidate A.
|
||||||
|
- Stop if Candidate A already passes and TRAVEL adds no measurable value that
|
||||||
|
justifies GPL runtime implications.
|
||||||
|
|
||||||
|
### T4 — Candidate C occupancy/ESDF probe
|
||||||
|
|
||||||
|
- Run nvblox separately with RF-DETR disabled for the isolated probe.
|
||||||
|
- Measure GPU/VRAM and 3D occupied-space quality.
|
||||||
|
- Admit it only if it supplies a measured capability missing from the accepted
|
||||||
|
CPU terrain contour inside the one-RTX-4090 production ceiling.
|
||||||
|
|
||||||
|
### T5 — Product integration gate
|
||||||
|
|
||||||
|
- Select one terrain provider and at most one justified occupancy complement.
|
||||||
|
- Re-enable the frozen RF-DETR semantic-risk provider.
|
||||||
|
- Repeat complete recorded-source-paced load acceptance.
|
||||||
|
- Publish a LAB only after the costmap/elevation outputs and limitations are
|
||||||
|
sealed.
|
||||||
|
|
||||||
|
## Immediate next action
|
||||||
|
|
||||||
|
Resume T1 for Candidate A only after the Worker resource gate in the T0 report
|
||||||
|
passes. 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,95 @@
|
|||||||
|
# M4.9 T0 traversability candidate preflight — 2026-08-26
|
||||||
|
|
||||||
|
Status: source and revision preflight complete; Candidate A build not started
|
||||||
|
because the Worker resource-admission gate was closed
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
T0 verifies that the first terrain-relative candidate can be evaluated against
|
||||||
|
the immutable Mission Core source without colliding with another heavy Worker
|
||||||
|
job. It does not qualify obstacle quality, realtime performance, navigation or
|
||||||
|
actuation.
|
||||||
|
|
||||||
|
The governing decision is
|
||||||
|
[`docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md`](../../docs/23_TRAVERSABILITY_AND_STATIC_OBSTACLE_STACK_DECISION.md).
|
||||||
|
The exact upstream revisions are frozen in
|
||||||
|
[`config/perception/m49-traversability-candidate-manifest-v1.json`](../../config/perception/m49-traversability-candidate-manifest-v1.json).
|
||||||
|
|
||||||
|
## Read-only Worker snapshot
|
||||||
|
|
||||||
|
Observed at `2026-08-26T13:53:55Z` on Worker 006
|
||||||
|
(`DESKTOP-OPJ8J04`):
|
||||||
|
|
||||||
|
| Item | Observation |
|
||||||
|
| --- | --- |
|
||||||
|
| OS | Windows 11 Pro, version `10.0.26200`, build `26200` |
|
||||||
|
| CPU | Intel Core i9-13900KF, 24 cores / 32 logical processors |
|
||||||
|
| Physical memory | `100,502,708 KiB` visible; `685,344 KiB` free at the final snapshot |
|
||||||
|
| GPU | NVIDIA GeForce RTX 4090, driver `610.47`, `24,564 MiB` total VRAM |
|
||||||
|
| GPU snapshot | `9,131 MiB` used, `47%` utilization, `44 C` |
|
||||||
|
| WSL | `docker-desktop` running; Ubuntu 24.04, MissionCore-Sim and MissionCore-CVAT stopped |
|
||||||
|
| Mission Core inference | Canonical `ndc-mission-core-triton` remained healthy |
|
||||||
|
| Parallel work | GAUSS gateway and builder containers were healthy and active |
|
||||||
|
|
||||||
|
No container, WSL distribution, service or source file was started, stopped,
|
||||||
|
rebuilt or modified during this inspection.
|
||||||
|
|
||||||
|
## Source and baseline evidence
|
||||||
|
|
||||||
|
The canonical RAVNOVES00 camera index, LiDAR pack, local-surface pack and native
|
||||||
|
fisheye video are present on the Worker at their existing content-addressed
|
||||||
|
paths. The accepted raw M4.8R3 full run is present at:
|
||||||
|
|
||||||
|
`D:\NDC_MISSIONCORE\runtime\results\m48r3-static-occupancy-shadow\ravnoves00-full-exact6-near8-12fps-v1`
|
||||||
|
|
||||||
|
Its `result.json` SHA-256 is
|
||||||
|
`0fe50546801d1284eb7af7ffcee0fbfc98985094c678256007b10eade0e54488`.
|
||||||
|
The raw result reports:
|
||||||
|
|
||||||
|
- source `RAVNOVES00`, `4,489` frames at requested `12 Hz`;
|
||||||
|
- integrated runtime gate passed;
|
||||||
|
- graph completion p95 `56.74324 ms`;
|
||||||
|
- geometry p95/p99 `8.420913/13.732692 ms`;
|
||||||
|
- GPU utilization p95/maximum `54%/58%`;
|
||||||
|
- maximum GPU memory `9,743 MiB`.
|
||||||
|
|
||||||
|
The separately sealed Mission Core product identity remains
|
||||||
|
`m48r3-static-occupancy-shadow-d1577870b098bcd0b67cc51798234f224b348ad3954ead72f3ce6df414875a29`.
|
||||||
|
This T0 check does not reopen or alter that evidence.
|
||||||
|
|
||||||
|
## Frozen candidates
|
||||||
|
|
||||||
|
| Order | Candidate | Exact revision | Admission role |
|
||||||
|
| ---: | --- | --- | --- |
|
||||||
|
| 1 | DFKI GSeg3D | `5c5ba6f5ca0d682db2d59b2ad2f6a317ee938b95` | Primary terrain-relative ground/non-ground provider |
|
||||||
|
| 1 | DFKI Nav2 Ground Consistency | `41cec620efba6c370dccfc59a6ec1134775ff48a` | Primary temporal costmap evidence layer |
|
||||||
|
| 2 | TRAVEL | `95dc2fbd66a343efd9060c45a5711b6307a950a4` | Class-free challenger |
|
||||||
|
| 3 | Isaac ROS nvblox `v4.6-0` | `ef47346399c71a4342c03bdbec2136ec735da4b8` | Separate GPU occupancy/ESDF probe |
|
||||||
|
|
||||||
|
These SHAs were resolved directly from the official upstream repositories. A
|
||||||
|
moving branch name is not an executable test identity.
|
||||||
|
|
||||||
|
## Resource-admission result
|
||||||
|
|
||||||
|
**T1 was intentionally not started.** Free physical memory fell from roughly
|
||||||
|
`3.3 GiB` during the first inventory to `669 MiB` at the final snapshot while
|
||||||
|
the parallel GAUSS contour was active. Starting a ROS 2 image build or another
|
||||||
|
replay in that state would make the measurement invalid and could destabilize
|
||||||
|
unrelated work.
|
||||||
|
|
||||||
|
Candidate A may start only when all of the following are true:
|
||||||
|
|
||||||
|
1. no unrelated heavy Worker build or replay is active;
|
||||||
|
2. free physical memory is at least `16 GiB` before the build;
|
||||||
|
3. GPU utilization is at most `10%` before an integrated replay, unless the
|
||||||
|
active GPU process is an explicitly admitted part of that replay;
|
||||||
|
4. canonical Mission Core Triton is healthy and is not stopped or replaced;
|
||||||
|
5. the candidate uses a new `ndc-` isolated build/runtime contour.
|
||||||
|
|
||||||
|
## Next command boundary
|
||||||
|
|
||||||
|
The next authorized action is T1 Candidate A upstream qualification: build the
|
||||||
|
pinned GSeg3D and Ground Consistency revisions in an isolated ROS 2 contour,
|
||||||
|
run their upstream sample path, and record build identity, latency and memory.
|
||||||
|
RAVNOVES00 replay begins only after that unmodified upstream qualification
|
||||||
|
passes.
|
||||||
Reference in New Issue
Block a user