介绍

PLICP相比较于普通ICP算法,使用点线之间的距离作为度量,最终找到一个最小化该度量的闭式解(解析解)。 最优结果以平方的速度收敛。相比较于ICP,IDC,MBICP。PLICP更加准确,且需要更少的迭代次数。缺点是对于大的初始化误差无法给出很好的结果。

对于传统的ICP算法,其原理见公式(1),即求解一个位姿使得当前帧通过该位姿变换到参考帧与参考帧间的误差最小化。普通算法无法找到闭式解,由于投影面的任意性以及旋转平移变换的非线性。而迭代之后投影点的计算可以使用上一帧的位姿,最小化当前帧重投影误差。在每一步都可以找到一个闭式解,具体见公式(2)。ICP算法的缺点在于无法解决初始化太差的问题、收敛太慢、外点频繁、不适合概率框架。

该文章使用点线距离作为度量,\(n_i\)为投影点所在平面的法向量,点线度量公式:

公式3

具体算法

  1. 通过当前估计的位姿(初始化为\(q_0\),可以从里程计中获取),计算第二帧点在第一帧下映射的位置。公式(4)。
  2. 对于每一个映射过去的点,在第一帧中找到两个最近的点,这两个点可以构成一条线段。
  3. 使用修剪程序除去外点(文献9)
  4. 构建误差函数,最小化点到线段之间的距离,优化出新的位姿(公式5)

关于二阶收敛速度:

文献10中已经证明了ICP算法是一阶收敛的(公式6):误差一直降低,存在局部最小值。PLICP的收敛和高斯牛顿法相似(公式7)。

剩下的部分就是一些证明了。

A

既然是闭式解,为什么是迭代优化的方法,这不是数值解?

找到最近点对应的线段后,怎么到法向量\(n_1\)。

最新文章

  1. (2)从实际项目谈起,基于MEF的插件框架之总体设计
  2. 【LeetCode OJ】Construct Binary Tree from Preorder and Inorder Traversal
  3. css预处理语言的模块化实践
  4. 基础复习 关于JS
  5. 【转】const 是左结合的,若左边为空,则再向右结合
  6. OpenGL中各种坐标系的理解[转]
  7. 20150511---Timer计时器(备忘)
  8. HDU 1269 裸奔的强联通分量
  9. Keil C51汉字显示的bug问题(0xFD问题)
  10. asp.net 获得客户端 mac 地址
  11. java中方法的定义
  12. 6.while loop
  13. SpringCloud入门1-服务注册与发现(Eureka)
  14. html标签详解
  15. 【5】-阿里面试题android网络图片加载优化
  16. 20165306 Exp1 PC平台逆向破解
  17. 在安卓手机上通过虚拟机运行Windows XP
  18. 城市经纬度 json 理解SignalR Main(string[] args)之args传递的几种方式 串口编程之端口 多线程详细介绍 递归一个List<T>,可自己根据需要改造为通用型。 Sql 优化解决方案
  19. 20175227张雪莹 2018-2019-2 《Java程序设计》第五周学习总结
  20. 【391】栈与队列,Python实现

热门文章

  1. TVM将深度学习模型编译为WebGL
  2. 字符识别OCR原理及应用实现
  3. TensorFlow分布式详解
  4. TensorFlow六种激活函数
  5. CUDA C++程序设计模型
  6. 20 岁发表 SCI 的学霸,梦想用算法改变世界
  7. pytest初始化与清除(一)
  8. 盘点用jQuery框架实现“for循环”的四种方式!
  9. .NET Core/.NET5/.NET6 开源项目汇总2:任务调度组件
  10. 终于明白为什么要加 final 关键字了