Repository Summary
| Description | |
| Checkout URI | https://github.com/rsasaki0109/lidarslam_ros2.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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-03-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
- a non-GPL default workflow
Out of scope for the public path:
-
lanelet2_map.osmgeneration - Autoware planning/localization bringup
- GPL-only frontend or backend components in the default workflow
Why This Repo
- non-GPL default path:
graph_based_slam(BSD-2-Clause),scanmatcher(project-local),RKO-LIO(MIT),DLIO(MIT),FAST_GICP(BSD-3-Clause) - 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
- 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, with RTK-like fixes inferred from low horizontal covariance
- GPL-free Scan Context place recognition is available in
graph_based_slam - experimental submap-BEV and SOLiD descriptors can be benchmarked without adding GPL dependencies
- optional dynamic-object filtering can clean the saved
pointcloud_map/at/map_savetime without changing live odometry - dynamic-filter reports now track both point reduction and coarse tile-footprint preservation
- packet-based Applanix IMU deskew support exists for real open data, but it remains experimental and off by default in the Leo Drive packet path
- the Leo Drive classic path now has a dedicated benchmark-suite entrypoint and report
- place-recognition and dynamic-filter comparisons both have report generators with tracked artifacts
- a focused map-authoring report can summarize benchmark, GNSS, cleanup, and classic-path evidence in one place
- a submission-bundle helper can package maps, metrics, trajectories, logs, and reports in a repeatable layout
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
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.
Docs
- Autoware-Compatible Map Authoring / Autoware Quickstart / Autoware Foxglove
- Operator Workflows
- Benchmarking And Release Gate
- Comparison
- v0.2.2 Release Notes
- Contributing
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