docs: make K1 realtime map the primary lidar source
This commit is contained in:
parent
d8b7ed4526
commit
cfe17e49bb
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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 E10–E26 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.
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue