docs: make K1 realtime map the primary lidar source

This commit is contained in:
DCCONSTRUCTIONS 2026-07-25 22:20:13 +03:00
parent d8b7ed4526
commit cfe17e49bb
8 changed files with 222 additions and 52 deletions

View File

@ -131,6 +131,14 @@ K1 `lio_pcl` remains a post-LIO vendor-map increment and is not promoted to a
raw scan. Large dataset bytes are admitted only on the Windows/WSL worker under raw scan. Large dataset bytes are admitted only on the Windows/WSL worker under
`D:\NDC_MISSIONCORE\datasets`; no archive is downloaded automatically. `D:\NDC_MISSIONCORE\datasets`; no archive is downloaded automatically.
That representation boundary does not reject K1 as the production starting
sensor. The passively received real-time `lio_pcl` plus `lio_pose` stream is
the primary K1 input for two separate derivatives: a short-TTL local world
model and a persistent territory reconstruction. `RAVNOVES00` is the immutable
private replay dataset for this work. No K1 firmware change, onboard exporter
or new device command is part of the LiDAR roadmap, and the historical
`1.27 m` handheld-height experiment is not a runtime constant.
The complete RELLIS-3D v1.1 release is now admitted there and its full The complete RELLIS-3D v1.1 release is now admitted there and its full
`2,413`-frame validation split is available in **Полигон → Датасеты**. The `2,413`-frame validation split is available in **Полигон → Датасеты**. The
sealed Current/Patchwork++ comparison rejected Patchwork++ for navigation: sealed Current/Patchwork++ comparison rejected Patchwork++ for navigation:

View File

@ -61,6 +61,22 @@ The physical Lab 002 capture now provides stronger evidence than the prior
official-material inference: a compressed left/right preview leaves the device. official-material inference: a compressed left/right preview leaves the device.
It still does not prove a full-resolution raw panorama stream. It still does not prove a full-resolution raw panorama stream.
### Architecture clarification · 2026-07-25
The processed nature of `lio_pcl` does not make the stream non-real-time or
unsuitable as the current K1 perception source. Mission Core received the
point/pose reports while the rig moved; K1 had already performed onboard
LIO/modeling before publication. The accepted roadmap therefore keeps K1 as the
physical starting sensor and produces separate short-TTL perception and
persistent-reconstruction derivatives from the immutable report stream.
Current LiDAR work is passive. Static firmware evidence may explain fields and
processing order, but does not authorize a firmware change, onboard exporter,
internal-topic invocation or new application command. The handheld `1.27 m`
estimate is retained only in its historical diagnostic result; operational
surface height is time-varying and must be estimated from pose-relative
geometry when the selected platform profile requires ground.
### Still unsupported until measured ### Still unsupported until measured
- Local `map.las` layout resembles the network stream. - Local `map.las` layout resembles the network stream.

View File

@ -6,6 +6,9 @@ The LiDAR-native extension is governed by
successfully is not evidence that its LiDAR assumptions are satisfied. In successfully is not evidence that its LiDAR assumptions are satisfied. In
particular, the accepted E10 replay pack v1 has no intensity, and the current K1 particular, the accepted E10 replay pack v1 has no intensity, and the current K1
stream is a vendor map increment rather than an unregistered sensor sweep. stream is a vendor map increment rather than an unregistered sensor sweep.
It is nevertheless the primary passively received real-time K1 source. The
worker must adapt to its declared representation rather than require another
physical scanner or mutate the K1 acquisition path.
`missioncore.lidar-replay-pack/v2` closes the field-retention gap without `missioncore.lidar-replay-pack/v2` closes the field-retention gap without
rewriting v1. Its manifest binds exact raw/metadata evidence, logical point/pose rewriting v1. Its manifest binds exact raw/metadata evidence, logical point/pose
@ -21,8 +24,10 @@ host latency and algorithm disagreement. The first official Patchwork++ v1.4.1
run is diagnostic-only: current K1 evidence is a vendor-map increment, not the run is diagnostic-only: current K1 evidence is a vendor-map increment, not the
sensor-centric scan and physical-height contract Patchwork++ expects. The sensor-centric scan and physical-height contract Patchwork++ expects. The
read-only `/api/v1/lidar/ground-benchmarks` surface therefore publishes read-only `/api/v1/lidar/ground-benchmarks` surface therefore publishes
`production_promotion=false` until an independent annotation generation or an `production_promotion=false`. GOOSE and full RELLIS qualification have since
admitted raw scan closes the input gate. validated the benchmark harness and rejected universal Patchwork++ promotion;
they do not change the K1 representation. Acquiring a raw K1 scan is not part
of the current roadmap.
The companion read-only The companion read-only
`/api/v1/lidar/ground-benchmarks/{benchmark_id}/frames/{frame_index}` endpoint `/api/v1/lidar/ground-benchmarks/{benchmark_id}/frames/{frame_index}` endpoint
@ -44,27 +49,29 @@ instead of synthesizing a value.
Static K1 3.0.2 firmware evidence confirms that the appliance internally uses Static K1 3.0.2 firmware evidence confirms that the appliance internally uses
a Livox MID-360 point/IMU path with richer timestamp/ring semantics and a a Livox MID-360 point/IMU path with richer timestamp/ring semantics and a
configured MQTT point-cloud downsample factor of four. This creates a concrete configured MQTT point-cloud downsample factor of four. This explains the
next integration target—an admitted onboard export or bag contract—but does representation boundary but does not authorize an onboard export, firmware
not change the authority or input acceptance of existing `lio_pcl` recordings. change, internal-topic invocation or new K1 command. The worker consumes only
The 1.27 m operator-height profile is likewise explicit and reproducible, but admitted report streams or immutable recordings made from them. The `1.27 m`
remains `operator-estimated` rather than runtime-calibrated. operator-height profile remains a reproducible historical diagnostic and must
never become a runtime ground constant.
## Boundary ## Boundary
```text ```text
K1 K1
-> XGRIDS device plugin / Mission Core Edge -> XGRIDS device plugin / Mission Core Edge
-> authoritative raw session on Mac -> authoritative lossless report-stream session on Mac
-> 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
-> optional validated 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. LiDAR perception
observation package and returns derived observations. The Mac archive is never experiments are subscribe/replay-only and invoke no K1 application command. The
rewritten when a job is prepared or a result is received. worker receives an observation package and returns derived observations. The
Mac archive is never rewritten when a job is prepared or a result is received.
## Recorded camera job v1 ## Recorded camera job v1

View File

@ -4,8 +4,10 @@ Status date: 2026-07-20.
LiDAR-native work after E26 follows LiDAR-native work after E26 follows
`docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md`: lossless replay and scanner `docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md`: lossless replay and scanner
quality first, then ground segmentation and a PointPillars baseline. Alternative quality first, then a map-native K1 local world model over the passively
odometry/SLAM is not admitted for the current vendor-mapped K1 stream. received real-time stream. PointPillars and alternative odometry/SLAM are
deferred because their raw-scan assumptions are not admitted for the current
vendor-mapped K1 stream.
## Outcome ## Outcome

View File

@ -1,6 +1,6 @@
# Mission Core Polygon: product definition and system requirements # Mission Core Polygon: product definition and system requirements
Status: canonical working SRS, 2026-07-24. Status: canonical working SRS, 2026-07-25.
Ops source of truth: Ops source of truth:
@ -52,6 +52,19 @@ The repository's proven vertical remains K1 observation, durable archive,
recorded perception and diagnostic motion evidence through LAB E26. It has not recorded perception and diagnostic motion evidence through LAB E26. It has not
accepted navigation behavior, safety behavior or real actuator control. accepted navigation behavior, safety behavior or real actuator control.
The physical K1 boundary is passive for current perception work:
- `lio_pcl` plus `lio_pose` is the primary real-time scanner source and is
recorded without rewriting received payloads;
- `RAVNOVES00` is an immutable private experimental dataset derived from that
real-time session;
- a short-TTL local world model and a persistent territory reconstruction are
separate derivatives of the same source;
- no K1 firmware modification, onboard exporter, internal-topic invocation or
new K1 application command is part of the Polygon or LiDAR roadmap;
- the historical `1.27 m` handheld estimate is not an operational mounting or
ground-height constant.
Polygon is now a parallel product branch. As of this document: Polygon is now a parallel product branch. As of this document:
- P0 architecture and SRS are committed on the Polygon branch; - P0 architecture and SRS are committed on the Polygon branch;
@ -828,6 +841,12 @@ prove a closed-loop avoidance maneuver.
- SCAND supplies social-navigation demonstrations but remains replay evidence. - SCAND supplies social-navigation demonstrations but remains replay evidence.
- RAVNOVES00 first enters as canonical replay/shadow; only S5 may turn an - RAVNOVES00 first enters as canonical replay/shadow; only S5 may turn an
attested reconstruction into a digital-twin world. attested reconstruction into a digital-twin world.
- Replay experiments may estimate a time-varying local surface from K1 pose and
mapped geometry. A surface-bound profile derives height, slope, roughness and
traversability from that surface; a free-flight profile uses 3D
occupancy/clearance and does not require a ground plane.
- Public datasets qualify algorithms against independent labels. They are not
visual quality references for K1 and are never mixed into K1 device evidence.
Unknown or unobserved space remains unknown/occupied according to the selected Unknown or unobserved space remains unknown/occupied according to the selected
safety policy. safety policy.

View File

@ -1,10 +1,13 @@
# LiDAR worker: product value, evidence boundary and implementation roadmap # LiDAR worker: product value, evidence boundary and implementation roadmap
Date: 2026-07-25 Date: 2026-07-25
Status: accepted architecture plan; L0/L1 implemented; L2 diagnostic A/B complete; Status: accepted architecture plan; L0/L1 implemented; L2 diagnostic A/B
Dataset Gateway first-frame Current/Patchwork++ A/B complete complete; full GOOSE and RELLIS qualification complete; K1 local-world-model
Scope: real scanner records, replay and future live shadow processing gate next
Explicitly out of scope: Unreal U0/U1, Gaussian assets and simulator rendering Scope: passively received real-time K1 point/pose evidence, immutable replay and
future live shadow processing
Explicitly out of scope: K1 firmware modification, a new onboard exporter, new
K1 application commands, Unreal U0/U1, Gaussian assets and simulator rendering
## 1. Decision ## 1. Decision
@ -25,6 +28,27 @@ the control and review surface. Mission Core owns immutable inputs, exact
profiles, result identities, acceptance gates and diagnostic-only authority. profiles, result identities, acceptance gates and diagnostic-only authority.
Models do not gain scanner, navigation, command or safety authority. Models do not gain scanner, navigation, command or safety authority.
The current physical scanner is the accepted hardware starting point. Mission
Core does not require another LiDAR before it can qualify useful perception.
It treats the passively received K1 `lio_pcl` plus `lio_pose` pair as one
real-time source with two product uses:
1. a temporally bounded local world model for perception and later shadow
planning;
2. a persistent reconstruction of the territory traversed by the rig.
Those uses share immutable source evidence but apply different retention,
freshness and dynamic-object policies. Perception processing must not alter the
scanner output or overwrite the reconstruction source.
No operational algorithm hard-codes the distance from the LiDAR to terrain.
For a surface-bound vehicle, Mission Core estimates a time-varying local
surface from pose-relative geometry and derives height, slope, roughness and
steps from that surface. A future fixed installation adds only the rigid
`T_body_from_lidar` transform; it does not make ground height a constant. A
free-flying platform uses full 3D occupancy and clearance and may leave ground
unavailable when no local surface is observed.
## 2. What the current K1 source actually contains ## 2. What the current K1 source actually contains
The firmware-3 `lio_pcl` stream currently exposes: The firmware-3 `lio_pcl` stream currently exposes:
@ -40,6 +64,13 @@ distance diagnostics. What is not proven by that inverse transform is that the
result is the original unregistered sweep with preserved beam origin, result is the original unregistered sweep with preserved beam origin,
acquisition order and motion timing. acquisition order and motion timing.
The stream was nevertheless received while the K1 and its operator were
moving. `Real-time` describes when Mission Core received the product; `raw`
describes where that product sits in the scanner pipeline. These properties
are independent. Mission Core losslessly recorded the real-time MQTT product,
while K1 had already registered and sampled the points onboard before
publishing them.
Static, read-only analysis of the K1 3.0.2 deployment artifacts additionally Static, read-only analysis of the K1 3.0.2 deployment artifacts additionally
shows that the appliance internally: shows that the appliance internally:
@ -55,6 +86,11 @@ current external MQTT contract preserves those fields, and private firmware
artifacts remain outside Git. The redacted evidence is recorded in artifacts remain outside Git. The redacted evidence is recorded in
`docs/lab/005_K1_FW302_LIDAR_PIPELINE_20260725.redacted.md`. `docs/lab/005_K1_FW302_LIDAR_PIPELINE_20260725.redacted.md`.
The static evidence is explanatory only. The current roadmap does not authorize
changing the K1 firmware, installing an exporter, invoking an internal raw
topic or sending a new device command. All K1 perception experiments consume
only already admitted report streams or immutable recordings made from them.
The external contract does not currently expose an admitted: The external contract does not currently expose an admitted:
- raw sensor-frame sweep; - raw sensor-frame sweep;
@ -71,14 +107,18 @@ be silently mutated because E10E26 results are content-bound to that schema.
These facts have architectural consequences: These facts have architectural consequences:
- current K1 points can support display, calibrated projection, persistent - current K1 points are the primary real-sensor input and can support display,
support and bounded geometric analysis; reconstruction, calibrated projection, persistent support, pose-relative
- the live stream can be converted back to a pose-relative sensor XYZI tensor; distances and bounded geometric analysis;
- `T_map_from_lidar` permits a current pose-relative XYZI view, but that view
does not recreate the firing pose and time of every point;
- the same immutable stream must produce separate short-TTL perception and
persistent reconstruction derivatives;
- the v1 replay pack cannot feed the admitted NVIDIA PointPillars baseline; - the v1 replay pack cannot feed the admitted NVIDIA PointPillars baseline;
- KISS-ICP, KISS-SLAM, FAST-LIO2, LIO-SAM or GLIM cannot honestly rebuild K1 - KISS-ICP, KISS-SLAM, FAST-LIO2, LIO-SAM or GLIM cannot honestly rebuild K1
odometry from points that are already vendor-mapped; odometry from points that are already vendor-mapped;
- deskew and LiDAR-inertial SLAM are blocked until the scanner or a future - raw-scan-only algorithms remain deferred rather than becoming a reason to
vehicle LiDAR driver supplies raw scans, timing and IMU evidence. reject or replace the current scanner.
The executable truth is The executable truth is
`missioncore.lidar-evidence-profile/v1` in `missioncore.lidar-evidence-profile/v1` in
@ -109,10 +149,12 @@ camera parallax, but it is not planner-ready: most camera observations remain
unknown, camera-only velocity is not metric, 374 conflicts remain, and the unknown, camera-only velocity is not metric, 374 conflicts remain, and the
benchmark is not independent ground truth. benchmark is not independent ground truth.
The next work must therefore improve the LiDAR-native input and evaluation The next work must therefore improve the map-native interpretation of the
surface, not add another visual smoothing pass. Mission Core will use actual K1 stream, not add another visual smoothing pass and not wait for a
independently labeled public datasets before requesting any new manual K1 different scanner. `RAVNOVES00` is an immutable private field dataset for
annotation. The current K1 evidence stays an unlabeled out-of-domain smoke test. replay experiments over the accepted real-time contract. GOOSE and RELLIS
remain independent algorithm-qualification sources; they are not visual
quality references and are not mixed into K1 device evidence.
## 4. Market and stack assessment ## 4. Market and stack assessment
@ -157,8 +199,9 @@ The worker exposes provider-neutral jobs rather than one growing camera script:
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `lidar-quality/v1` | immutable LiDAR evidence | field/timing/density/intensity report | diagnostic | | `lidar-quality/v1` | immutable LiDAR evidence | field/timing/density/intensity report | diagnostic |
| `lidar-ground/v1` | sensor-frame XYZI + pose | ground/non-ground points and metrics | diagnostic | | `lidar-ground/v1` | sensor-frame XYZI + pose | ground/non-ground points and metrics | diagnostic |
| `lidar-local-surface/v1` | mapped increments + pose | local surface, height, slope, roughness, step and confidence | shadow |
| `lidar-3d-detection/v1` | sensor-frame XYZI | classified 3D observations + uncertainty | shadow | | `lidar-3d-detection/v1` | sensor-frame XYZI | classified 3D observations + uncertainty | shadow |
| `lidar-local-map/v1` | scans + synchronized pose | occupancy/TSDF/ESDF artifacts | shadow | | `lidar-local-map/v1` | mapped increments + pose | short-TTL occupied/unknown, persistence and dynamic evidence | shadow |
| `lidar-mapping-benchmark/v1` | raw scans + optional IMU | trajectory/map comparison | offline diagnostic | | `lidar-mapping-benchmark/v1` | raw scans + optional IMU | trajectory/map comparison | offline diagnostic |
Every result is content-addressed and binds: Every result is content-addressed and binds:
@ -238,9 +281,9 @@ quality line. It is not repaired or hidden by replay.
distributions in `missioncore.lidar-ground-benchmark/v1`. distributions in `missioncore.lidar-ground-benchmark/v1`.
- [x] Create an immutable eight-frame annotation template in which every point - [x] Create an immutable eight-frame annotation template in which every point
starts as `ignore-unreviewed`; it is explicitly not ground truth. starts as `ignore-unreviewed`; it is explicitly not ground truth.
- [ ] Keep the K1 annotation template frozen as an optional later - [x] Keep the K1 annotation template frozen as an optional later
domain-adaptation asset; do not make manual review the current critical path. domain-adaptation asset; do not make manual review the current critical path.
- [ ] Measure accepted ground IoU and obstacle recall first against an admitted - [x] Measure accepted ground IoU and obstacle recall first against an admitted
GOOSE native scan and its published point-wise labels. GOOSE native scan and its published point-wise labels.
The real diagnostic run is The real diagnostic run is
@ -259,6 +302,12 @@ latency remains 0.42 ms. Algorithm IoU is 4.07% p50 and disagreement is 19.13%
p50. The run is useful for visual review, but its evidence class is p50. The run is useful for visual review, but its evidence class is
`operator-estimated`, so input acceptance and production promotion stay false. `operator-estimated`, so input acceptance and production promotion stay false.
The `1.27 m` value is retained only because it explains this historical
experiment. It is not a K1 profile default, a vehicle mounting parameter or an
operational ground reference. A moving or flying rig requires a time-varying
surface estimate; if the geometry does not support one, the result is
`unknown`, not a substituted constant.
The operator-facing field generation is The operator-facing field generation is
`lidar-field-review-57f359dae336f06962e3a29e69e2da1bb8365f9af46d5d3173609f92d43db1ef`. `lidar-field-review-57f359dae336f06962e3a29e69e2da1bb8365f9af46d5d3173609f92d43db1ef`.
It uses the immutable RAVNOVES00 E10 derivative It uses the immutable RAVNOVES00 E10 derivative
@ -293,7 +342,7 @@ path. K1 manual review or a new real vehicle dataset is reserved for later
domain adaptation after a public baseline proves that the pipeline and metric domain adaptation after a public baseline proves that the pipeline and metric
harness work. harness work.
### L2.5 — Dataset Gateway — GOOSE qualification and RELLIS S0 complete ### L2.5 — Dataset Gateway — GOOSE and full RELLIS qualification complete
- [x] Define separate `native-scan`, `normalized-scan` and - [x] Define separate `native-scan`, `normalized-scan` and
`rolling-local-map` representations. `rolling-local-map` representations.
@ -323,17 +372,45 @@ harness work.
`131,072` point/label alignment and publish a bounded semantic viewer. `131,072` point/label alignment and publish a bounded semantic viewer.
- [x] Version the RELLIS `ground / non-ground / ignore` mapping and expose - [x] Version the RELLIS `ground / non-ground / ignore` mapping and expose
licensing as research-only evidence. licensing as research-only evidence.
- [ ] Admit the full RELLIS Ouster SemanticKITTI scans, labels and poses on - [x] Admit the full RELLIS Ouster SemanticKITTI scans, labels and poses on
worker D, then run the same Current/Patchwork++ harness. worker D and run the same Current/Patchwork++ harness over all `2,413`
validation frames.
The architectural contract and run sequence are fixed in The architectural contract and run sequence are fixed in
`docs/14_LIDAR_DATASET_GATEWAY.md` and ADR 0021. GOOSE is first because its `docs/14_LIDAR_DATASET_GATEWAY.md` and ADR 0021. GOOSE is first because its
published 3D format is one LiDAR revolution with point-wise semantic and published 3D format is one LiDAR revolution with point-wise semantic and
instance labels in off-road environments. The RELLIS-3D compatibility smoke is instance labels in off-road environments. Full RELLIS qualification then
now complete against official frame `000104`; the full second-source algorithm showed that Patchwork++ slightly improved Ground IoU while reducing obstacle
cross-check remains the next gate. non-ground recall from `80.46%` to `69.70%`; the candidate was rejected.
Dataset expansion is no longer the next gate.
### L3 — LiDAR-native 3D detection ### L2.6 — K1 local world model — next
- [ ] Bind the immutable `RAVNOVES00` source and replay-pack-v2 evidence without
rewriting either generation.
- [ ] Transform each admitted map increment through the nearest compatible
`T_map_from_lidar` and publish pose-binding age explicitly.
- [ ] Estimate a time-varying local surface for ground-vehicle profiles using
robust spatial cells and temporal support; do not use the historical
`1.27 m` value.
- [ ] Publish surface height, slope, roughness, step/curb candidates and
confidence separately from semantic classes.
- [ ] Produce short-TTL `occupied` and `unknown` layers from current evidence.
Do not infer `free` merely because a mapped point is absent.
- [ ] Keep persistent reconstruction, recent collision evidence and dynamic
observations as separate derivatives of the same source.
- [ ] Reuse the accepted camera-to-LiDAR projection as an optional semantic
layer with source, confidence, freshness and conflict fields.
- [ ] Measure latency, point age, pose-binding age, temporal stability, obstacle
preservation and memory growth over the complete recording.
- [ ] Replay the same profiles through a bounded latest-wins live-shadow queue;
no K1 command, navigation or safety authority is added.
Exit: one immutable K1 session yields both a persistent reconstruction and a
bounded local world state without hard-coded terrain height or scanner-side
changes.
### L3 — LiDAR-native 3D detection — deferred behind L2.6
- [ ] Establish the public-dataset baseline first; freeze K1-specific 3D - [ ] Establish the public-dataset baseline first; freeze K1-specific 3D
annotations only when a measured domain gap justifies them. annotations only when a measured domain gap justifies them.
@ -351,8 +428,9 @@ independent gate without increasing unsafe false-free or false-dynamic output.
### L4 — live shadow integration ### L4 — live shadow integration
- [ ] Add a bounded LiDAR queue independent of camera cadence. - [ ] Add a bounded LiDAR queue independent of camera cadence.
- [ ] Run the accepted detector profile on the NVIDIA worker. - [ ] Run the accepted K1 local-surface/local-map profile on the NVIDIA worker.
- [ ] Fuse LiDAR-native objects with E26 camera evidence as independent sources. - [ ] Fuse K1 geometric evidence with E26 camera evidence as independent
sources; a LiDAR-native detector remains optional.
- [ ] Publish `agree`, `single-source`, `conflict` and `unknown`; unknown remains - [ ] Publish `agree`, `single-source`, `conflict` and `unknown`; unknown remains
occupied. occupied.
- [ ] Measure sensor-to-result latency, deadline misses, drops, memory and GPU - [ ] Measure sensor-to-result latency, deadline misses, drops, memory and GPU
@ -363,13 +441,14 @@ false.
### L5 — local occupancy and Nav2 ### L5 — local occupancy and Nav2
- [ ] Obtain and validate the K1/future vehicle LiDAR scan model, or use a - [ ] Qualify conservative hit-based occupied/unknown output from the existing
different admitted source that supplies it. K1 mapped stream first.
- [ ] Prove pose and time behavior required by nvblox.
- [ ] Benchmark static occupancy/TSDF and ESDF output on real replay.
- [ ] Keep dynamic observations in a separate decaying layer. - [ ] Keep dynamic observations in a separate decaying layer.
- [ ] Connect the accepted 2D slice to Nav2 through the existing world-state - [ ] Connect the accepted 2D slice to Nav2 through the existing world-state
boundary. boundary.
- [ ] Keep ray-cleared free space, TSDF and ESDF unavailable unless a future
admitted source contract actually supplies the required beam origin/timing
evidence. Do not modify K1 firmware to close this optional gate.
Exit: local collision-space quality and deadline gates pass in replay and Exit: local collision-space quality and deadline gates pass in replay and
shadow. This still does not authorize control. shadow. This still does not authorize control.
@ -388,6 +467,8 @@ The current K1 `lio_pcl` stream cannot satisfy this gate.
The near-term value is not a prettier point cloud: The near-term value is not a prettier point cloud:
- one physical K1 stream supports both real-time local-world interpretation
and persistent territory reconstruction;
- a trustworthy observation tells the operator whether the scanner, transport, - a trustworthy observation tells the operator whether the scanner, transport,
pose, calibration or model failed; pose, calibration or model failed;
- lossless replay makes model and worker upgrades repeatable; - lossless replay makes model and worker upgrades repeatable;
@ -397,16 +478,16 @@ The near-term value is not a prettier point cloud:
to route validation and later collision checking; to route validation and later collision checking;
- the same job/result contracts accept real, replayed or simulated sources - the same job/result contracts accept real, replayed or simulated sources
without moving heavy compute into React; without moving heavy compute into React;
- hardware selection becomes evidence-driven: a future vehicle LiDAR is - the current scanner is improved through replaceable software derivatives
accepted by its timing/fields/profile, not by vendor marketing. without changing its acquisition behavior or firmware.
The GOOSE validation-split and deterministic degradation gates are complete: The GOOSE validation-split and deterministic degradation gates are complete:
pinned Patchwork++ improves micro Ground IoU from `47.42%` to `66.40%`, raises pinned Patchwork++ improves micro Ground IoU from `47.42%` to `66.40%`, raises
natural-ground recall from `51.76%` to `76.22%` and stays below `23.41 ms` p95 natural-ground recall from `51.76%` to `76.22%` and stays below `23.41 ms` p95
across 961 frames. RELLIS S0 proves that the shared reader, axes, ontology and across 961 frames. Full RELLIS qualification covers `2,413` validation frames
ground-target mapping work on a different Ouster off-road domain; it does not and rejects Patchwork++ because the small Ground-IoU gain came with unacceptable
yet score an algorithm. The decision remains shadow-only. The highest-value obstacle loss. Public-dataset ground qualification is therefore complete
immediate work is full RELLIS ground qualification, followed by the real enough for the current decision. The highest-value immediate work is the K1
sensor input contract and LiDAR-native detection on the same gateway. Nvblox local world model over `RAVNOVES00`, followed by bounded live shadow. Nvblox,
and alternative SLAM remain later because their timing, pose and scan-geometry raw-scan detectors and alternative SLAM remain optional later gates because the
gates are not yet satisfied. current report contract does not carry their required ray/timing semantics.

View File

@ -15,6 +15,19 @@ This prevents tuning an algorithm until a visually dense vendor map merely
looks plausible. It also keeps work reusable across Gazebo, Unreal, public looks plausible. It also keeps work reusable across Gazebo, Unreal, public
datasets and future real onboard sensors. datasets and future real onboard sensors.
`Dataset` names an immutable experiment input, not one universal point-cloud
representation. Mission Core keeps two evidence classes:
- public labeled native-scan datasets such as GOOSE and RELLIS qualify
algorithms against independent answers;
- private real-sensor datasets such as `RAVNOVES00` replay the exact K1
`lio_pcl`/`lio_pose` representation received during a physical session.
`RAVNOVES00` is therefore a dataset for K1 local-world-model experiments even
though it must never be relabeled as a native scan. Jobs bind its existing
session/replay identity and create replaceable derivatives; they do not copy,
rewrite or mix public points into the K1 source.
## Current admitted slice ## Current admitted slice
Implemented now: Implemented now:

View File

@ -71,6 +71,30 @@ define the normalization.
- The 1.27 m run makes the effect of the operator estimate visible and - The 1.27 m run makes the effect of the operator estimate visible and
repeatable, but remains diagnostic-only. repeatable, but remains diagnostic-only.
## Architecture clarification — 2026-07-25
This ADR rejects one algorithm/input pairing. It does not reject K1 as the
physical LiDAR, downgrade its real-time report stream to an offline-only source
or require replacement hardware.
- `lio_pcl` and `lio_pose` were received while the handheld rig moved and are
admitted as the primary real-sensor replay/shadow source.
- The pose permits points to be expressed relative to the current pivot. It
does not prove the original firing pose/time of every already mapped point.
- The historical `1.27 m` value is never an operational constant. It remains
only in the immutable Patchwork++ diagnostic identity.
- A ground-vehicle profile estimates the local surface over time and derives
sensor-to-surface height, slope and roughness from that surface. A free-flight
profile uses 3D occupancy/clearance and may publish ground as unavailable.
- A future fixed rig contributes `T_body_from_lidar`; it does not make height
above terrain constant.
- Persistent reconstruction and short-TTL perception are separate derivatives
of the same immutable K1 evidence. Neither derivative rewrites the source.
- Current work is passive: no K1 firmware change, onboard exporter, internal
topic invocation or new application command is authorized.
- `RAVNOVES00` is retained as an immutable private experimental dataset. All
prior benchmark artifacts remain valid records of the investigated approach.
## Real diagnostic evidence ## Real diagnostic evidence
Benchmark Benchmark