ROS implementation of ICP (Iterative Closest Point) matching
Provide a library icp_matching
, demo nodes.
- Ubuntu 20.04
- ROS Noetic
- PCL
# clone repository
cd /path/to/your/catkin_ws/src
git clone https://github.com/ToshikiNakamura0412/icp_matching_ros.git
# build
cd /path/to/your/catkin_ws
rosdep install -riy --from-paths src --rosdistro noetic # Install dependencies
catkin build icp_matching_ros -DCMAKE_BUILD_TYPE=Release # Release build is recommended
cd icp_matching_ros
./download.sh
roslaunch icp_matching_ros test.launch
roslaunch icp_matching_ros test.launch use_3d:=true
- ~<name>/cloud_src (
sensor_msgs/PointCloud2
)- Source point cloud
- ~<name>/cloud_src_registered (
sensor_msgs/PointCloud2
)- Registered point cloud
- ~<name>/cloud_target (
sensor_msgs/PointCloud2
)- Target point cloud
- ~<name>/src_pcd_path (string, default:
src_pcd.pcd
):
The path to the source point cloud - ~<name>/target_pcd_path (string, default:
target_pcd.pcd
):
The path to the target point cloud - ~<name>/frame_id (string, default:
map
):
The frame id of the point cloud - ~<name>/enable_downsampling (bool, default:
false
):
Enable downsampling - ~<name>/leaf_size (float, default:
0.003
):
The leaf size of the voxel grid filter - ~<name>/sleep_time (float, default:
0.3
):
The sleep time between iterations
- ~<name>/src_pcd_path (string, default:
src_pcd.pcd
):
The path to the source point cloud - ~<name>/target_pcd_path (string, default:
target_pcd.pcd
):
The path to the target point cloud - ~<name>/point_num (int, default:
20
):
The number of points in the point cloud - ~<name>/rotation_yaw (float, default:
0.2
[rad]):
The rotation angle around the z-axis - ~<name>/translation_x (float, default:
5.0
[m]):
The translation distance along the x-axis - ~<name>/translation_y (float, default:
-2.0
[m]):
The translation distance along the y-axis