这篇文章接着基础版 ICP 往下走,重点梳理 GICP、NDT 和带尺度 ICP 的差异、适用场景、PCL 中的常见接口,以及工程里到底该怎么选。很多同学不是不会调参数,而是一开始就选错了方法,这篇文章就是为了减少这种试错。
1. 为什么学完 ICP 还不够
上一篇我们已经把最基础的ICP跑通了,但只要真正把点云配准放进项目里,很快就会发现:
- 普通点到点 ICP 对初始位姿很敏感
- 点云噪声一多,配准就容易飘
- 局部平面很多时,点到点误差不够稳定
- 某些数据甚至还存在尺度不一致的问题
所以在工程里,大家通常不会只停留在基础版 ICP,而是会继续看:
GICPNDT- 带尺度的
ICP
它们都还是“迭代优化”这一大类方法,但优化目标、收敛特性和适用数据已经明显不一样了。
2. 先给一个工程化结论
如果你现在只想先知道怎么选,可以先记下面这组经验:
- 两帧点云重叠较好、初值还不错,希望比基础 ICP 更稳:优先试
GICP - 场景较大、结构规整、希望在较粗初值下也能工作:优先试
NDT - 数据来自不同传感器、重建链路或 SfM 流程,存在尺度漂移:考虑带尺度
ICP</