This repo is the implementation of Point-to-Line Iterative Closest Point (PL-ICP) algorithm proposed by Censi [1]. The original code can be found in [2]. However, there are some bugs about ROS tf transform in the original code. I fixed the bugs and added the mapping module following the programming habits in open karto library [3].
1. This package has been tested well in Ubuntu 16.04 with ROS Kinetic.
2. If you want to use it, you must install csm first:
$ sudo apt-get install ros-kinetic-csm
3. Clone the repo to your workspace and complie it
$ cd ~/catkin_ws/src/
$ git clone https://github.com/nkuwenjian/laser_scan_matcher.git
$ cd ../
$ catkin_make
$ source devel/setup.bash
4. Run offline rosbag
$ roslaunch laser_scan_matcher demo.launch
$ rosbag play <rosbagfile> --clock
/scan
(sensor_msgs/LaserScan)/tf
(tf2_msgs/TFMessage)
/map
(nav_msgs/OccupancyGrid)/map_metadata
(nav_msgs/MapMetaData)/tf
(tf2_msgs/TFMessage)
[1] A. Censi, "An ICP variant using a point-to-line metric," in Proceedings of the IEEE International Conference on Robotics and Automation, 2008, pp. 19-25.