SimpleLoopClosure
March 16, 2025 ยท View on GitHub
Overview
This repository is a ROS implementation of Loop Closure for LiDAR SLAM.
It is a simple implementation using pose graph optimization with GTSAM and radius search with nanoflann.
It was created to obtain Loop Closed point cloud maps from an algorithm that provides only LiDAR odometry.
Tested LiDAR Odometry Algorithms
Demo
ROS2
ashBabu has created a ROS2 implementation based on this repository.
Excellent work. Thank you!
https://github.com/ashBabu/simple_loop_closure/tree/ros2
Build
Please install GTSAM4.x.
cd catkin_ws
git clone --recursive https://github.com/kamibukuro5656/SimpleLoopClosure.git src
catkin_make -DCMAKE_BUILD_TYPE=Release
Execution
Example: Point-LIO
roscore
rosparam set use_sim_time true
[launch Point-LIO]
roslaunch simple_loop_closure run_point_lio.launch
rosbag play --clock [bag file]
Saving Point Cloud Maps
Please put the destination directory in the "save_req" topic and publish.
rostopic pub /save_req std_msgs/String "data: '[directory]'"
Parameters
Please refer to Parameters.md.
Requirements for LiDAR Odometry
- LiDAR odometry must publish "nav_msgs::Odometry" format odometry and a paired LiDAR scan.
- The timestamps of the two topics must be almost the same time.
Acknowledgments
I would like to thank the creators of the following open source packages: