fix(polygon): separate dataset sources from runs

This commit is contained in:
DCCONSTRUCTIONS
2026-07-25 18:40:56 +03:00
parent 2e5c4ba1c5
commit e97573e221
13 changed files with 1036 additions and 658 deletions
+25 -15
View File
@@ -847,10 +847,11 @@ show an explicit offline state.
The Polygon navigation is task-oriented:
- `Прогоны` owns recorded replay/simulation history and operator review of
qualification evidence;
- `Датасеты` owns admitted replay inputs and the entry point for a future
qualification run.
- `Прогоны` owns selectable recorded simulation/dataset-replay/shadow history,
aggregate outcomes, provenance and decisions;
- `Датасеты` owns admitted replay inputs, their real source structure and
operator inspection of source scans. A selected run may be overlaid on the
source, but the source does not move into the run archive.
Dataset bytes and source artifacts remain in Data storage, but algorithm
evaluation does not live under `Данные`. Device-specific scanner diagnostics
@@ -864,21 +865,30 @@ They require a separate live surface that appears only when the Simulation
Worker capability is available. The current `Прогоны` implementation is
read-only and remains fully usable while that worker is offline.
### UI-0 — early read-only run view
### UI-0 — read-only run history and dataset inspection
Target S1B proves persisted start/health/stop history. The first direct
developer-oriented view exposed lifecycle, events, provider pins and artifact
hashes on the main screen. Operator review rejected that composition. The
current UI-0 makes the recorded evidence primary:
hashes on the main screen. Operator review rejected that composition and then
rejected treating the GOOSE validation split as a single recording. The
current UI-0 follows two separate operator tasks:
- full source-order frame index instead of five selected examples;
- Play/pause, previous/next and arbitrary scrub;
- direct ground-truth, Current, Patchwork++ and error-map modes;
- current-frame metrics and a clickable all-frame improvement/regression strip;
- automatic best/worst ordering without preventing arbitrary manual selection;
- aggregate comparison after, rather than before, visual evidence;
- acceptance/degradation and run identity/provider/artifact details collapsed
below the operator workflow.
- `Прогоны` always shows a run selector, even when the archive currently has
only one item. The selected run exposes its kind (`simulation`,
`dataset-replay` or `shadow`), input identity, aggregate result and collapsed
technical evidence.
- `Датасеты → Открыть источник` shows the admitted source. GOOSE validation is
explicitly grouped into eight independent sequences; Play is bounded to one
sequence and described as accelerated review of sparse annotated scans.
- The dataset viewer exposes source frame number, nanosecond timestamp gaps,
ground truth and optional Current/Patchwork++ overlays from a selected run.
- The fixed sensor-centric coordinate frame and operator camera are preserved
within a sequence. Missing scans, ego trajectory and cross-sequence motion
are never synthesized.
The accepted `3.3 GB` annotated validation ZIP is not a continuous recording.
Continuous ego-motion requires a separately admitted raw ROS bag and
localization source.
The backend reads the configured repository from
`MISSIONCORE_POLYGON_RUNS_ROOT` using
+36 -5
View File
@@ -65,9 +65,12 @@ The gateway is not part of device quality diagnostics.
dataset frames into the selected device evidence.
- **Наблюдение** opens a concrete live or recorded spatial scene.
- **Данные** owns source-of-record, retention, replay preparation and export.
- **Полигон → Датасеты** lists admitted evaluation inputs.
- **Полигон → Датасеты** lists admitted evaluation inputs and owns source
inspection: source sequences, sparse annotated scans and optional overlays
from a selected qualification run.
- **Полигон → Прогоны** owns the resulting algorithm comparison, metrics,
provenance and decision.
provenance and decision. It does not present the dataset itself as a
simulation or continuous vehicle recording.
Before real dataset bytes exist, the catalog explains the blocked storage gate
and keeps `Открыть` / `Создать прогон` disabled. `Открыть` becomes available
@@ -341,9 +344,37 @@ qualification report:
- deterministic `12,000`-point frame previews with remission, public
point-aligned ground truth, Current and Patchwork++ masks;
- compact size `67 MB`, versus multiple gigabytes for equivalent JSON;
- `Play`, frame scrubber, a clickable all-frame delta strip, best/worst
ordering and direct modes for geometry, ground truth, both providers and
both error maps.
- direct modes for geometry, ground truth, both providers and both error maps.
The subsequent product review found a second semantic error: the `961` frames
were presented as one playable recording. They are actually `8` independent
GOOSE validation sequences:
- `2022-07-22_flight``151` annotated scans;
- `2022-08-30_siegertsbrunn_feldwege``103`;
- `2022-09-21_garching_uebungsplatz_2``123`;
- `2022-12-07_aying_hills``133`;
- `2023-01-20_aying_mangfall_2``191`;
- `2023-03-03_garching_2``106`;
- `2023-05-15_neubiberg_rain``73`;
- `2023-05-17_neubiberg_sunny``81`.
Each admitted `.bin` is one annotated VLS-128 revolution. Within those eight
sequences the validation scans are sparse: observed adjacent timestamps range
from about `0.1 s` to `167.5 s`. The annotated ZIP contains neither a
continuous playback stream nor a pose chain that could support visually
continuous ego-motion. Mission Core therefore:
- never plays across a sequence boundary;
- labels Play as an accelerated scan review, not real-time playback;
- exposes the exact source frame number and timestamp gap;
- keeps a fixed sensor-centric origin and preserves the operator camera within
one sequence instead of refitting every frame;
- does not interpolate missing scans or invent a route.
Continuous vehicle motion, odometry and synchronized sensor playback require
the separately admitted raw GOOSE ROS bags plus localization. Those assets are
not part of the current `3.3 GB` annotated validation archive.
The source archive and full-resolution crash-resume cache remain only on worker
D. A bounded review mirror may be served by a Mission Core backend, but SSH is