lidarslam_ros2 v0.3.0
This is the v3 public release for lidarslam_ros2. It carries forward the
non-GPL default workflow from v0.2.x and adds: an end-to-end AWSIM ×
Autoware demo, a Livox MID-360 operator toolkit (recording → SLAM → Autoware
map), an opt-in STD/BTC-style triangle descriptor research stack with
variance-validated defaults, dogfood wrapper measurement plumbing, and a
user-friendly README.
Date: 2026-05-25
Highlights
- AWSIM × Autoware end-to-end pipeline: lidarslam now drives the AWSIM
simulator → graph_based_slam map → Autoware self-driving loop. Sample maps
and self-made maps are both supported; one-command demo wrappers ship as
scripts/run_awsim_autoware_demo.shandscripts/run_awsim_selfmade_map_demo.sh. Lanelet2 generation from TUM trajectory ships asscripts/simple_lanelet2_generator.py. Seedocs/awsim-autonomous-driving-tutorial.md. - Livox MID-360 operator toolkit: a robot-side recording → SLAM → Autoware map workflow targeted at Jetson-class hosts. Includes host readiness preflight, bag stamp rewriter, recording / production-candidate session wrappers, public-dataset map runner, and dashboards. Defaults are validated for Jetson AGX Orin + a single Livox MID-360 + ROS 2 Jazzy.
- Opt-in STD/BTC-style triangle descriptor stack (research feature, default
use_triangle_descriptor: false): BSD-2 implementation of a 3-point triangle hash + RANSAC place recognition, withedge_3dkeypoint extractor for narrow-FOV / indoor scenes. Ships ROS params for fine-grained tuning, a diagnostictriangle_descriptor_skip_ransacflag, and an empirically validated MID-360 default ofmax_pairs: 16. Seedocs/research/triangle-stack-2026-05-summary.mdfor production take-aways. - Dogfood wrapper measurement plumbing:
scripts/run_rko_lio_graph_autoware_dogfood.shnow supports frame overrides (--base-frame/--lidar-frame/--imu-frame), quiescence-based offline completion, graph-drain waits, corrected-path capture, and APE evaluation against a reference TUM. Suitable for real-robot bag end-to-end smoke tests. - User-friendly README: rewritten to lead with a 5-minute "try the public default" path, badges, grouped feature lists, and progressive disclosure of research / experimental tracks.
Public Snapshot
- fixed public entrypoint:
bash scripts/run_autoware_quickstart.sh - AWSIM × Autoware end-to-end demo:
bash scripts/run_awsim_selfmade_map_demo.sh - MID-360 robot toolkit (recording → SLAM):
bash scripts/run_mid360_robot_field_session.sh - map-authoring summary:
python3 scripts/generate_map_authoring_report.py - triangle research closeout:
docs/research/triangle-stack-2026-05-summary.md - NTU VIRAL current default APE RMSE: same baseline as
v0.2.2(no regression observed across 7+ runs) - MID360 GLIM cross-validation APE RMSE: same baseline as
v0.2.2; opt-in triangle stack does not improve APE on MID-360 (research finding, variance-bounded) - release gate:
scripts/run_release_readiness_checks.shkeeps the sameAPE <= 0.10 mthreshold for ground-truth-referenced runs
Supported Scope
- ROS 2 LiDAR SLAM with a non-GPL default path (BSD-2)
- pointcloud-map generation for Autoware-compatible workflows
- AWSIM × Autoware self-driving demo (sample map + self-made map flows)
- Livox MID-360 operator toolkit (Jetson AGX Orin + Jazzy validated)
map_projector_info.yamloutput asLocalwithout GNSS andLocalCartesianwith a stable GNSS origin- opt-in research features: STD/BTC-style triangle descriptor stack with
edge_3dkeypoints; Scan Context / BEV / SOLiD rerank candidates (legacy opt-in fromv0.2.x) - release-readiness, map-authoring, dynamic-filter, exploration-closeout, and MID-360 robot-toolkit reports from collected local artifacts
Known Limits
- triangle descriptor stack is research-only and remains
use_triangle_descriptor: falseby default on every preset; 3-dataset variance evidence (NTU / MID-360 / Newer College) shows it does not yet provide a reproducible APE win - lanelet generation is out of scope as a public default; the
simple_lanelet2_generator.pyshipped for AWSIM is a tutorial-grade tool, not a production lanelet authoring path - MID360 evidence on the public GLIM bag is still cross-validation against GLIM, not ground truth
- classic-path improvements remain fallback-path evidence, not the main public default
Research notes (closed-out)
- Single-run APE claims are unreliable on MID-360 / narrow-FOV triangle
ablations. Variance can exceed observed |Δ| by 8x. All triangle ablation
reports in this release ran ≥3 runs and report mean ± std +
|Δ|/σ. - MID-360-specific
+1 mAPE drift was traced to RANSAC compute cost, not the act of enabling the triangle pipeline.max_pairs: 32 → 16on the MID-360 yaml eliminates the drift;max_pairs=8brings it back (U-shaped relationship;=16is the empirical sweet spot). The fix is MID-360-specific — Newer College + NTU show no drift even at highermax_pairs. - A diagnostic
triangle_descriptor_skip_ransacROS param ships (default false, production no-op) so future investigations can reproduce the "executor scheduling vs RANSAC compute" split without re-implementing it.
See docs/research/triangle-stack-2026-05-summary.md for the full narrative
(7 PR table, ablation outputs, open research questions).
Recommended public workflow
Unchanged from v0.2.x: RKO-LIO + graph_based_slam with distance-based
loop closure. The triangle descriptor and AWSIM × Autoware demo are
additive — they do not change the default public path.