纯LiDAR应对各种复杂环境!KISS-SLAM开源:极简设计亦能SOTA!

点击下方卡片,关注“3D视觉之心”公众号

第一时间获取3D视觉干货

>>点击进入→3D视觉之心技术交流群

就只用LiDAR

同时定位与建图(SLAM)是自主移动机器人在未知环境中导航的基本构建模块。许多 3D LiDAR SLAM 方法采用多种传感器数据融合,例如将 3D LiDAR 读数与惯性测量单元(IMU)或全球导航卫星系统(GNSS)数据结合使用。这种传感器融合方法有助于减少跟踪误差并提高位姿估计的精度。然而,在传感器融合管线中管理多个传感器可能会带来挑战,例如需要精确的传感器间标定和时间同步。此外,近年来的多个 SLAM 系统采用了基于神经网络的地图表示或复杂的体系架构。这些方法通常会对特定环境、传感器配置或运动模式产生过拟合,因此需要大量的参数调整或训练步骤,以提高其在未知场景中的性能。

本文介绍的 KISS-SLAM[1] 仅基于 LiDAR 的 SLAM 管线,并遵循“保持精简和简单”(KISS)原则。我们的主要目标是在尽量减少组件数量和参数数量的同时,提供一个高性能的 SLAM 系统。我们希望通过降低系统复杂性来增强其在不同环境、传感器分辨率和运动模式下的泛化能力。我们的方法不仅对现有的几何 SLAM 系统提出了挑战,甚至也对现代深度学习驱动的解决方案形成竞争。该系统的相同参数配置可以适用于各种具有挑战性的场景,例如自动驾驶车辆在高速公路上的行驶、手持设备的应用以及电动平衡车的导航。此外,我们的方法能够适应不同的扫描模式和扫描分辨率。

本研究的主要贡献在于提出了一种简单但高度有效的 LiDAR SLAM 方法,能够在机器人导航环境时,实时计算其位姿并构建相应的地图。我们明确了 SLAM 系统的核心组件,并对不同模块的影响进行了充分的评估。我们证明,该方法可以在最小化参数调整的同时,实现高度准确且全局一致的位姿估计。

项目链接:https://github.com/PRBonn/kiss-slam

三个关键主张

  1. “保持精简和简单” SLAM 方法在位姿精度上可与最先进的 SLAM 系统媲美,甚至更优

  2. 该系统能够在各种环境、传感器特性和运动模式下,以相同的参数配置准确计算机器人的位姿和地图

  3. 我们可以直接使用其建图输出进行机器人导航

具体方法

本节介绍我们提出的 LiDAR SLAM 系统 KISS-SLAM 的主要组件。给定一个新的 LiDAR 扫描数据,我们首先基于传感器数据估计平台的里程计信息。然后,我们将扫描测量数据与自运动信息结合到局部建图模块。当局部地图构建完成后,我们检查是否存在与先前局部地图的回环闭合。如果检测到回环闭合,我们对局部地图的参考帧执行位姿图优化。最后,我们将生成的地图以 3D 占据网格的形式输出。图 2 提供了我们的管线可视化示意图。

使用 KISS-ICP 进行 LiDAR 里程计估计

为了获得时刻   传感器在里程计坐标系中的位姿  ,我们首先对输入点云   进行去畸变和体素降采样,从而得到点集  。给定前一时刻的 LiDAR 位姿估计   以及基于恒速运动模型预测的增量位姿  ,我们计算当前 LiDAR 位姿的初始估计:

然后,我们使用点到点的迭代最近点(ICP)算法对该估计进行优化。在每次迭代中,我们在源点集   和存储在体素网格中的局部地图点集   之间建立最近邻对应关系,并在配准后更新局部地图。定义点   和变换后点   之间的残差为:

由此,我们构造点到点 ICP 代价函数:

其中   是最近邻对应点的集合。我们通过最小二乘优化最小化该代价函数:

其中   是优化变量,  表示将优化增量应用到当前位姿估计。我们不断迭代执行最近邻搜索与最小二乘优化,直到收敛,从而得到新的位姿估计  。在收敛后,我们使用降采样后的注册点云更新局部地图。

局部建图与位姿图构建

与许多现有方法类似,我们的方法避免维护一个全局地图,而是采用局部地图分割策略。这种设计利用了我们里程计估计的局部一致性,使得在单个地图片段内能得到高精度的短期轨迹。在我们的系统中,每个局部地图   包含以下内容:

  • 关键位姿参考帧 

  • 由里程计估计得到的局部轨迹 

  • 以关键位姿为中心的体素网格  ,包含该局部地图的点云数据。

其中   和   分别表示该局部地图构建的起始与终止时间。

我们首先将降采样和去畸变后的扫描数据集成到当前局部地图,并使用 III-A 章节中的里程计估计进行配准。然后,我们计算传感器估计位姿与当前局部地图关键位姿   之间的总距离。当该距离超过设定阈值   时,我们创建新的局部地图。新局部地图的关键位姿由当前全局位姿估计初始化,该位姿是前一个关键位姿和当前里程计估计的组合。随后,我们重置里程计坐标系,并使用前一个局部地图的空间裁剪版本初始化新的体素网格。

系统维护一个位姿图,其中的节点表示关键位姿锚定的局部地图,边则代表由里程计估计得到的约束。接下来的章节将介绍我们的回环检测方法,并说明如何将其集成到位姿图优化中,以确保全局一致性。

回环检测

在分割局部地图后,我们搜索当前局部地图与之前所有局部地图之间的回环闭合。回环闭合为位姿图提供额外的约束,以校正里程计误差,使轨迹达到全局一致性。

为搜索回环闭合,我们首先识别局部地图中的地面点,并将点云对齐到关键位姿参考帧的 xy 平面。然后,我们通过计算 3D LiDAR 点的投影密度,将局部地图转换为鸟瞰图(BEV)表示,并从中提取 ORB 特征描述子。随后,我们在所有之前局部地图的特征数据库中搜索匹配项。如果发现回环候选,我们采用 RANSAC 进行几何验证,提供 BEV 密度图的二维对齐初始估计 

为了确保检测到的回环能有效修正里程计漂移,我们基于局部地图的 3D 信息进行验证。对于局部地图中的每个体素,我们计算点云坐标的均值   和主成分分析(PCA)得到的法向量  ,形成点云集:

然后,我们应用初始估计   并进行点云配准,得到最终变换  。最后,我们计算 Szymkiewicz-Simpson 重叠系数:

其中   表示将变换   应用于点云   表示基于体素大小的点云交集,  代表点云大小。如果   大于某个固定阈值  (设定为 40%),我们便将   作为回环闭合边加入位姿图优化。

细粒度位姿图优化

在处理所有扫描数据后,我们执行细粒度的位姿图优化。我们固定关键位姿节点,并利用局部地图存储的轨迹数据添加新的节点和边。这样,我们可以在局部地图范围内优化扫描点的位姿,使小的漂移误差在局部轨迹中重新分布。该方法可以看作 Grisetti 等人提出的方法的离线版本。

实验效果

总结一下

KISS-SLAM是一种简单但高效的 LiDAR SLAM 方法。该方法完全基于 LiDAR 扫描数据,无需额外传感器即可计算机器人轨迹和环境地图。我们的方法采用极简设计,能够适用于各种复杂环境,如高速公路行驶、手持设备和电动平衡车。此外,该系统不依赖特定的测距技术或扫描模式,仅假设点云数据是机器人在环境中移动时连续生成的。我们实现并评估了该方法,并与现有技术进行了比较,以支持本文提出的所有核心论点,同时公开了代码。实验表明,我们的方法在性能上可媲美甚至超越目前最先进的 LiDAR SLAM 系统,同时仅需极少的参数调整,并在不同数据集和环境条件下保持良好表现。此外,该系统的输出可以用于机器人导航等下游任务。更重要的是,我们的系统在所有测试数据集中均能以快于传感器帧率的速度运行。我们相信,这项工作将成为未来 LiDAR SLAM 系统的新基准,并为后续研究提供一个高性能的起点。我们的开源代码不仅稳健且简单,而且易于扩展,推动 LiDAR SLAM 技术的发展,并挑战更复杂的系统。

参考

[1] KISS-SLAM: A Simple, Robust, and Accurate 3D LiDAR SLAM System With Enhanced Generalization Capabilities

本文仅做学术分享,论文汇总于『3D视觉之心知识星球』,欢迎加入交流!

【3D视觉之心】技术交流群

3D视觉之心是面向3D视觉感知方向相关的交流社区,由业内顶尖的3D视觉团队创办!聚焦维重建、Nerf、点云处理、视觉SLAM、激光SLAM、多传感器标定、多传感器融合、深度估计、摄影几何、求职交流等方向。扫码添加小助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

扫码添加小助理进群

【3D视觉之心】知识星球

3D视觉之心知识星球主打3D感知全技术栈学习,星球内部形成了视觉/激光/多传感器融合SLAM、传感器标定、点云处理与重建、视觉三维重建、NeRF与Gaussian Splatting、结构光、工业视觉、高精地图等近15个全栈学习路线,每天分享干货、代码与论文,星球内嘉宾日常答疑解惑,交流工作与职场问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值