首页 > F-LOAM:基于激光雷达的快速里程计和建图

F-LOAM:基于激光雷达的快速里程计和建图

文章:F-LOAM : Fast LiDAR Odometry and Mapping

作者:Han Wang, Chen Wang, Chun-Lin Chen, and Lihua Xie

github:https://github.com/wh200720041/floam

编译:点云PCL

本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经允许请勿转载!

公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

同时定位与建图(SLAM)在机器人领域有着广泛的应用,如自动驾驶和无人驾驶等领域。一个好的SLAM系统其计算效率和定位精度是至关重要。现有的基于激光雷达的SLAM研究通常将问题描述为两个模块:点云帧到点云帧匹配和点云帧到地图匹配。这两个模块都是通过迭代计算来解决的,计算量很大。

在本文提出了一个通用的解决方案,旨在为基于激光雷达的SLAM提供一个计算效率高、精度高的框架。具体来说,我们采用了一种非迭代的两级失真补偿方法来降低计算量。对于每个扫描输入,提取边缘和平面特征,分别匹配到局部边缘图和局部平面图,并考虑局部平滑度进行迭代姿态优化。通过深入的实验评估了其在具有挑战性的场景中的性能,包括仓库自动导引车(AGV)的定位和自动驾驶的公共数据集。该方法在公共数据集评估中以10hz以上的处理率获得了很好的定位精度,为实际应用提供了性能和计算成本之间的良好折衷。该方法目前是KITTI数据集排名中最准确、最快的开源SLAM系统之一。

图1:在KITTI数据集上提出的方法的示例(a) 显示序列05上的建图的结果。(b)是通过整合摄像机视图重建的三维道路景观(c) 绘制从F-LOAM到地面的轨迹。

介绍

估计两个点云帧之间变换的最经典方法是迭代最近点(ICP),其中两个点云帧通过最小化点云距离迭代对齐。然而,优化过程中涉及大量的点,计算效率低下。另一种方法是匹配计算效率更高的特征。一个典型的例子是激光雷达里程计和建图(LOAM),它主要思路是提取边缘和平面特征,并通过最小化点到平面和点到边缘的距离来计算姿态。然而,畸变补偿和激光里程计都需要迭代计算,这仍然是昂贵的计算。

本文介绍了一种轻量型激光雷达SLAM,旨在为公众提供一种实用的实时激光雷达SLAM解决方案。提出了一种结合特征提取、失真补偿、姿态优化和建图的新框架。与传统方法相比,本文采用了非迭代的两级失真补偿方法来代替计算效率低下的迭代失真补偿方法。在连续扫描点云帧中,具有较高局部平滑度的边缘特征和具有较低平滑度的平面特征通常是一致的。这些点对于匹配更为重要。为了提高定位精度,在迭代姿态估计中还考虑了局部几何特征。它能够在低功耗的嵌入式计算单元上实现高达20hz的实时性能。

为了证明该方法的鲁棒性,对该方法进行了全面的评价,包括室内和室外实验。与现有的最新方法相比,该方法能够以较低的计算代价获得具有竞争力的定位精度,这是性能和速度之间的一个很好的折衷。值得注意的是,所提出的方法是KITTI基准中最准确和最快的开源方法之一。

主要内容

A 传感器模型与特征提取

机械式三维激光雷达通过旋转一个尺寸为M的垂直排列的激光束阵列来感知周围的环境。它用M个平行读数扫描垂直面。在每个扫描间隔期间,激光阵列在水平面上以恒定速度旋转,同时激光测量按顺时针或逆时针顺序进行。

原始点云匹配方法(如ICP)对噪声和动态对象(如人类)非常敏感,可用于自动驾驶。此外,激光雷达扫描包含数以万计的点,这使得ICP计算效率低下。与ICP等原始点云匹配方法相比,特征点匹配在实际应用中更具鲁棒性和效率。为了提高匹配精度和匹配效率,这里利用点云数据的表面特征和边缘特征,同时剔除了噪声或不太显著的点。如上所述,三维机械激光雷达返回的点云在垂直方向上是稀疏的,在水平方向上是稠密的。因此,水平方向的特征更加明显,在水平方向上进行错误特征检测的可能性较小。对于每一个点云,我们聚焦在水平面上,并通过计算局部曲面的平滑度。

B 运动估计与失真补偿

在LOAM和LeGO LOAM等现有方案中,通过点云帧对点云帧匹配来校正失真,该匹配方法迭代地估计两个连续激光扫描点之间的转换。然而,要找到变换矩阵需要迭代计算,计算效率很低。在本篇论文中提出使用两级失真补偿来降低计算成本。请注意,大多数现有的三维激光雷达能够以10赫兹以上的频率运行,两次连续激光雷达扫描之间的时间通常非常短。因此,我们可以先假设短时间内的角速度和线速度恒定,来预测运动并校正畸变。在第二阶段,在姿态估计过程之后,将重新计算畸变,并且将重新计算的未畸变特征更新到最终的地图。

C 姿态估计

全局特征点地图由边缘特征和平面特征组成,分别进行更新和维护。为了减少搜索的计算量,边缘特征地图和平面特征地图都存储在三维KD树中。通过从边缘和平面特征图中收集附近的点来估计全局线和平面。对于每个边缘特征点, 从全局边缘特征图中计算其附近点的协方差矩阵。当点分布在一条直线上时,协方差矩阵包含一个更大的特征值。将与最大特征值相关的特征向量视为直线方向,直线的位置视为附近点的几何中心。类似地,对于每个平面特征点,这里可以得到一个具有位置和曲面范数的全局平面。注意,与全局边不同,全局平面的范数作为与最小特征值相关的特征向量。

D 建图与失真补偿

全局地图由边缘特征地图和平面特征地图组成,并基于关键帧进行更新。当平移变化大于预定义的平移阈值或旋转变化大于预定义的旋转阈值时,将选择作为关键帧。与逐帧更新相比,基于关键帧的地图更新可以减少计算量。如上所述,为了降低计算成本,基于恒定速度模型而不是迭代运动估计来执行失真补偿。

实验

A  实验设备

为了验证该算法,我们在大尺度室外环境和中等尺度室内环境下对F-LOAM进行了评估。对于大规模实验,我们在KITTI数据集上评估了我们的方法,KITTI数据集是SLAM评估中最流行的数据集之一。然后将该算法集成到仓储物流中。首先在模拟仓库环境下进行了验证,然后在AGV平台上进行了测试。

B 在公共数据集的评估

首先在广泛用于户外定位评估的KITTI数据集上测试了我们的方法。数据集是从一辆装有Velodyne HDL-64激光雷达、相机和GPS的汽车上收集的。大多数最先进的SLAM方法都是在此数据集上进行评估的,例如ORB-SLAM、VINS Fusion、LIMO和LSD-SLAM。为了验证算法的鲁棒性,我们对KITTI数据集的所有序列(包括高速公路、市中心、县道、居民区等不同场景)进行了评估。

                 图3:KITTI数据集序列00-10上不同定位方法的比较。

C 仓储物流实验

在本实验中,我们的目标是建立一个自主的仓储机器人来取代人工主导的制造业。AGV设计用于执行日常任务,如运输。这就要求机器人平台在复杂的环境中主动定位。

1) 仿真环境:首先在一个仿真环境中验证我们的算法。仿真环境建立在Gazebo和Linux-ubuntu18.04上。如图4(a)所示,我们使用虚拟先锋机器人和虚拟Velodyne VLP-16作为地面车辆平台。模拟环境重建了一个复杂的仓库环境,包括各种对象,如移动的工人、货架、机器等。

图4:具有静态和动态对象的模拟仓库环境(a) 露台模拟环境(b) 模拟先锋机器人和Velodyne激光雷达进行评估(c) F-LOAM与地面真值的轨迹比较。

2) 实验:为了进一步验证我们的方法的性能,我们在一个实际的用于智能制造的AGV上实现了F-LOAM。如图5(b-e)所示,仓库环境由三个主要区域组成:自动充电站、物料搬运区和制造站。一个完全自主的工厂需要机器人将材料运送到制造机器上进行装配和收集产品。所有这些操作都需要精确定位,以确保可靠性和安全性。用于测试的机器人平台如图5(a)所示,并配有Intel NUC微型计算机和Velodyne VLP-16传感器。定位和建图结果如图5所示。在这种情况下,机器人自动探索仓库,并使用所提出的方法同时构建地图。

图5:仓库环境中的壤土(a) 用于实验的自动引导车(b-e)为AGV操作构建的先进工厂环境,包括操作机器、自动充电站和存储架。中心图像:仓库定位和建图的F-LOAM结果。

3) 性能评估

本文提出的方法也在装有 VICON 系统的室内进行了测试,以评估其定位精度。机器人被遥控在测试区域内移动。结果如图6所示,其中F-LOAM轨迹和地面真实轨迹分别以绿色和红色绘制。可以看出,我们的方法可以精确地跟踪机器人的姿态。与 VICON 系统提供的地面真值相比,它的平均定位精度达到2厘米。

图6:所提出的方法与地面真值的比较。该方法能精确跟踪机器人的位姿,平均定位误差为2cm

定位精度和计算成本的对比

总结

本文提出了一个计算效率高的LiDAR-SLAM框架,旨在为有限计算资源的机器人应用提供一个良好的解决方案。与传统方法相比,我们提出使用非迭代的两级失真补偿来减少计算量。另外,在连续扫描点云帧过程中,通常会提取局部平滑度较高的边缘特征和平滑度较低的平面特征,这对于扫描帧与地图的匹配更为重要。因此,在迭代姿态估计中也考虑了局部几何特征。为了验证该方法在实际应用中的鲁棒性,进行了深入的实验,包括仿真、室内AGV试验和室外自主驾驶试验。在室内测试中平均定位精度达到2cm,是KITTI数据集中最准确、最快的开源方法之一。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:[email protected],欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

更多相关:

  • 来源:公众号|计算机视觉工坊(系投稿)作者:仲夏夜之星「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、...

  • 点云PCL免费知识星球,点云论文速读。文章:Real-Time LIDAR-Based Urban Road and Sidewalk Detection for Autonomous Vehicles作者:Ern˝o Horváth  , Claudiu Pozna ,and Miklós Unger编译:点云PCL代码:http...

  • 文章:Semantic Histogram Based Graph Matching for Real-Time Multi-Robot Global Localization in Large Scale Environment作者:Xiyue Guo, Junjie Hu, Junfeng Chen, Fuqin Deng, T...

  • 点云PCL免费知识星球,点云论文速读。文章:Robust Place Recognition using an Imaging Lidar作者:Tixiao Shan, Brendan Englot, Fabio Duarte, Carlo Ratti, and Daniela Rus编译:点云PCL(ICRA 2021)开源代码:...

  • 文章:A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays作者:Jens Grubert , Yuta Itoh, Kenneth Moser编译:点云PCL本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PD...

  • (1)关于点云的配准 1.首先给定源点云与目标点云。 2.提取特征确定对应点 3.估计匹配点对应的变换矩阵 4.应用变换矩阵到源点云到目标点云的变换 配准的流程图 通过特征点的匹配步骤 (1)计算源点云与目标点云的关键点 (2)计算关键点的特征描述子(比如:FPFH等等) (3)匹配特征点计算出对应关系 (4)从特征点之间的对应...

  • 特征点的检测 图像的特征点可以简单的理解为图像中比较显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等。 原图 轮廓线(可能的特征点) ORB采用FAST(features from accelerated segment test)算法来检测特征点。FAST核心思想就是找出那些卓尔不群的点,即拿一个点跟它周围的...

  • 摘要:  1.pipeline 模式     1.1相关概念     1.2代码示例  2.特征提取,转换以及特征选择     2.1特征提取     2.2特征转换     2.3特征选择   3.模型选择与参数选择     3.1 交叉验证     3.2 训练集-测试集 切分   4.spark新增SparkSession与Da...

  •   1.1算法流程  假设有m个samples,每个数据有n维。 1. 计算各个feature的平均值,计μj ;(Xj(i)表示第i个样本的第j维特征的value) μj = Σm Xj(i)/m meanVals = mean(dataMat, axis=0) 2. 将每一个feature scaling:将在不同scale上的f...

  • 本文出处:http://blog.csdn.net/xizhibei ============================= PCA,也就是PrincipalComponents Analysis,主成份分析,是个非常优秀的算法,依照书上的说法: 寻找最小均方意义下,最能代表原始数据的投影方法 然后自己的说法就是:主要用于特征...

  • 本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。 理论知识可从这个链接看:http://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/monte-carlo-methods-in-practice/monte...

  • 使用ngNonBindable停止框架渲染计算“{{}}”

    计算1+1= {{ 1 + 1 }}

    计算1+1= {{ 1 + 1 }}

    渲染结果...

  • 利用图形处理器的力量 你会学到: 如何编写Unity计算着色器 如何在后处理图像过滤器中使用ComputeShaders 如何使用ComputeShaders进行粒子效果和群集 如何使用StructuredBuffers在计算着色器和实例表面着色器之间共享数据 使用计算机处理器处理流体模拟 使用计算机开发者创建物理引擎 MP...

  • 那天听了小牛师兄关于CFD应用的四种境界的说法后,小白发现自己连第一种境界都算不上,自己对于CFD还只是停留在做了少数几个案例的基础上,可以说是对其一无所知。不过小白不是那种遇到挫折就退缩的人,他决定沿着黄师姐的方法从软件入手继续学下去。在认真的做完了敲门实例后,小白又认真的做了几个FLUENT实例文档中的案例,虽然说案例都比较简单...

  • 相信很多朋友在利用matlab进行计算时,会遇到循环次数过大,或者是单次计算量过大的问题,比如需要计算的数值阵列数据量过大,利用传统的编程方式,跑一次程序几个小时,都要等的急死了是不是呢?如果遇到这种情况,则可以尝试一下MATLAB并行计算,传统的计算方式都是串行计算。并行计算之所以可行,取决于两方面因素:a)现在大家的计算机是多核的...