Generalized Iterative Closest Point (G-ICP)

이번에는 tutorial의 마지막인, G-ICP에 대해서 알아보겠습니다.

기존의 ICP는 내부적으로 point-to-point로 상대적 거리를 줄여나갔다면 G-ICP에서는 바로 해당 point의 source/target point의 uncertainty를 활용하여 registration을 하는 기법입니다.

따라서 이러한 uncertainty를 추정하기 위해 source/target point cloud에 대해 normal vector를 추출합니다.

하지만 아래 코드에서 보이는 것처럼 setInputSource(), setInputTarget() 내부에서 normal vector를 추출하기 때문에, 사용자 관점에서는 아래와 같이

gicp.setInputSource(src);
gicp.setInputTarget(tgt);
gicp.align(*align);

를 하게 되면 gicp class 내부에서 우리가 구하고자 하는 source와 target의 transformation matrix를 구하게 됩니다.

How to Use

G-ICP 코드는 사실 ICP를 상속 받아서 구현되어 있기 때문에, ICP를 사용할 때와 별반 다를바 없습니다.

끗!


Point Cloud Library Tutorial 시리즈입니다.

모든 코드는 이 레포지토리에 있고, ros package로 구성되어 있어 build하여 직접 돌려보실 수 있습니다

  1. ROS Point Cloud Library (PCL) - 0. Tutorial 및 기본 사용법
  2. ROS Point Cloud Library (PCL) - 1. Ptr, ConstPtr의 완벽 이해 (1) shared_ptr
  3. ROS Point Cloud Library (PCL) - 1. Ptr, ConstPtr의 완벽 이해 (2) Ptr in PCL
  4. ROS Point Cloud Library (PCL) - 1. Ptr, ConstPtr의 완벽 이해 (3) Ptr in 클래스 멤버변수
  5. ROS Point Cloud Library (PCL) - 2. 형변환 - toROSMsg, fromROSMsg
  6. ROS Point Cloud Library (PCL) - 3. Transformation
  7. ROS Point Cloud Library (PCL) - 4. Viewer로 visualization하는 법
  8. ROS Point Cloud Library (PCL) - 5. Voxelization
  9. ROS Point Cloud Library (PCL) - 6. PassThrough
  10. ROS Point Cloud Library (PCL) - 7. Statistical Outlier Removal
  11. ROS Point Cloud Library (PCL) - 8. KdTree를 활용한 Radius Search
  12. ROS Point Cloud Library (PCL) - 9. KdTree를 활용한 K-nearest Neighbor Search (KNN)
  13. ROS Point Cloud Library (PCL) - 10. Normal Estimation
  14. ROS Point Cloud Library (PCL) - 11. Iterative Closest Point (ICP)
  15. ROS Point Cloud Library (PCL) - 12. Generalized Iterative Closest Point (G-ICP)
  16. ROS Point Cloud Library (PCL) - 13. getVector3fMap()을 통한 효율적인 복사