LIO-SAM—如何构建一副更精准的地图

一般来说,建图算法通常会使用IMU、Lidar、Camera、RTK等传感器数据,通过确定机器人的位置/速度/航向、点云去畸变、点云融合拼接等方法,构建一副完整的地图。地图是否精准,直接决定了机器人后续的定位导航能力。

相信很多做过2D和3D建图的同学都遇到过点云偏移/发散/模糊,地图交错、转弯处角度不对、同一条路或建筑上下重叠、里程累积后与实际位置和距离发生偏差、原点无法回环等现象,其中涉及算法的问题,我们可以单独通过优化算法来解决,本文主要讨论算法以外的部分,有什么方法可以辅助我们让建出更加精准的地图?

一、扫描更全、更稠密的点云

1. 低速

这个很好理解,如果你使用的是16线雷达,扫描的点云有限,那么你就应该让车行驶的一点,这样可以扫到更多的位置,以得到更加稠密覆盖全面的点云。

2. 尽量走直线

在采集过程中,快速行进并且频繁旋转运动,容易造成采集到的特征点稀疏,尤其当周围环境特征较弱的时候,尽量保持直线行驶,以扫描到更多的特征位置,避免因为旋转前进而错过某些特征点

这里不是指不能旋转,当你回环后,需要补充更多细节特征时,完全可以到处旋转采集补充细节。

3. 关键位置重点扫描

当环境特征不明显时,如遇到其中相对有特征的场景,例如路口、柱子、拐角、特殊形状的固定物等,可以在合适的位置停留几秒,或原地旋转充分的扫描周围的独特特征,之后再继续前进。

在特征不明显的地方尽量不要后退,例如无特征的长廊,无法通过点云特征匹配在长廊哪个位置时,应慢速直行。

二、寻求回环闭合,消除累计误差

1. 寻求环路闭合

什么叫回环,即采集区域中出现起点和终点的重合,而其他部分存在多处因障碍物导致不重合的行走轨迹即称之为“环路”。回环可以消除累积误差,让全局地图结构更加准确。

2. 先小闭环,后大闭环

尽量控制机器人行走形成闭合的小环路,完成小环路的闭合之后,逐步向外围拓展进行地图构建。

尽量避免直接尝试较大的环路闭合,若累计误差过大,将直接导致闭环失败。如下图即回环失败。

在闭环成功前,尽量避免走与当前环路无关的路径,由于过程中会产生累积误差,容易导致环路首尾相差过大,导致无法闭环。

3. 选择特征丰富的点作为闭环点

选择激光点特征丰富的区域作为闭环点,避免选长直走廊等特征不足特征相似的位置,这类环境容易导致错误闭环。

4. 闭环点无法闭合时,走重合道路尝试继续闭环

环路回到原点后,保持机器人继续运动,多走重合路径,不要立刻停止移动。

当原计划的闭环点无法闭合,应继续行走重合路径,尝试闭环,避免在闭环前改变路径,尝试新的区域,这有可能导致永久无法闭合。

环路回到起点后,如地图不闭合,则继续行走,直到闭合为止。在机器人位置达到重合后,继续沿着先前走过的路径前行一段时间。10秒以上,2米以上。

5. 先闭环,后完善细节

先完成回环,再在闭合的路径上进一步扫犄角旮旯来完善细节。

在环路闭合前,因追求建图细节进行转圈和往复行走,会导致累积误差过大。如果当前的环境特征较少的话,很容易造成闭环失败或者错误。

三、升级硬件

1. 精准度更高的传感器

200块的IMU跟2000的,对姿态捕获的精准度必然是有差距的。同样,16线的激光雷达与128线,单帧扫到的特征点差别也较大。如果你想什么也不考虑敞开了随便采集,那么建议更换更加精准的传感器。

2. 更多的传感器

当采集十几公里的大地图时,单纯IMU、Lidar、Camera将会产生非常大的累积误差,所建出的地图虽然整体轮廓没问题,也可以实现局部定位,却无法与卫星地图重叠。当尝试使用GPS进行初定位时,将无法匹配到正确的具体地图,因此你需要增加RTK硬件,并在算法中增加GPS因子,以及时的消除IMU/Lidar里程计的长距离累积误差

四、总结

以上方法主要基于业界目前主流的算法思路,在使用较为便宜的传感器时,可以规避算法特点的局限性。你也可以考虑使用更加精准的传感器,同时优化出更加优秀的算法来规避以上问题。

 

yan 25.9.4

发表评论

您的电子邮箱地址不会被公开。