docs(perception): record Rerun projection acceptance
This commit is contained in:
parent
2b53168149
commit
ada2a55ee6
|
|
@ -113,9 +113,12 @@ returned a content-addressed `missioncore.compute-result/v1` containing 56
|
||||||
session-timestamped generic COCO detections. The worker never connects to K1 and
|
session-timestamped generic COCO detections. The worker never connects to K1 and
|
||||||
does not own the raw archive.
|
does not own the raw archive.
|
||||||
|
|
||||||
This is a recorded execution acceptance, not a navigation stack: Rerun result
|
Mission Core now validates and projects that optional result into the same saved
|
||||||
projection, large-epoch performance, direct worker transport and bounded live
|
Rerun recording. Open TEST007 and use **Распознавание** to see the recorded
|
||||||
fan-out remain open. See [ADR 0014](docs/adr/0014-bounded-external-perception-worker.md)
|
left-camera frames and boxes; **Облако точек** returns to 3D. This remains a
|
||||||
|
recorded camera-only acceptance, not a navigation stack: large-epoch
|
||||||
|
performance, direct worker transport and bounded live fan-out remain open. See
|
||||||
|
[ADR 0014](docs/adr/0014-bounded-external-perception-worker.md)
|
||||||
and the [external worker contract](docs/10_EXTERNAL_PERCEPTION_WORKER.md).
|
and the [external worker contract](docs/10_EXTERNAL_PERCEPTION_WORKER.md).
|
||||||
|
|
||||||
## Mission Core Control Station and visualization adapters
|
## Mission Core Control Station and visualization adapters
|
||||||
|
|
|
||||||
|
|
@ -318,12 +318,15 @@ Accepted recorded gate, 2026-07-19:
|
||||||
4090 and atomically publishes one content-addressed
|
4090 and atomically publishes one content-addressed
|
||||||
`missioncore.compute-result/v1`;
|
`missioncore.compute-result/v1`;
|
||||||
- repeating the exact result identity returns the existing result without
|
- repeating the exact result identity returns the existing result without
|
||||||
increasing Triton inference count.
|
increasing Triton inference count;
|
||||||
|
- Mission Core revalidates the returned generation, projects the exact camera
|
||||||
|
frames and boxes onto `session_time`, and exposes the optional native Rerun
|
||||||
|
view only after its complete RRF2 layer is accepted.
|
||||||
|
|
||||||
The accepted result is perception evidence only. Rerun projection, the larger
|
The accepted result is perception evidence only. The larger TEST007 epoch,
|
||||||
TEST007 epoch, direct/routed worker transport and bounded live fan-out remain
|
direct/routed worker transport and bounded live fan-out remain separate gates.
|
||||||
separate gates. SSH/SCP is allowed only as the recorded laboratory bootstrap.
|
SSH/SCP is allowed only as the recorded laboratory bootstrap. The worker never
|
||||||
The worker never connects to K1.
|
connects to K1.
|
||||||
|
|
||||||
See [ADR 0014](adr/0014-bounded-external-perception-worker.md), the
|
See [ADR 0014](adr/0014-bounded-external-perception-worker.md), the
|
||||||
[worker contract](10_EXTERNAL_PERCEPTION_WORKER.md) and
|
[worker contract](10_EXTERNAL_PERCEPTION_WORKER.md) and
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,11 @@ Status: implemented for native K1 point/pose evidence and host-side camera
|
||||||
archival. Valid K1 `ModelingReport` scan time, distance and speed are also
|
archival. Valid K1 `ModelingReport` scan time, distance and speed are also
|
||||||
materialized as recorded Rerun time series. Recorded spatial playback is exposed
|
materialized as recorded Rerun time series. Recorded spatial playback is exposed
|
||||||
in the Mission Core observation workspace. The camera archive/player contract
|
in the Mission Core observation workspace. The camera archive/player contract
|
||||||
is implemented and covered by tests, but all retained real K1 sessions predate
|
is implemented and covered by tests. TEST007 physically accepted shared-timeline
|
||||||
canonical camera archival. Physical shared-timeline playback of one selected
|
playback of the saved cameras and point cloud. It also carries the first optional
|
||||||
camera plus point cloud therefore remains an open acceptance gate; historical
|
external-perception result projected into the same Rerun recording; older
|
||||||
sessions contain no recoverable video.
|
sessions without canonical camera evidence or an admitted compute result remain
|
||||||
|
fully usable with only their available modalities.
|
||||||
|
|
||||||
## Operator path
|
## Operator path
|
||||||
|
|
||||||
|
|
@ -19,8 +20,8 @@ sessions contain no recoverable video.
|
||||||
3. Stop acquisition normally, or allow the local service to recover an
|
3. Stop acquisition normally, or allow the local service to recover an
|
||||||
unexpected interruption on its next start. Session recording is automatic;
|
unexpected interruption on its next start. Session recording is automatic;
|
||||||
the disk action is not required.
|
the disk action is not required.
|
||||||
4. Open **Сохранённые сессии** in the observation header. The menu shows the
|
4. Open **Сохранённые сессии** in the observation header. The menu shows up to
|
||||||
three most recent indexed runs, their date, duration, state, modalities and
|
100 indexed runs, their date, duration, state, modalities and
|
||||||
background preparation state.
|
background preparation state.
|
||||||
5. Choose a replayable run. Opening a replay never performs conversion in the
|
5. Choose a replayable run. Opening a replay never performs conversion in the
|
||||||
request. A ready recording opens immediately; otherwise the client receives
|
request. A ready recording opens immediately; otherwise the client receives
|
||||||
|
|
@ -35,7 +36,11 @@ sessions contain no recoverable video.
|
||||||
7. Use **Воспроизвести / Пауза**, the scrubber, **К началу** and **К концу** on
|
7. Use **Воспроизвести / Пауза**, the scrubber, **К началу** and **К концу** on
|
||||||
the right half of the bottom timeline. The left half changes point-cloud
|
the right half of the bottom timeline. The left half changes point-cloud
|
||||||
accumulation. The recorded timeline is zero-based `session_time`.
|
accumulation. The recorded timeline is zero-based `session_time`.
|
||||||
8. Use the first disk button to save the current workspace layout. The next
|
8. If a validated derived camera result exists, **Распознавание** appears in the
|
||||||
|
scene toolbar. It switches the active native Rerun view to camera frames and
|
||||||
|
boxes; **Облако точек** returns to the 3D view. No button is shown for an
|
||||||
|
absent or rejected result, and the base recording remains usable.
|
||||||
|
9. Use the first disk button to save the current workspace layout. The next
|
||||||
opening restores display settings and dynamic sensor-source window
|
opening restores display settings and dynamic sensor-source window
|
||||||
positions. The transient **Движок / Слои / Отображение** tool windows are
|
positions. The transient **Движок / Слои / Отображение** tool windows are
|
||||||
scoped to the mounted spatial workspace and are never persisted. This action
|
scoped to the mounted spatial workspace and are never persisted. This action
|
||||||
|
|
@ -137,11 +142,13 @@ checkout:
|
||||||
│ │ ├── mqtt.timeline.session-<sha256>.json # sealed generation
|
│ │ ├── mqtt.timeline.session-<sha256>.json # sealed generation
|
||||||
│ │ └── mqtt.summary.json # atomic active-envelope pointer
|
│ │ └── mqtt.summary.json # atomic active-envelope pointer
|
||||||
│ └── media/ # canonical camera archives
|
│ └── media/ # canonical camera archives
|
||||||
└── recordings/
|
├── recordings/
|
||||||
├── .export.lock # cross-process conversion/eviction lock
|
├── .export.lock # cross-process conversion/eviction lock
|
||||||
└── <opaque-session-id>/
|
└── <opaque-session-id>/
|
||||||
├── scene.rrd
|
├── scene.rrd
|
||||||
└── scene.rrd.cache.json
|
└── scene.rrd.cache.json
|
||||||
|
└── perception-overlays/
|
||||||
|
└── <opaque-session-id>/<result-id>/<recording-id>.rrd
|
||||||
```
|
```
|
||||||
|
|
||||||
`MISSIONCORE_DATA_DIR` relocates the catalog and derived cache. Unless it is
|
`MISSIONCORE_DATA_DIR` relocates the catalog and derived cache. Unless it is
|
||||||
|
|
@ -177,6 +184,9 @@ camera epoch there by preserving its valid segment prefix and writing an
|
||||||
|
|
||||||
Never add `.runtime/`, `sessions/`, raw captures, RRD files or camera media to
|
Never add `.runtime/`, `sessions/`, raw captures, RRD files or camera media to
|
||||||
Git. They can contain mapped interiors, trajectories and identifiable images.
|
Git. They can contain mapped interiors, trajectories and identifiable images.
|
||||||
|
The recorded perception importer reads repo-local ignored
|
||||||
|
`.runtime/compute-jobs` and `.runtime/compute-results`; those derived handoff
|
||||||
|
artifacts are likewise private and never become browser paths or Git inputs.
|
||||||
|
|
||||||
## Session source of record
|
## Session source of record
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ K1
|
||||||
-> bounded missioncore.compute-job/v1
|
-> bounded missioncore.compute-job/v1
|
||||||
-> replaceable GPU worker / Triton
|
-> replaceable GPU worker / Triton
|
||||||
-> content-addressed missioncore.compute-result/v1
|
-> content-addressed missioncore.compute-result/v1
|
||||||
-> future optional Rerun derived layer
|
-> optional validated Rerun derived layer
|
||||||
```
|
```
|
||||||
|
|
||||||
The GPU worker cannot discover, provision, start or stop a K1. It receives an
|
The GPU worker cannot discover, provision, start or stop a K1. It receives an
|
||||||
|
|
@ -61,6 +61,29 @@ The result manifest binds the detection artifact's length and SHA-256. A repeat
|
||||||
with the same identity validates the existing directory and returns it without
|
with the same identity validates the existing directory and returns it without
|
||||||
calling Triton.
|
calling Triton.
|
||||||
|
|
||||||
|
## Recorded Rerun projection
|
||||||
|
|
||||||
|
Mission Core discovers only results whose validated job names the opened
|
||||||
|
session. Before projection it revalidates the complete job/result binding,
|
||||||
|
artifact digests, ordered timestamps and result metrics. It then reconstructs
|
||||||
|
the exact fMP4 epoch, verifies decoded dimensions/frame count with `ffprobe`,
|
||||||
|
decodes exactly the admitted number of RGB frames and rejects boxes outside the
|
||||||
|
image.
|
||||||
|
|
||||||
|
The optional `perception.rrd` endpoint returns either HTTP 204 or one complete,
|
||||||
|
bounded RRF2 stream for the opened Rerun recording ID. The browser never splits
|
||||||
|
that stream and never replaces the base recording when the optional layer is
|
||||||
|
absent or rejected. Accepted frames are logged under `/perception/camera` on
|
||||||
|
the canonical zero-based `session_time` timeline; `Image` and `Boxes2D` rows
|
||||||
|
therefore seek with the point-cloud archive. Generated overlays are a private,
|
||||||
|
content-addressed cache and remain rebuildable from the immutable job/result.
|
||||||
|
|
||||||
|
In **Наблюдение → Пространственная сцена**, a **Распознавание** button appears
|
||||||
|
only after the layer has been admitted. It switches the active native Rerun view
|
||||||
|
between the camera/detections and the point cloud. TEST007's accepted fragment
|
||||||
|
occupies approximately `01:07.351–01:12.848`; Rerun's latest-at query retains
|
||||||
|
the last admitted frame after that short fragment.
|
||||||
|
|
||||||
## Accepted model profile
|
## Accepted model profile
|
||||||
|
|
||||||
- YOLOX-S official ONNX from upstream release `0.1.1rc0`;
|
- YOLOX-S official ONNX from upstream release `0.1.1rc0`;
|
||||||
|
|
@ -76,10 +99,9 @@ accepted for obstacle avoidance, free-space estimation or safety decisions.
|
||||||
|
|
||||||
## Open gates
|
## Open gates
|
||||||
|
|
||||||
1. Import the accepted result as an optional session-timestamped Rerun layer.
|
1. Qualify TEST007's 206-second epoch and record throughput/resource telemetry.
|
||||||
2. Qualify TEST007's 206-second epoch and record throughput/resource telemetry.
|
2. Replace SSH/SCP with a reviewed authenticated worker transport.
|
||||||
3. Replace SSH/SCP with a reviewed authenticated worker transport.
|
3. Add bounded live queues, sampling/drop policy and acquisition-isolation
|
||||||
4. Add bounded live queues, sampling/drop policy and acquisition-isolation
|
|
||||||
tests.
|
tests.
|
||||||
5. Introduce tracking, segmentation/free-space, calibration and point-cloud
|
4. Introduce tracking, segmentation/free-space, calibration and point-cloud
|
||||||
models as separate versioned pipelines.
|
models as separate versioned pipelines.
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,9 @@ stale results?
|
||||||
9. SSH/SCP is permitted for the recorded lab bootstrap only. Direct Triton or a
|
9. SSH/SCP is permitted for the recorded lab bootstrap only. Direct Triton or a
|
||||||
later routed transport must receive its own address, authentication, bounded
|
later routed transport must receive its own address, authentication, bounded
|
||||||
queue and failure-policy review before live use.
|
queue and failure-policy review before live use.
|
||||||
|
10. Mission Core may project an exact validated result into the matching saved
|
||||||
|
recording as an optional camera/boxes Rerun layer. The base recording stays
|
||||||
|
authoritative and usable when the layer is absent or rejected.
|
||||||
|
|
||||||
## Accepted evidence
|
## Accepted evidence
|
||||||
|
|
||||||
|
|
@ -69,5 +72,5 @@ quality acceptance for navigation.
|
||||||
- Storage temporarily duplicates the bounded encoded stream and preprocessed
|
- Storage temporarily duplicates the bounded encoded stream and preprocessed
|
||||||
frames on the worker; retention remains unimplemented.
|
frames on the worker; retention remains unimplemented.
|
||||||
- Host-arrival camera timing does not become sensor calibration.
|
- Host-arrival camera timing does not become sensor calibration.
|
||||||
- The next accepted vertical must project this result into the saved Rerun
|
- The recorded Rerun projection is accepted; large-epoch qualification and a
|
||||||
timeline before live fan-out is introduced.
|
bounded authenticated live fan-out remain separate gates.
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,22 @@ of the existing result.
|
||||||
## Interpretation
|
## Interpretation
|
||||||
|
|
||||||
This accepts the external recorded compute boundary, not detector quality or a
|
This accepts the external recorded compute boundary, not detector quality or a
|
||||||
vehicle decision loop. The result has not yet been projected into Rerun. SSH/SCP
|
vehicle decision loop. SSH/SCP is retained only as laboratory bootstrap evidence
|
||||||
is retained only as laboratory bootstrap evidence and is not the product data
|
and is not the product data plane.
|
||||||
plane.
|
|
||||||
|
## Rerun projection acceptance
|
||||||
|
|
||||||
|
Mission Core subsequently revalidated the exact job/result generation,
|
||||||
|
reconstructed and decoded the 56-frame camera epoch, and serialized one complete
|
||||||
|
RRF2 overlay (approximately 62.55 MB) for the active TEST007 recording ID. A
|
||||||
|
second render of the same recording/result identity reused the private cache.
|
||||||
|
The HTTP endpoint returned the exact declared length, RRF2 magic and
|
||||||
|
`application/vnd.rerun.rrd` without exposing storage paths.
|
||||||
|
|
||||||
|
The Control Station accepted the overlay on an isolated Rerun channel. The
|
||||||
|
operator-facing **Распознавание** switch appeared only after acceptance and
|
||||||
|
selected the native `/perception/camera` Rerun view. Browser QA at the shared
|
||||||
|
session timeline displayed the recorded left-camera image with a green
|
||||||
|
`person · 34%` box; **Облако точек** returned to the spatial view. The tested
|
||||||
|
result is camera-only: no point-cloud model, image/point fusion, tracking,
|
||||||
|
free-space estimate or live inference was executed.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue