Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| graph_based_slam | 0.2.2 |
| lidarslam | 0.2.2 |
| lidarslam_msgs | 0.2.2 |
| scanmatcher | 0.2.2 |
README
lidarslam_ros2
ROS 2 LiDAR SLAM focused on non-GPL pointcloud-map authoring, benchmarking, and compatibility with Autoware pointcloud-map workflows.
Status:
developtracks the currentv2 alphaline. For the latest tagged public beta, see v0.2.2 Release Notes.Recommended Public Workflow
The recommended public path in this repository is:
- frontend:
RKO-LIO - backend:
graph_based_slam - output: Autoware-compatible
pointcloud_map/andmap_projector_info.yaml
This is the path exercised in the public quickstart, benchmark flow, and release/readiness gate.
Scope
This repository is for people who want:
- ROS 2 LiDAR SLAM with loop closure
- pointcloud maps that Autoware can load
- lanelet2 maps auto-generated from SLAM trajectories
- end-to-end autonomous driving on self-made maps (AWSIM + Autoware)
- a non-GPL default workflow
Out of scope for the public path:
- Autoware planning/localization bringup beyond the provided demo scripts
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam,scanmatcher,RKO-LIO,DLIO, and optionalFAST_GICP - pointcloud-map authoring is treated as a first-class workflow, not just a side-effect of odometry
- Autoware pointcloud-map flow is exercised end-to-end
- AWSIM → lidarslam → Autoware autonomous driving pipeline with one-command demo
- lanelet2 auto-generation from SLAM trajectories (multi-segment with shared boundary nodes)
- default benchmark path is tracked on
NTU VIRAL - current long-loop evidence is tracked on
MID360 - optional GNSS georeferencing writes
map_projector_info.yaml; GNSS edges can use covariance-based weighting - GPL-free Scan Context place recognition is available in
graph_based_slam - optional MIT-licensed 3D-BBS loop-candidate verification can be built from the vendored
Thirdparty/3d_bbssource and remains disabled at runtime by default - report helpers cover benchmarks, GNSS, cleanup, dynamic filtering, place recognition, and submission bundles
Install
Clone with submodules and install dependencies:
cd ~/ros2_ws/src
git clone --recursive https://github.com/rsasaki0109/lidarslam_ros2.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
If you already cloned without submodules:
git -C src/lidarslam_ros2 submodule update --init --recursive
Build the workspace:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Quickstart
# local checks
bash scripts/run_default_ci_checks.sh
# fixed public quickstart
bash scripts/download_ntu_viral_tnp01.sh
bash scripts/run_autoware_quickstart.sh
# arbitrary rosbag2
bash scripts/run_autoware_map_beginner.sh /path/to/rosbag2
AWSIM Autonomous Driving Pipeline
AWSIM simulator data can flow through lidarslam into pointcloud_map, generated lanelet2, and Autoware driving demos. Start with:
bash scripts/test_awsim_setup.sh
bash scripts/run_awsim_selfmade_map_demo.sh
For map packaging, lanelet2 generation, and terminal-by-terminal bringup, see AWSIM Autonomous Driving Tutorial.
Point-Cloud Map Example
Autoware-compatible browser proof built from a live /map/pointcloud_map: the rendered map comes from Autoware map loaders, map verify is PASS, and GNSS runs emit LocalCartesian.
Save-time dynamic-object filtering on Leo Drive bag6 cuts saved points by about 50% while keeping verification PASS.
File truncated at 100 lines see the full file
CONTRIBUTING
Contributing
Thanks for contributing to lidarslam_ros2.
This repository is trying to be a practical default for ROS 2 LiDAR SLAM and Autoware pointcloud-map generation. Contributions are most useful when they are easy to reproduce, easy to compare, and clearly scoped.
What To Send
Useful contributions include:
- bug fixes in the default permissive workflow
- Autoware pointcloud-map integration fixes
- benchmark results with reproducible commands and artifacts
- parameter improvements backed by logs and trajectory metrics
- documentation improvements that reduce setup time
Default Workflow Policy
The default and recommended workflow in this repository is permissive-license only. Contributions that change the default path should preserve that property.
Current default path:
RKO-LIO + graph_based_slam- local Scan Context implementation
- Autoware-compatible pointcloud map output
Research frontends with other licenses can still be discussed, but they should not silently become the default path.
Autoware Naming And Trademark Guidance
Keep Autoware references descriptive.
Preferred wording:
Autoware-compatible pointcloud mappointcloud-map workflow for Autowareworks with Autowarebuilt on Autoware
Avoid branding this repository or a derived product as if it were an official Autoware product or a Foundation-approved distribution.
Avoid wording such as:
-
Autoware-readyas a product tag line official AutowareAutoware <product-name>certified by Autowareendorsed by the Autoware Foundation
If in doubt, prefer compatibility language over product-name language.
Before Opening An Issue
Please collect the smallest reproducible case you can.
For Autoware-related reports, include:
- exact map bundle path or a minimal reproduction bundle
map_projector_info.yaml- result of
python3 scripts/verify_autoware_map.py <pointcloud_map_dir> - exact command used to stage or view the map
- whether GNSS was enabled
For benchmark-related reports, include:
- bag or dataset name
- exact command line
- param file path
metrics.json-
ape_corrected_vs_gt.txtandape_raw_vs_gt.txtwhen available - logs needed to understand failures or regressions
Recommended Local Checks
For code changes that touch the default workflow:
bash scripts/run_default_ci_checks.sh
For benchmark/reporting changes:
bash scripts/run_release_readiness_checks.sh --skip-default-ci --ape-threshold 0.10
For Autoware pointcloud-map changes:
bash scripts/run_autoware_quickstart.sh
Benchmark Result Submissions
If you want to contribute benchmark results, prefer opening the benchmark report
File truncated at 100 lines see the full file