https://github.com/MNewBie/PCL-Notes/blob/master/chapter13.md

    精配准大多采用ICP(Iterative Closest Point)算法或者其变种算法完成。ICP算法本质上是基于最小二乘法的最优配准方法。该算法重复进行选择对应关系点对, 计算最优刚体变换,直到满足正确配准的收敛精度要求。
    改进的ICP可以采用GPU对迭代进行加速,或者针对最近点选取上采用Point to Point、Point to Plane、Point to Projection等一些方式完成,或者针对收敛函数做一些改变。
    PCL中也提供了ICP算法和一些改进算法。
    **

    • ICP

    参考:http://pointclouds.org/documentation/tutorials/iterative_closest_point.php#iterative-closest-point

    • GeneralizedIterativeClosestPoint

    论文:http://www.robots.ox.ac.uk/~avsegal/resources/papers/Generalized_ICP.pdf

    1. pcl::GeneralizedIterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> gicp;
    2. gicp.setInputSource(cloud_src);
    3. gicp.setInputTarget(cloud_tgt);
    4. gicp.setMaximumIterations(100);
    5. gicp.setTransformationEpsilon(1e-6);
    6. gicp.setEuclideanFitnessEpsilon(0.1);
    7. gicp.setMaxCorrespondenceDistance(0.01);
    8. pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_final(new pcl::PointCloud<pcl::PointXYZ>);
    9. gicp.align(*cloud_final);
    • Sparse ICP

    参考:http://lgg.epfl.ch/sparseicp