1. ICP
ICP的基本思想是给定两簇点云,求解旋转矩阵R和平移向量t,使得两簇点云对应点之间的距离最小。迭代过程如下图所示:
2. PL-ICP
即点线ICP,顾名思义,ICP优化的是点与点之间的距离误差,PL-ICP优化的是点到与其最近的两个点连线的距离差。如下图所示:
3. PP-ICP
这里指point-to-plane ICP,其优化的是source surface上的点与destination surface上对应点切平面的距离,如下图所示:
其代价函数是:
上式中的n代表m点处的法向量。
4. GICP
即Generalized_ICP,其原理是将ICP算法和PP-ICP算法结合到概率框架模型上,通过协方差矩阵起到类似权重的作用,削弱outliers在求解过程中的影响。GICP比ICP适用范围更广,在特定条件下GICP退化成ICP。若存在唯一解,则极小值就是全局最优解,GICP退化成标准ICP算法。 具体使用与ICP类似,PCL中GeneralizedIterativeClosestPoint实现。算法大致原理如下图:
5. CT-ICP
CT-ICP(Continuous-Time Iterative Closest Point)是一种用于三维空间数据对齐的算法,主要应用于机器人和自动驾驶车辆的定位和地图创建。它是传统ICP(Iterative Closest Point)算法的一个变体,其核心思想是在连续时间框架下进行点云配准,这对于处理高速移动中的机器人或车辆尤其有效。以下是CT-ICP的几个关键概念:
连续时间框架:传统的ICP算法通常在离散时间点上处理点云数据。与之相比,CT-ICP在连续时间框架下工作,允许在两个点云捕获之间的任意时刻估计机器人或车辆的位置和方向。
动态点云配准:CT-ICP能够有效处理动态环境中的点云数据。它可以估计和补偿点云中对象的运动,从而提高配准精度。
迭代最近点匹配:与传统ICP类似,CT-ICP通过迭代地找到两个点云之间最近的对应点,并优化机器人或车辆的姿态(位置和方向)来实现最佳匹配。
处理高速运动:在高速移动情况下,传统ICP可能会因为大的运动量导致匹配失败。CT-ICP通过在连续时间内处理点云,有效克服了这一问题。
假设 P(t) 和 Q 分别是连续时间点云和参考点云。算法的目标是找到一条轨迹 T(t),它最小化了以下误差函数:
其中:
p 是点云 P(t) 中的点。q(p) 是与 p 最近的点,在点云 Q 中。
T(t) 是时间 t 时刻的变换矩阵,表示机器人或车辆的姿态。
轨迹 T(t) 可以用多种方式参数化,例如使用B样条曲线。优化 T(t) 通常涉及非线性最小二乘问题的求解。
参考: