A-LOAM(后端1)基于栅格点云地图构建-算法流程+代码注释

后端描述

  • 不同于前端的scan-to-scan的过程,LOAM的后端是scan-to-map的算法,具体来说就是把当前帧和地图进⾏匹配,得到更准的位姿同时也可以构建更好的地图。由于是scan-to-map的算法,因此计算量会明显⾼于scan-to-scan的前端,所以,后端通常处于⼀个低频的运⾏频率,但是由于scan-to-map的精度往往优于scan-to-scan,因此后端也有着⽐起前端来说更⾼的精度。

地图构成

  • ⾸先需要了解的⼀件事情就是地图的构成,地图通常是当前帧通过匹配得到在地图坐标系下的准确位姿之后拼接⽽成,如果我们保留所有的拼接的点云,此时随着时间的运⾏,内存很容易就吃不消了,因此考虑存储离当前帧⽐较近的部分地图,同时,为了便于地图更新和调整,在原始LOAM中,使⽤的是基于珊格的地图存储⽅式。具体来说,将整个地图分成21×21×11个珊格,每个珊格是⼀个边⻓50m的正⽅体,当地图逐渐累加时,珊格之外的部分就被舍弃,这样可以保证内存空间不会随着程序的运⾏⽽爆炸。

在这里插入图片描述

  • 但是,我们注意到,如果当前位姿远离的珊格覆盖范围,则地图也就没有意义了,因此,珊格地图也需要随着当前位姿动态调整,从⽽保证我们可以从珊格地图中取出离当前位姿⽐较近的点云来进⾏scan-to-map算法,借以获得最优位姿估计。

栅格地图调整

当当前位姿即将到达地图边界的时候,当前珊格地图就必须动态调整,如下图,我们以⼀维case为例

在这里插入图片描述
当前帧即将抵达地图的左边界时,我们需要把当前帧和地图整体右移⼀部分,保证当前帧处于⼀个安全
的位置
在这里插入图片描述
这样相对移动之前,当前帧就处在⼀个“安全的位置”,然后左边会空出来⼀个珊格。

算法流程

按照处理步骤来一点点描述
在 "laserMapping.cpp“的void process() 线程函数中运行,这是一个while循环

  1. 确保的buffer里都有数值,分别为cornerLastBuf、surfLastBuf、fullResBuf、odometryBuf ,以cornerLastBuf为基准,把时间戳小于其的全部pop出去,并判断所有数据的最前的时间戳是否一致,原则上来说都是一样的
  2. 将ROS消息格式转成pcl,雷达的odom结果转成eigen数据格式,把转换后还有剩的cornerLastBuf都pop出去,这是考虑到实时性问题
  3. 根据前端结果得到一个后端的初始值
void transformAssociateToMap()
{
   
	// T_w_curr = T_w_last * T_last_curr(from lidar odom)
	q_w_curr = q_wmap_wodom * q_wodom_curr;
	t_w_curr = q_wmap_wodom * t_wodom_curr + t_wmap_wodom
  • 37
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
LEGO-LOAM是一种用于激光雷达SLAM的方法,它将激光雷达数据转换成3D点云地图,并使用scan-to-map匹配来估计机器人的位姿。在后端优化方面,LEGO-LOAM使用了关键帧优化,通过优化机器人在不同帧之间的位姿,来提高整个SLAM系统的精度和鲁棒性。 以下是一些可能的LEGO-LOAM后端优化方法: 1. 优化关键帧选择:关键帧的选择对于后端优化非常重要。如果选择的关键帧数量过多或过少,都会导致优化效果不佳。因此,可以使用一些方法来自适应地选择关键帧,例如基于运动模型的选择或基于地图密度的选择。 2. 优化优化算法:LEGO-LOAM使用了基于因子图的优化算法,可以尝试使用其他优化算法来改进后端优化效果,例如基于非线性最小二乘的优化算法或基于图优化的优化算法。 3. 优化约束:在LEGO-LOAM中,每个关键帧之间的约束是由scan-to-map匹配生成的。可以考虑增加其他类型的约束,例如IMU、里程计或视觉约束,来进一步提高后端优化效果。 4. 优化点云配准:LEGO-LOAM使用ICP算法来对激光雷达数据进行配准,可以尝试使用其他点云配准算法来改进配准效果,例如基于特征的点云配准或基于深度学习的点云配准。 5. 优化地图表示:LEGO-LOAM使用稀疏地图表示方法来表示3D点云地图,可以尝试使用其他地图表示方法来改进后端优化效果,例如稠密地图表示或基于深度学习的地图表示。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rhys___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值