LeGo-LOAM笔记

1、LeGo-LOAM算法流程、与LOAM区别?

其相比于最为经典的LOAM,实现了更轻量级的激光雷达slam工作。

流程图:

 ros节点图:

 具体改进:

  • 前端数据处理增加基于柱面投影的特征分割,将原始点云中地面点分割出来并对其中的目标点云块实现聚类。
  • 特征提取:从地面点云和目标聚类点云块中提取面特征以及线特征,特征提取更准确。

2、如何实现点云分割?

  • 将无序的点云有序化:在点云分割之前,首先需要将一帧点云投影到一张分辨率为1800*16的图片上(由于VLP-16的水平方向的角度分辨率为0.2°,所以投影图像的水平方向分辨率为 360/2 =1800。由于VLP-16的竖直方向是16根扫描线,所以,投影图像的竖直方向的分辨率就变成了 16)
  • 提取地面点:根据16线激光雷达扫描范围,将[-15°,-1°]扫描线上的点认为是地面点,不参与后续的分割。
  • 基于图像分割的方法,将上述距离图像分为多个类。并去除不能聚类的点(低于30个的类)以提升特征点提取精度。

分割:通过BFS(深度优先遍历)递归进行查找,从[0,0]点开始,遍历它前、后、左、右的4个点,分别进行对比,如果相对角度大于60°,则认为是同一个点云集群。最后分割出来的点云数量大于30个则认为分割有效(实际上大于5个可能也行)。

相邻两个点连线角度小于60, 则不是同一类。其实就是同时考虑了深度以及偏移,深度偏差较大,偏移较小的两个点则认为不是同一类。

 

无人驾驶学习笔记-LeGO-LOAM 算法源码学习总结_ppipp1109的博客-CSDN博客_legoloam


特征点提取:

特征提取的过程:

  • 先对点云进行畸变校正(运动补偿)
  • 接着计算点的平滑程度,然后按照平滑度排序,如果是不平滑的点,则选为线特征(柱子或者墙壁的棱角),如果是平滑的点,则选为面特征(地面,墙面等平面)
  • 同时为了避免选择的特征过于集中在同一个地方,会把360°方向切分为6个区域每个区域平均选择2个线特征和4个面特征

3、详细讲一下LeGo-LOAM激光里程计算法流程 

特征匹配:

  • 其将点云划分为地面点和分割点,分别进行特征匹配。但是这也导致LeGo-LOAM在地面不够平坦时,地面点就不能很好的匹配,也就会直接导致失效。
  • 分别匹配线特征以及面特征,并且两步LM优化

 

嗨害嗨!小知识点:

提问:为什么图优化中要加入核函数?

因为图优化是优化所有边,然而在slam中很容易出现其中一条边误差极大,会影响整个优化的效果。加入核函数可以削弱误差较大的边,防止其掩盖掉其他边。

具体的方式是,把原先误差的二范数度量,替换成一个增长没有那么快的函数,同时保证自己的光滑性质(不然没法求导啊!)。因为它们使得整个优化结果更为鲁棒(所谓鲁棒性,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性),所以又叫它们为robust kernel(鲁棒核函数)。

很多鲁棒核函数都是分段函数,在输入较大时给出线性的增长速率,例如cauchy核huber核等等。

深入理解图优化与g2o:图优化篇 - 半闲居士 - 博客园

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值