refactor(control-station): separate lidar diagnostics from datasets

This commit is contained in:
DCCONSTRUCTIONS
2026-07-25 13:06:49 +03:00
parent f57d64bf52
commit c01712c30d
14 changed files with 939 additions and 341 deletions
+17 -3
View File
@@ -77,9 +77,11 @@ Polygon is now a parallel product branch. As of this document:
Simulation Worker agent in a fresh loopback-only namespace, a bounded
Unix-socket Mission Core gateway and an explicit `internal-virtual-only`
lifecycle gate;
- UI-2 exact generation `60e7916` exposes `Полигон` as a dedicated header root
only while Mission Core confirms an available Simulation Worker. The header
opens one direct workspace without a secondary launcher panel;
- UI-2 exact generation `60e7916` established `Полигон` as a dedicated header
root only while Mission Core confirms an available Simulation Worker. The
current product surface keeps that direct entry and exposes a bounded
two-item navigation: `Прогоны` and `Датасеты`; it has no launcher or link
directory;
- the browser-native Three.js scene renders a recognisable procedural Ackermann
Rover, ground grid and ENU trajectory. Orbit supports 360° azimuth, bounded
vertical inspection from overhead to horizon, zoom, pan, follow and camera
@@ -842,6 +844,18 @@ Center | Fleet | Observation | Missions | Data | Polygon* | System
Two UI gates are intentionally distinct.
The Polygon navigation is task-oriented:
- `Прогоны` owns live simulation lifecycle, history and qualification evidence;
- `Датасеты` owns admitted replay inputs and the entry point for a future
qualification run.
Dataset bytes and source artifacts remain in Data storage, but algorithm
evaluation does not live under `Данные`. Device-specific scanner diagnostics
remain under Fleet. A dataset preview is not a qualification result; the
result is a versioned run with pipeline, sensor profile, metrics, provenance
and decision.
### UI-0 — early read-only run view
Target S1B proves persisted start/health/stop history. UI-0 is implemented as a
+23 -2
View File
@@ -30,7 +30,9 @@ Implemented now:
- a fail-closed K1 `lio_pcl` boundary;
- worker storage admission for `D:\NDC_MISSIONCORE\datasets` and
`/mnt/d/NDC_MISSIONCORE/datasets`;
- a visible Dataset Gateway panel in **Данные → Качество LiDAR**.
- a dedicated, honest dataset catalog in **Полигон → Датасеты**;
- a separate **Парк → Диагностика LiDAR** surface containing only real sensor
recordings and their operational evidence.
Not implemented in S0:
@@ -40,6 +42,23 @@ Not implemented in S0:
- no model training or production promotion;
- no rolling-map implementation yet.
## Product surface boundary
The gateway is not part of device quality diagnostics.
- **Парк → Диагностика LiDAR** answers whether a selected real sensor recording
is present, reproducible and operationally usable. It never mixes public
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.
- **Полигон → Прогоны** owns the resulting algorithm comparison, metrics,
provenance and decision.
Before real dataset bytes exist, the catalog shows `Не загружен`, explains the
blocked storage gate and keeps `Открыть` / `Создать прогон` disabled. An
architecture contract must not look like an executable dataset tool.
## Why public recordings look different
GOOSE stores one VLS-128 revolution per annotated `.bin` file. A rotating
@@ -130,7 +149,9 @@ time; TTL/dynamic filtering prevents stale ghosts.
- [x] GOOSE XYZI and labels remain point aligned.
- [x] Invalid length and non-finite frames fail closed.
- [x] K1 mapped increments cannot claim raw-scan fields.
- [x] React exposes the architectural truth before dataset bytes exist.
- [x] React exposes an honest catalog/empty state before dataset bytes exist.
- [x] Dataset Gateway is isolated from real-sensor diagnostics and placed under
Polygon qualification.
- [ ] Worker D root configured.
- [ ] GOOSE validation archive hash recorded.
- [ ] First real labeled frame visible in React.
@@ -69,6 +69,12 @@ unavailable rather than inventing timestamps.
## Consequences
- The UI must label accumulated K1 evidence as a map product, not a scan.
- Real-sensor diagnostics live under Fleet and never mix public dataset frames
into device evidence.
- Dataset catalog, preview and qualification-run entry live under Polygon;
Data remains the source-of-record and artifact store.
- Until bytes are installed, the UI exposes an explicit empty state rather
than presenting this architecture contract as an interactive tool.
- Dataset and device inputs can share downstream algorithms only after their
normalized contracts match.
- Sensor adaptation may change range, FOV, point density, noise and dropout for