Skip to content

ROS implementation of ICP (Iterative Closest Point) matching

License

Notifications You must be signed in to change notification settings

ToshikiNakamura0412/icp_matching_ros

Repository files navigation

icp_matching_ros

Build Status License: MIT

ROS implementation of ICP (Iterative Closest Point) matching

Provide a library icp_matching, demo nodes.

Environment

  • Ubuntu 20.04
  • ROS Noetic
  • PCL

Install and Build

# 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

Setup

cd icp_matching_ros
./download.sh

Running the demo

2D

roslaunch icp_matching_ros test.launch

3D

roslaunch icp_matching_ros test.launch use_3d:=true

Nodes

icp_matching_demo

Published Topics

  • ~<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

Parameters

  • ~<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

test_pcd_creator

Parameters

  • ~<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

References