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