Skip to content

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, then lidarslam-map demo <new-output-dir>.
  • For your own bag, run lidarslam-map doctor /path/to/rosbag2, then lidarslam-map start /path/to/rosbag2.
  • Run lidarslam-map with no arguments in an interactive terminal when the first intent is not yet clear.
  • The release workflow publishes v0.10.0-humble and v0.10.0-jazzy images built from this tag. Getting Started switches its pinned Docker commands to them after their publication audit; until then it keeps the audited v0.9.0 images.

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_v4 run 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. The photometric_bump_no_radar preset 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_deskew option 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.0 remains immutable. No v0.9.1 tag 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: