ICP算法是点云配准算法,给出两组点云,可以计算出两组点云的位姿关系R、t。问题数学表达为:
已知两组点云:
求R、t使下式最小:
(0-1)
1 如果两组点云中的点一一对应,则求解方法很简单。
(1)求解两组点云的质心:
(2)求两组点云去质心坐标:
(3)每点组成矩阵求均值、SVD求解:
(4)R、t结果如下:
2 一般的情况是点云不相匹配,如何求解R、t。
(1)对X中的每个店,在Y中找到距离X最近的点,一一对应
(2)筛选距离最近的若干点
(3)代入公式(0-1)最优化求解得到R、t
(4)利用求解得到的R、t,重新在Y中找距离X最近的点,重复(1)-(4)直到小于一定阈值。
ICP求解很耗时
3 公式证明
最小化方程转化:
开平方化简得到:
可以分为两部分,前半部分仅与R有关,求解可以求解,得到R后根据后半部分求解得到t。因此得到:
开平方得到:
第一项与R无关,第二项由于与R无关,因此求即求
令,即求tr(RH)的最大值。由于:假设矩阵A为正定对称矩阵,则对于任意的正交矩阵B,都有:tr(A)>=tr(B)tr(A)>=tr(B)tr(A)>=tr(B),则:
因此,tr(RH)取最大值时
则: