lidarslam_ros2 v0.10.0¶
The first published release since v0.9.0 of the supported Humble and Jazzy rosbag2-to-Autoware-compatible map workflow. It ships the never-tagged 0.9.1 candidate's reliability and first-map work, repairs the default workflow after the sota-v6 recovery merge, and adds camera colouring, MID-360 presets, and a degenerate LiDAR-inertial odometry (tunnel) research track.
v0.10.0 is not v1.0. It does not claim universal sensor support, overall superiority to GLIM, or that ROS apt distribution or independent adoption is complete. The release workflow publishes it as a normal GitHub Release.
Shortest supported paths¶
Start at Autoware-Compatible Map Authoring; it keeps the public workflow in task order.
- Check the installation, then run the fixed public MID-360 demo:
lidarslam-map doctor, thenlidarslam-map demo <new-output-dir>. - For your own bag, run
lidarslam-map doctor /path/to/rosbag2, thenlidarslam-map start /path/to/rosbag2. - Run
lidarslam-mapwith no arguments in an interactive terminal when the first intent is not yet clear. - The release workflow publishes
v0.10.0-humbleandv0.10.0-jazzyimages built from this tag. Getting Started switches its pinned Docker commands to them after their publication audit; until then it keeps the auditedv0.9.0images.
What v0.10.0 adds¶
From the 0.9.1 candidate¶
The 0.9.1 notes describe these in detail; 0.9.1 itself was never tagged.
- One interactive product home, a bag-optional doctor, guided own-bag
start, session history, comparison, support, and first-map sharing. - Crash-safe point-cloud handling: classic scanmatcher VoxelGrid paths and graph point-cloud conversions reject unsafe layouts while the process and its last valid map stay available.
- Atomic outputs, finalization-only resume, source-preserving edit and merge plans, and privacy-bounded first-map receipts.
- The six-package Humble/Jazzy source quickstart and fail-closed NTU VIRAL
and RTK-SLAM acquisition planners (
bash scripts/download_ntu_viral_tnp01.sh --dry-run).
Degenerate LiDAR-inertial odometry¶
- ENWIDE. Radar-less Ouster configurations v7–v10. The recorded
degenerate_lio_sota_v4run of v10 completed all 30 runs (ten sequences, three identical repetitions) with a median ATE of 0.29 m, the lowest of the five methods reproduced on the same bags. Thephotometric_bump_no_radarpreset ships the v10 options. - GEODE Hard. RKO-LIO device configurations up to v16 and the profile rivals on all 18 Hard sequences. The Livox device is evaluated on its internal IMU after its Xsens IMU was found 7.5–80 ms off the LiDAR clock. RKO-LIO v16 has the lowest median ATE (8.5 m, against 78.7 m for BIEVR-LIO); BIEVR-LIO is better on the Livox shield tunnels.
- No SOTA claim. The profile also requires a hidden tunnel holdout, one parameter set across all sequences, and zero catastrophic failures; no method has the last on GEODE Hard. See the comparison page and the research notes it links.
Camera colouring¶
- Refine each camera pose against the LiDAR map before colouring.
- Reject sky-coloured samples and refill points seen only against the sky (both opt-in), and carve the camera bearer's corridor out of the map.
- Score map colours against an independent TLS reference (Oxford Spires).
- Pair bag images, clouds, and CameraInfo by sensor timestamps, and validate online camera inputs.
MID-360¶
- A handheld outdoor RKO-LIO profile: scan gaps up to 3 s, gravity re-levelling of the local map, and occluded-scan skipping.
- An RKO-LIO online odometry launch with MID-360 defaults that converts IMU acceleration from g.
- Preset maps levelled with RKO-LIO's gravity initialization, and a map tilt check in diagnosis.
Reliability¶
- NTU VIRAL is deskewed with the interval's mean angular velocity again. The
samplewise gyro deskew that RKO-LIO adopted for Go2 had raised the tnp_01
APE from 0.936 m to 1.14 m; it is now the
samplewise_gyro_deskewoption and stays on by default. - The release-gate benchmark harness records provenance again and scores each run with the reference offset of its base frame; the sota-v6 merge had replaced it with the experimental harness.
- The scanmatcher and RKO-LIO TF listeners no longer hang when destroyed on Humble.
- RKO-LIO waits for its own output subscribers; the barrier no longer treats a discovery miss as zero subscribers.
- The default workflow builds and tests again on Humble and Jazzy after the sota-v6 recovery merge, with flake8, pep257, lint_cmake, copyright, cpplint, and xmllint enabled.
Release verification¶
All gates ran on the clean carrier commit
af73e05ae8c541f985f626508540b75eb6830aad with a build of that commit
(lidarslam-map --version: lidarslam_ros2 0.10.0). The tagged commit
differs from it only in this section and in the release-gate snapshot of
Benchmarking.
| Gate | Command | Result |
|---|---|---|
| Python product suites | bash scripts/run_product_python_tests.sh |
PASS: graph_based_slam 2,069 passed / 25 skipped; lidarslam 1,201 passed |
| Strict documentation | python3 -m mkdocs build --strict |
PASS |
| First-map verification package | python3 scripts/check_first_map_verification_package.py --json |
READY |
| v1 readiness contract | python3 scripts/check_v1_readiness.py --json |
valid; NOT_READY 8/10, as for the 0.9.1 candidate |
| Release bundle reproducibility | python3 scripts/check_release_bundle_reproducibility.py |
PASS: two byte-identical builds, 301 files, 12,403,573 bytes, SHA-256 110e70cb720ad89ccb9861debb532562549a76d5ea7e48c6109580c128254e33 |
| Installation check | lidarslam-map doctor |
PASS |
| Fixed first-map demo | lidarslam-map demo <new-dir> --viewer none |
PASS: map verifier PASS and first-map receipt written |
| Default workflow (build and package tests) | GitHub Actions ci on Humble and Jazzy |
PASS (run 38385068255) |
| Blocking release profiles | bash scripts/run_release_readiness_checks.sh --skip-default-ci --benchmark-root <root> --fail-on-profiles |
PASS (exit 0) |
Blocking release profiles at the carrier commit, each with clean provenance for that exact commit:
| Profile | Metric | v0.10.0 | v0.9.0 | Pass | Target | Status |
|---|---|---|---|---|---|---|
newer_college_math_hard |
APE RMSE vs ground truth | 0.070 m | 0.081 m | 0.10 m | 0.08 m | TARGET_MET |
ntu_viral_tnp_01 |
APE RMSE vs ground truth | 0.975 m | 0.936 m | 1.00 m | 0.30 m | PASS |
mid360_gt_rtkslam_construction_seq2 |
APE RMSE vs checkpoints | 0.165 m | 0.086 m | 0.30 m | 0.15 m | PASS |
mid360_gt_rtkslam_construction_seq1 |
APE RMSE vs checkpoints | 0.280 m | 0.321 m | 0.55 m | 0.30 m | TARGET_MET |
leo_drive_applanix_velodyne_cross |
APE RMSE vs Applanix | 0.139 m | 0.139 m | 1.50 m | 0.50 m | TARGET_MET |
- NTU VIRAL. The raw odometry matches v0.9.0 (0.984 m against 0.983 m). The graph accepts fewer loop closures than in v0.9.0 (8 against 13) and varies by about 1 cm between runs (0.975 m here, 0.985 m in the preflight).
- RTK-SLAM Construction Hall 2. 0.165 m against 0.086 m in v0.9.0. The reference, the parameters and the scan count are unchanged; the change comes from an RKO-LIO change made before the samplewise gyro deskew. It stays within the profile's 0.30 m and is tracked for v0.10.x.
- NTU acquisition. A fresh NTU VIRAL preparation still starts with the
write- and network-free
bash scripts/download_ntu_viral_tnp01.sh --dry-run.
Upgrade notes¶
- The public CLI and output schemas keep the v1 compatibility contract.
- Existing map outputs are never overwritten; use a new output directory.
v0.9.0remains immutable. Nov0.9.1tag exists.- Package-manager upgrade instructions remain maintainer-only until testing and main repository evidence exists for both supported distros.
Remaining v1.0 gates¶
- Complete the reviewed NDT ownership, rosdistro, and main-channel package path.
- Capture complete Humble/Jazzy Docker and source onboarding measurements.
- Accept three independent first-map validations. The tracked count remains 0/3.
Authoritative status and procedures: