/SimpleLoopClosure

ROS implementation of Loop Closure for LiDAR SLAM.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

SimpleLoopClosure

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

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:

ToDo

  • Add GPS
  • Improve memory efficiency