PLICP
介绍
PLICP相比较于普通ICP算法,使用点线之间的距离作为度量,最终找到一个最小化该度量的闭式解(解析解)。 最优结果以平方的速度收敛。相比较于ICP,IDC,MBICP。PLICP更加准确,且需要更少的迭代次数。缺点是对于大的初始化误差无法给出很好的结果。
对于传统的ICP算法,其原理见公式(1),即求解一个位姿使得当前帧通过该位姿变换到参考帧与参考帧间的误差最小化。普通算法无法找到闭式解,由于投影面的任意性以及旋转平移变换的非线性。而迭代之后投影点的计算可以使用上一帧的位姿,最小化当前帧重投影误差。在每一步都可以找到一个闭式解,具体见公式(2)。ICP算法的缺点在于无法解决初始化太差的问题、收敛太慢、外点频繁、不适合概率框架。
该文章使用点线距离作为度量,\(n_i\)为投影点所在平面的法向量,点线度量公式:
公式3
具体算法
- 通过当前估计的位姿(初始化为\(q_0\),可以从里程计中获取),计算第二帧点在第一帧下映射的位置。公式(4)。
- 对于每一个映射过去的点,在第一帧中找到两个最近的点,这两个点可以构成一条线段。
- 使用修剪程序除去外点(文献9)
- 构建误差函数,最小化点到线段之间的距离,优化出新的位姿(公式5)
关于二阶收敛速度:
文献10中已经证明了ICP算法是一阶收敛的(公式6):误差一直降低,存在局部最小值。PLICP的收敛和高斯牛顿法相似(公式7)。
剩下的部分就是一些证明了。
A
既然是闭式解,为什么是迭代优化的方法,这不是数值解?
找到最近点对应的线段后,怎么到法向量\(n_1\)。
PLICP的更多相关文章
- plicp 点云迭代最近邻点配准法
输入参数 点云A的极坐标集合 点云A对应Lidar所在pose 点云B的极坐标集合 点云B对应Lidar所在pose Features 根据两个点云的弧度关系确定找点的起始位置 根据两个点云的弧度关系 ...
- 【High-Speed and Accurate Laser Scan Matching Using Classified Features】
所谓的"分类特征",就是把特征分成 1. 旋转特征:用直线表示 2. 平移特征,用撕裂点和临界点表示 最大的创新点 应该就是下面的分组吧 匹配的时候,用RANSAC 或者动态规划, ...
- [SLAM]2D激光扫描匹配方法
1.Beam Model 2.Likehood field for k=1:size(zt,1) if zt(k,2)>0 d = -grid_dim/2; else d = grid_dim/ ...
- 点云匹配和ICP算法概述
Iterative Closest Point (ICP) [1][2][3] is an algorithm employed to minimize the difference between ...
- icp算法的一些参考资料
1.综述:迭代最近点算法综述,介绍了svd分解和四元数法,其中 svd法:http://blog.csdn.net/kfqcome/article/details/9358853 四元数法:http: ...
- Gmapping笔记
2D-slam 激光slam: 开源代码的比较HectorSLAM Gmapping KartoSLAM CoreSLAM LagoSLAM 作者:kint_zhao 原文:https://blog. ...
随机推荐
- Ascend Pytorch算子适配层开发
Ascend Pytorch算子适配层开发 适配方法 找到和PyTorch算子功能对应的NPU TBE算子,根据算子功能计算出输出Tensor的size,再根据TBE算子原型构造对应的input/ou ...
- GPU加速计算
GPU加速计算 NVIDIA A100 Tensor Core GPU 可针对 AI.数据分析和高性能计算 (HPC),在各种规模上实现出色的加速,应对极其严峻的计算挑战.作为 NVIDIA 数据中心 ...
- NVIDIA安培架构
NVIDIA安培架构 NVIDIA Ampere Architecture In-Depth 在2020年英伟达GTC主题演讲中,英伟达创始人兼首席执行官黄仁勋介绍了基于新英伟达安培GPU架构的新英伟 ...
- httprunner 2.5.7 下.env 文件环境变量的使用及debugtalk的使用,对test的参数化及执行
一.httprunner 2.5.7 下.env 文件的使用 1..env 文件配置如下: 2.debugtalk.py 编写如下: 在debugtalk.py中增加开始和结束执行语句: 3.需要做 ...
- pycham_编码格式设置,处理打印log乱码,处理读取配置文件报错
一.打印日志乱码,处理设置如下: 二.配置文件读取方法因为gbk编码配置后需要同步修改 原报错信息:
- jemeter压测, 高级应用: 发1万个请求,每个请求参数都不同, 使用CSV数据文件配置
今天接到一个压测任务, 数据源需要自己从测试环境库中取, 并且使用jemeter 请求, 每个请求参数都不相同 这里使用jemeter的 CSV数据文件来配置: 这样配置好后, 开始发送请求: csv ...
- 深入理解java虚拟机笔记Chapter3-内存分配策略
内存分配策略 新生代和老年代的 GC 操作 新生代 GC 操作:Minor GC 发生的非常频繁,速度较块. 老年代 GC 操作:Full GC / Major GC 经常伴随着至少一次的 Minor ...
- Kubernetes 实战——发现应用(Service)
一.简介 服务:一种为一组功能相同的 Pod 提供单一不变的接入点的资源.服务 IP 和端口不会改变 对服务的连接会被路由到提供该服务的任意一个 Pod 上(负载均衡) 服务通过标签选择器判断哪些 P ...
- 【读书笔记】《C语言 从入门到精通》(第三版)笔记
C语言,上学的时候都没学好,没想到现在却靠它吃饭.因为对C语言还是比较熟悉,所以买这本书是用来当"字典"用的.所以下面的笔记不会有很基础的内容. 1.书籍介绍 2.结构体 3.[C ...
- 【Azure 机器人】微软Azure Bot 编辑器系列(5) : 机器人的卡片式回复 (The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...