热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MULLS:一种基于多尺度线性最小二乘的激光SLAM算法

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达作者丨paopaoslam来源丨泡泡机器人SLAM标题:MULLS:VersatileLiDARS

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

d5ac56ea61a28251061f240420a90482.png

作者丨paopaoslam

来源丨 泡泡机器人SLAM

标题:MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square

作者:Yue Pan, Pengchuan Xiao , Yujie He, Zhenlei Shao and Zesong Li

来源:ICRA2021

编译:玉玺

审核:lionheart

305b57290a9b0f33e301bd25c5acaa44.png

摘要

47ad94c83272bee9babdba38d5236446.png

随着自动驾驶与移动建图的快速发展,实际项目中对现成的激光SLAM建图方案的需求也越来越强烈,并且要求解决方案适用于各种不同规格的激光雷达与各种复杂场景。因此,我们提出了MULLS,一种高效,低漂移,多功能的3D激光SLAM系统。算法的前端使用双阈值地面分类与主成分分析,从每帧点云中提取粗略的特征点(地面,立面,柱,横梁等);然后使用本文提出的线性最小二乘最近邻迭代算法对当前帧与局部地图配准;在不同的特征类中使用点到点(点到面,点到线)的距离联合建立估计方程来估计运动状态,配准之后的特征点会更新到局部地图中。后端通过对多个局部地图之间进行多级位姿图优化来降低前端里程计的误差;本文的实验涵盖了室内室外的场景、七种不同的激光雷达,三个数据集总共超过100000帧点云。在KITTI的测试中也证明MULLS是性能最好的实时激光SLAM之一。

代码已开源: 

https://github.com/YuePanEdward/MULLS

283845e5256903eaaf9b08ad4476a142.png

MULLS-SLAM效果示意图

(a)单帧激光(b)MULLS提取的特征示意图(地面,立面,立柱,横柱)(c)配准后的局部地图(d)局部地图特征(e)子地图之间的TEASER配准(f)闭环约束的边(f)最终生成的地图与轨迹

f054ce2eaf44be0434ca9e13c47f4623.png

特征提取

0006b3b0750b6e9b57fbb089663a15af.png

(一)地面特征提取。采用双阈值滤波算法,默认激光雷达是水平安装(如果不是水平,则需要标定出激光与地面的角度),分以下几步:

1、将激光点云投影到激光雷达所在水平面上;

2、将水平面按照固定的分辨率划分成2D栅格;

3、统计每个栅格的最小高度hmin,以及其3*3邻域的最小高度hneimin,分别设定阈值dh1,dh2,如果一个点的高度超过所在栅格的最小高度dh1或者所在栅格的最小高度超过3*3邻域的最小高度dh2,则改点被判定为非地面点,否则为初始地面点Grough,公式如下:

896580ec68ede177371cf8ebcfe54758.png

4、对每个栅格内的初始地面点做RANSAC平面拟合得到最终的地面点;

(二)非地面特征提取。对上一步分类出的非地面点做PCA,根据其特征值计算特征的线性

,平面性以及曲率,计算公式如下:

fc2d50442d7baf673c42dadc924d63f6.png

结合方向向量v与法向量n,特征点可以被分为立面F,屋顶面R,柱P,横梁B,顶点V。为了得到更准确的特征点,分别对线特征(P,B),面特征(F,R)以及顶点V使用非极大值抑制(NMS)算法。

(三)特征编码。对提取的特征进行了一个“邻域分类编码”(NCC),其实主要思想是计算不同特征在邻域中的占比,以及归一化强度与高程。公式如下:

1e7789968ccd7b538c2be9d2e3d9e80e.png

NCC作为特征会在后面的全局后端优化中使用到。

2ceae592867227740aff1f98a10f71ab.png

多尺度线性最小二乘ICP

bbf4346ac63fc6bca3ea98c20a73d569.png

这是本文提出的一种基于多类别点云的ICP方法,主要流程如下图所示:

1e2a822699c56847c50a9fc79e6e39cf.png

几个关键步骤如下:

(一)多类别的近邻匹配。核心思想还是最近邻查找,创新点在于:

1、近邻搜索时在每个类别中分开搜索;

2、对于面点、线点在最近邻搜索时分别加入了法向量、方向向量一致性检测,即过滤掉方向差别过大的特征匹配点。

(二)变换矩阵估计。要点有两个:

1、对于不同的特征分别采取了不同的残差计算方法,比如顶点特征V采取点到点距离,面特征(G,F,R)采用点到面距离,线特征(P,B)采取点到线的距离。如下图所示:

e406620da8d077384b1fc36a6646eb5d.png

2、对于不同特征采用不同的权重,变换矩阵计算公式如下:

dcfb1914328ac5babb4dfc1987a74233.png

其中,w为权重。接下来介绍权重的设计。

(三)特征权重设计。特征的权重wi由三部分权重相乘,分别是:残差权重wi(residual),平衡权重wi(balanced),强度权重wi(intensity)。

1、残差权重。残差权重固定为pseudo-Huber核函数,如下所示(k=1)

f90ff0c9d59dfe32418e570d5c0e1b6d.png

其中,ei为归一化后的残差。

2、平衡权重。由于不同类别特征数量的不同,如果不做平衡会导致残差计算时对x,y,z方向的影响不一致,因此对不同类别的特征设计了平衡权重:

203f202af3a6e5cb8252647305810be2.png

G,R分别表示地面点与水平面点,由于实际中该两类点数量较多,因此可以认为是对此两类点的降权处理。

3、强度权重。强度差别较大的点降权,如下所示:

b0dcad89a193753c892510aade65d126.png

(四)匹配好坏的度量。最终使用点云的后验标准差,后验信息矩阵以及非地面点的覆盖率来衡量此次匹配的好坏,公式如下:

2c85a41756277d0d12cfaf4a1968e43d.png

f994083f0e9b808ccc0917396f0c4f02.png

算法框架

8054340a34638fa4ec135ca9a165cf8e.png

90404436ced45bab8674e4eb977b674a.png

MULLS-SLAM算法框架如图5所示。可见算法前端主要做特征提取、帧帧匹配,帧图匹配,而算法后端主要做回环检测与图图匹配。后端中使用第一部分提到的特征编码做回环检测,图图匹配中使用TEASER方法做初始匹配,使用MULLS-ICP做精匹配。

e471b1443c27e1bb2ff0275b4c9393c9.png

实验结果

76723e43a1e3846c7a20830c28cda01f.png

作者选取了KITTI,MIMAP,HESAI三个数据集,包含室内外不同的场景以及7种不同的激光雷达进行了实验,实验结果如下表所示:

2487d40013fcec2afc92747bdaaa9ea9.png

可以看到在满足实时性的基础上,MULLS-SLAM精度与现有算法比都取得了接近最优的水平。同时作者还分析了不同的特征以及权重对效果的影响。

4c1103ba306271dd73509392f3ea88c4.png

b27323c580dd9b5e1383f093d18808a4.png

表3种可以看到顶点特征其实会导致相对精度降低,因此作者也提到了在实际中顶点的特征只用在后端的回环检测与匹配中。另外横梁B特征虽然会导致一定程度的位置精度的损失,但是会抑制姿态的发散。

表4中可以看到当三种权重都有效时效果最优,也证明了权重设计的有效性。

3426a2263877305f588b476b833ad1bd.png

总结

90b80a1f73ad385f496aecaf16531fa9.png

本文提出了一种通用的MULLS-SLAM纯激光雷达建图的方法,设计了多尺度最小二乘ICP匹配算法MULLS-ICP,并且通过实验证明了该方法在室内外以及不同激光设备下都可以在保证实时性的同时保证较低的漂移,证明了该算法的有效性。

Abstract

The rapid development of autonomous driving andmobile mapping calls for off-the-shelf LiDAR SLAM solutionsthat are adaptive to LiDARs of different specifications onvarious complex scenarios. To this end, we propose MULLS, anefficient, low-drift, and versatile 3D LiDAR SLAM system. Forthe front-end, roughly classified feature points (ground, facade,pillar, beam, etc.) are extracted from each frame using dual-threshold ground filtering and principal components analysis.Then the registration between the current frame and the localsubmap is accomplished efficiently by the proposed multi-metric linear least square iterative closest point algorithm.Point-to-point (plane, line) error metrics within each point classare jointly optimized with a linear approximation to estimatethe ego-motion. Static feature points of the registered frame areappended into the local map to keep it updated. For the back-end, hierarchical pose graph optimization is conducted amongregularly stored history submaps to reduce the drift resultingfrom dead reckoning. Extensive experiments are carried out onthree datasets with more than 100,000 frames collected by seventypes of LiDAR on various outdoor and indoor scenarios. Onthe KITTI benchmark, MULLS ranks among the top LiDAR-only SLAM systems with real-time performance.

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

b5c4f4adad6d0ed1d0a6cea5d13aaa7f.png

▲长按加微信群或投稿

9915546132451437eff85f967c0bf8c0.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

c9bb84191bdab4e47c6d020168af4d96.png

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  



推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 校园表白墙微信小程序,校园小情书、告白墙、论坛,大学表白墙搭建教程
    小程序的名字必须和你微信注册的名称一模一样在后台注册好小程序。mp.wx-union.cn后台域名https。mp.wx-union.cn ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • AI行业的下一个风口是医疗?创业者们这样说
    ▼点击上方蓝字关注网易智能为你解读AI领域大公司大事件,新观点新应用编者按:4月10日,鲸准AI产业价值峰会在北京举行。本次大会除了邀请A ... [详细]
author-avatar
dbvg2q
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有