From cfe17e49bb87f64f70b7db71f64b4c4463e42964 Mon Sep 17 00:00:00 2001 From: DCCONSTRUCTIONS Date: Sat, 25 Jul 2026 22:20:13 +0300 Subject: [PATCH] docs: make K1 realtime map the primary lidar source --- README.md | 8 + docs/00_TECHNICAL_AUDIT.md | 16 ++ docs/10_EXTERNAL_PERCEPTION_WORKER.md | 29 ++-- docs/11_K1_CALIBRATED_PERCEPTION_ROADMAP.md | 6 +- docs/12_SIMULATION_POLYGON_PRODUCT_AND_SRS.md | 21 ++- docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md | 157 +++++++++++++----- docs/14_LIDAR_DATASET_GATEWAY.md | 13 ++ .../0020-patchworkpp-vendor-map-boundary.md | 24 +++ 8 files changed, 222 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index d703b55..070a847 100644 --- a/README.md +++ b/README.md @@ -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 `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 `2,413`-frame validation split is available in **Полигон → Датасеты**. The sealed Current/Patchwork++ comparison rejected Patchwork++ for navigation: diff --git a/docs/00_TECHNICAL_AUDIT.md b/docs/00_TECHNICAL_AUDIT.md index fe7c71e..842257f 100644 --- a/docs/00_TECHNICAL_AUDIT.md +++ b/docs/00_TECHNICAL_AUDIT.md @@ -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. 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 - Local `map.las` layout resembles the network stream. diff --git a/docs/10_EXTERNAL_PERCEPTION_WORKER.md b/docs/10_EXTERNAL_PERCEPTION_WORKER.md index f6e8d91..891053f 100644 --- a/docs/10_EXTERNAL_PERCEPTION_WORKER.md +++ b/docs/10_EXTERNAL_PERCEPTION_WORKER.md @@ -6,6 +6,9 @@ The LiDAR-native extension is governed by 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 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 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 sensor-centric scan and physical-height contract Patchwork++ expects. The read-only `/api/v1/lidar/ground-benchmarks` surface therefore publishes -`production_promotion=false` until an independent annotation generation or an -admitted raw scan closes the input gate. +`production_promotion=false`. GOOSE and full RELLIS qualification have since +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 `/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 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 -next integration target—an admitted onboard export or bag contract—but does -not change the authority or input acceptance of existing `lio_pcl` recordings. -The 1.27 m operator-height profile is likewise explicit and reproducible, but -remains `operator-estimated` rather than runtime-calibrated. +configured MQTT point-cloud downsample factor of four. This explains the +representation boundary but does not authorize an onboard export, firmware +change, internal-topic invocation or new K1 command. The worker consumes only +admitted report streams or immutable recordings made from them. The `1.27 m` +operator-height profile remains a reproducible historical diagnostic and must +never become a runtime ground constant. ## Boundary ```text K1 -> XGRIDS device plugin / Mission Core Edge - -> authoritative raw session on Mac + -> authoritative lossless report-stream session on Mac -> bounded missioncore.compute-job/v1 -> replaceable GPU worker / Triton -> content-addressed missioncore.compute-result/v1 -> optional validated Rerun derived layer ``` -The GPU worker cannot discover, provision, start or stop a K1. It receives an -observation package and returns derived observations. The Mac archive is never -rewritten when a job is prepared or a result is received. +The GPU worker cannot discover, provision, start or stop a K1. LiDAR perception +experiments are subscribe/replay-only and invoke no K1 application command. The +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 diff --git a/docs/11_K1_CALIBRATED_PERCEPTION_ROADMAP.md b/docs/11_K1_CALIBRATED_PERCEPTION_ROADMAP.md index 06b89a5..1afe2d5 100644 --- a/docs/11_K1_CALIBRATED_PERCEPTION_ROADMAP.md +++ b/docs/11_K1_CALIBRATED_PERCEPTION_ROADMAP.md @@ -4,8 +4,10 @@ Status date: 2026-07-20. LiDAR-native work after E26 follows `docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md`: lossless replay and scanner -quality first, then ground segmentation and a PointPillars baseline. Alternative -odometry/SLAM is not admitted for the current vendor-mapped K1 stream. +quality first, then a map-native K1 local world model over the passively +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 diff --git a/docs/12_SIMULATION_POLYGON_PRODUCT_AND_SRS.md b/docs/12_SIMULATION_POLYGON_PRODUCT_AND_SRS.md index 4d2e8fc..94e338e 100644 --- a/docs/12_SIMULATION_POLYGON_PRODUCT_AND_SRS.md +++ b/docs/12_SIMULATION_POLYGON_PRODUCT_AND_SRS.md @@ -1,6 +1,6 @@ # 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: @@ -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 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: - 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. - RAVNOVES00 first enters as canonical replay/shadow; only S5 may turn an 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 safety policy. diff --git a/docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md b/docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md index dbaec31..0dc9e0e 100644 --- a/docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md +++ b/docs/13_LIDAR_WORKER_PRODUCT_AND_ROADMAP.md @@ -1,10 +1,13 @@ # LiDAR worker: product value, evidence boundary and implementation roadmap Date: 2026-07-25 -Status: accepted architecture plan; L0/L1 implemented; L2 diagnostic A/B complete; -Dataset Gateway first-frame Current/Patchwork++ A/B complete -Scope: real scanner records, replay and future live shadow processing -Explicitly out of scope: Unreal U0/U1, Gaussian assets and simulator rendering +Status: accepted architecture plan; L0/L1 implemented; L2 diagnostic A/B +complete; full GOOSE and RELLIS qualification complete; K1 local-world-model +gate next +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 @@ -25,6 +28,27 @@ the control and review surface. Mission Core owns immutable inputs, exact profiles, result identities, acceptance gates and diagnostic-only 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 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, 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 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 `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: - raw sensor-frame sweep; @@ -71,14 +107,18 @@ be silently mutated because E10–E26 results are content-bound to that schema. These facts have architectural consequences: -- current K1 points can support display, calibrated projection, persistent - support and bounded geometric analysis; -- the live stream can be converted back to a pose-relative sensor XYZI tensor; +- current K1 points are the primary real-sensor input and can support display, + reconstruction, calibrated projection, persistent support, pose-relative + 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; - KISS-ICP, KISS-SLAM, FAST-LIO2, LIO-SAM or GLIM cannot honestly rebuild K1 odometry from points that are already vendor-mapped; -- deskew and LiDAR-inertial SLAM are blocked until the scanner or a future - vehicle LiDAR driver supplies raw scans, timing and IMU evidence. +- raw-scan-only algorithms remain deferred rather than becoming a reason to + reject or replace the current scanner. The executable truth is `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 benchmark is not independent ground truth. -The next work must therefore improve the LiDAR-native input and evaluation -surface, not add another visual smoothing pass. Mission Core will use -independently labeled public datasets before requesting any new manual K1 -annotation. The current K1 evidence stays an unlabeled out-of-domain smoke test. +The next work must therefore improve the map-native interpretation of the +actual K1 stream, not add another visual smoothing pass and not wait for a +different scanner. `RAVNOVES00` is an immutable private field dataset for +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 @@ -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-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-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 | 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`. - [x] Create an immutable eight-frame annotation template in which every point 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. -- [ ] 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. 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 `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 `lidar-field-review-57f359dae336f06962e3a29e69e2da1bb8365f9af46d5d3173609f92d43db1ef`. 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 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 `rolling-local-map` representations. @@ -323,17 +372,45 @@ harness work. `131,072` point/label alignment and publish a bounded semantic viewer. - [x] Version the RELLIS `ground / non-ground / ignore` mapping and expose licensing as research-only evidence. -- [ ] Admit the full RELLIS Ouster SemanticKITTI scans, labels and poses on - worker D, then run the same Current/Patchwork++ harness. +- [x] Admit the full RELLIS Ouster SemanticKITTI scans, labels and poses on + worker D and run the same Current/Patchwork++ harness over all `2,413` + validation frames. The architectural contract and run sequence are fixed in `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 -instance labels in off-road environments. The RELLIS-3D compatibility smoke is -now complete against official frame `000104`; the full second-source algorithm -cross-check remains the next gate. +instance labels in off-road environments. Full RELLIS qualification then +showed that Patchwork++ slightly improved Ground IoU while reducing obstacle +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 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 - [ ] Add a bounded LiDAR queue independent of camera cadence. -- [ ] Run the accepted detector profile on the NVIDIA worker. -- [ ] Fuse LiDAR-native objects with E26 camera evidence as independent sources. +- [ ] Run the accepted K1 local-surface/local-map profile on the NVIDIA worker. +- [ ] 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 occupied. - [ ] Measure sensor-to-result latency, deadline misses, drops, memory and GPU @@ -363,13 +441,14 @@ false. ### L5 — local occupancy and Nav2 -- [ ] Obtain and validate the K1/future vehicle LiDAR scan model, or use a - different admitted source that supplies it. -- [ ] Prove pose and time behavior required by nvblox. -- [ ] Benchmark static occupancy/TSDF and ESDF output on real replay. +- [ ] Qualify conservative hit-based occupied/unknown output from the existing + K1 mapped stream first. - [ ] Keep dynamic observations in a separate decaying layer. - [ ] Connect the accepted 2D slice to Nav2 through the existing world-state 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 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: +- 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, pose, calibration or model failed; - 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; - the same job/result contracts accept real, replayed or simulated sources without moving heavy compute into React; -- hardware selection becomes evidence-driven: a future vehicle LiDAR is - accepted by its timing/fields/profile, not by vendor marketing. +- the current scanner is improved through replaceable software derivatives + without changing its acquisition behavior or firmware. The GOOSE validation-split and deterministic degradation gates are complete: 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 -across 961 frames. RELLIS S0 proves that the shared reader, axes, ontology and -ground-target mapping work on a different Ouster off-road domain; it does not -yet score an algorithm. The decision remains shadow-only. The highest-value -immediate work is full RELLIS ground qualification, followed by the real -sensor input contract and LiDAR-native detection on the same gateway. Nvblox -and alternative SLAM remain later because their timing, pose and scan-geometry -gates are not yet satisfied. +across 961 frames. Full RELLIS qualification covers `2,413` validation frames +and rejects Patchwork++ because the small Ground-IoU gain came with unacceptable +obstacle loss. Public-dataset ground qualification is therefore complete +enough for the current decision. The highest-value immediate work is the K1 +local world model over `RAVNOVES00`, followed by bounded live shadow. Nvblox, +raw-scan detectors and alternative SLAM remain optional later gates because the +current report contract does not carry their required ray/timing semantics. diff --git a/docs/14_LIDAR_DATASET_GATEWAY.md b/docs/14_LIDAR_DATASET_GATEWAY.md index ec27d1e..2ac8521 100644 --- a/docs/14_LIDAR_DATASET_GATEWAY.md +++ b/docs/14_LIDAR_DATASET_GATEWAY.md @@ -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 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 Implemented now: diff --git a/docs/adr/0020-patchworkpp-vendor-map-boundary.md b/docs/adr/0020-patchworkpp-vendor-map-boundary.md index 5e755ad..59d9ba5 100644 --- a/docs/adr/0020-patchworkpp-vendor-map-boundary.md +++ b/docs/adr/0020-patchworkpp-vendor-map-boundary.md @@ -71,6 +71,30 @@ define the normalization. - The 1.27 m run makes the effect of the operator estimate visible and 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 Benchmark