MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square论文阅读

news2025/1/31 11:24:42

1. 摘要

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

2. 代码地址

https://github.com/YuePanEdward/MULLS

3. 引言

  • 提出了一个独立于扫描线的激光SLAM方案,在不同的场景都具有低漂移实时的性能,在论文发布的时候,方法在KITTI榜单上排名前十。
  • 提出了一种高效的点云局部配准算法MULLS-ICP,实现了粗分类几何特征点中点对点(平面、线)误差度量的线性最小二乘优化。

4. 方法论

4.1. 运动补偿

这个方法同样考虑帧内运动, 每个点具有自己的时间戳:

在没有IMU的情况下通过匀速运动差值处理: 

4.2. 几何特征点提取与编码

流程如下图所示,输入是每帧的原始点云,输出是六类带有主方向和法向的特征点。

4.2.1. 双阈值地面过滤

把点云投影到参考平面上,该平面是水平面或者上一帧的地面。这里要求激光雷达最好是水平安装的,如果不是水平安装的,则需要知道其安装角。

把参考平面按照固定的分辨率划分成2D栅格;

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

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

4.2.2. 基于PCA的非地面点分类

对上一步分类出的非地面点做PCA,根据其特征值计算特征的线性,平面性以及曲率,计算公式如下:

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

4.2.3. 邻域类别上下文编码

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

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

4.3. 多尺度线性最小二乘ICP

4.3.1. 多类别的近邻匹配

核心思想还是最近邻查找,创新点在于:

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

4.3.2. 变换矩阵估计

要点有两个:

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

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

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

4.3.3. 特征权重设计

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

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

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

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

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

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

4.3.4. 匹配好坏的度量

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

4.4. MULLS front-end

如上图所示,前端就是前述的几何特征点提取与编码,多尺度线性最小二乘ICP和地图管理模块的组合。每收到一帧激光点云,先提取特征点并进行分类,然后下采样。此外,还利用历史帧的静态特征维护一个子图,该子图的参考位姿是上一帧。利用上一帧的运动来估计当前帧的位姿作为初始位姿,用当前帧的稀疏特征点和上一帧的稠密特征点进行匹配,估计一个粗位姿。然后再以此为初始位姿,用当前帧与子图匹配估计来估计精位姿。然后过滤掉动态物体后将特征点放到子图中。在这一步中,按类别把离群特征点剔除。然后按固定的半径裁剪子图。

4.5. MULLS back-end

使用TEASER全局对准算法来校验邻接边和回环边。用NCC特征编码的余弦相邻度来决定初始关联。用TEASER估计作为初值,然后用图与图的MULLS-ICP进行精细化,得到带有转换关系和信息矩阵的边。高\hat{\sigma}或者O_{ts}低于阈值的边会被删除。识别到一个回环边后,用PGO进行回环较正。

5. 实验结果

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

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

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

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

6. 总结

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

参考文献

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

论文阅读《MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square》 - 知乎 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

状态观测控制器设计与仿真验证

【无限嚣张(菜菜)】:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题…

深度学习炼丹-数据处理和增强

前言一,Normalization 概述 1.1,Normalization 定义1.2,什么情况需要 Normalization1.3,Data Normalization 方法1.4,示例代码 二,normalize images 2.1,图像 normalization 定义2.2&#xff0c…

[XCTF]halo(2019护网杯)(难度2)

目录 前言 一、题目重述 二、解题思路 1.Base64解密 2.难以想到的异或运算 三、flag 总结 前言 注意!攻防世界题目有误!!给出题目与原题不一样但是答案却和护网杯原题答案一样!! 一、题目重述 aWdxNDs0NDFSOz…

NVM Express Base Specification 2.0c - 2 Theory of Operation

The interface has the following key attributes: 在命令提交或完成路径中不需要非缓存/ MMIO寄存器读取;在命令提交路径中最多需要一个MMIO寄存器写或一个64B消息;支持多达65,535个I/O队列,每个I/O队列支持多达65,535个未完成的命令;优先级与每个I/O队列相关联&a…

【MySQL】基于InnoDB的数据库索引

文章目录前言1、索引引入2、索引语法2.1、创建索引2.2、查看索引2.3、删除索引2.4、案例引入3、索引结构3.1、概述3.2、引擎支持3.3、BTree3.4、Hash4、索引类别4.1、分类4.2、过程分析5、性能分析5.1、执行频率5.2、慢查询日志5.3、explain6、最左前缀原则7、索引失效7.1、范围…

2023年学一门IT技术的最佳选择就是软件测试!

互联网行业的不断发展,也增加了IT行业的就业机会,作为最适合零基础小白入行、门槛低的软件测试岗位来说,也受到越来越多转行者的关注,但是耳边依然充斥着各种关于这个行业不好的言论,诸如“行业饱和了,学完…

华为OD机试真题 Python 实现【最长连续方波信号】

目录 题目 思路 考点 Code 题目 输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可, 方波信号高位用1标识,低位用0标识,如图: 说明: 1) 一个完整的信号一定以0开始然后以0结尾,即010是一个完整信号,但10…

【自动化】【autojs】02 autox环境搭建和踩坑

▒ 目录 ▒🛫 导读需求开发环境1️⃣ 环境搭建AutoXadbVSCode插件scrcpy2️⃣ ADB方式实战控制微信启动正确设置autox选项启动服务执行代码停止代码执行3️⃣ 踩坑函数id需要传递全名称app.launch未生效ui.layout报错📖 参考资料🛫 导读 需求…

基于区块链技术的信息服务新架构探讨

【摘 要】为探索区块链技术对信息通信基础架构的影响及实现,在梳理信息技术架构和信息服务架构演进的基础上,分析了区块链新型数字化分布式账本体系赋予数字世界生产关系升级的功能,并基于“云-管-端-边”信息服务架构研究了区块链技术实现信息物理空间中“设备民主”的具体…

EL表达式与JSTL标签库(JSP标准标签库)

EL表达式 EL 全名为Expression Language,是表达式语言。 EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。因为EL表达式在输出数据的时候,要比jsp的表达式脚本要简洁很多。 不需要加任何jar包。不依赖任何其它库。提供了在脚本元素…

《软件开发本质论》笔记——了解价值,然后从可能去做的所有事情中选择那些最重要的去做

目录 一、传统的软件项目分阶段进行 二、根据”挑战性的目标“制订计划,危害性很大 三、推荐随时发现缺陷随时修复 四、 价值是什么 一、传统的软件项目分阶段进行 潜在风险:试图去计划并实现所有的功能特性,这使我们处于不利的境地。我们…

转行互联网,零基础应届生应该选择什么样的岗位作为切入点?

对于想要转行互联网的零基础小白,如果你耐心看完了这个答案,恭喜你已经找到了转行互联网的方法!我不说空的理论,也不讲心灵鸡汤,作为文艺青年,我只说经验,我是工作十三年的互联网老兵&#xff0…

整合第三方登录之微信扫码登录

📂文章目录🎓前言🏷️引入相关依赖🧱操作步骤📔生成微信登录二维码📔获取微信用户信息并实现微信注册登录💗总结🎓前言 前置条件:具备微信开发者资质。 通过微信开放平…

Contest2874 - 【在线编程平台】2022年计算机类数据结构作业14.20221215-1220

目录 问题 A: 大顶堆还是小顶堆? 问题 B: sort by age 问题 C: 统计字母个数 问题 D: 字母排序 问题 E: 算法10-6~10-8:快速排序 问题 A: 大顶堆还是小顶堆? 内存限制:128 MB时间限制:1.000 S标准输入输出 题目类…

数学建模国赛 2020B-穿越沙漠 第二关至第六关思路分享

穿越沙漠第二关至第六关思路 开始讲题之前唠嗑一下: 很感谢所有读者和粉丝对上一篇的第一关解题博文的喜欢,也收到很多人的称赞,我很高兴大家能喜欢我写的东西。 其实这道题的模型在建立之处就是对着六关通用的目标去写的,因为本…

现货黄金时间表怎么安排?

现货黄金交易时间表,最好每一个投资者打印一份出来,放在你的电脑旁边。为什么呢?以前我对现货黄金交易时间表也没有特别关心,为什么在二十四小时的全天候交易要花时间到这里面来呢? 黄金市场是一个全球性的市场&#x…

APP测试技术:ADB——安卓手机测试一座神奇的“桥”

前言: 近年移动互联网好比IT界的一条浩瀚银河,安卓手机测试可谓其中最璀璨的一颗明珠,这里有一座你不得不熟悉的桥--ADB 曾见过不少相关的文章或培训,不乏空谈多,实战少;期望大,效果差。也见过…

idea上传代码到GitHub,每一步附带注意事项(炒鸡炒鸡详细)

1. idea配置git 2. 在idea里面登录自己的GitHub账号 需要到GitHub生成token 点击后,翻到最底部,点击左侧导航栏的Developer settings,到达下面这张图 最后点击最底部的绿色按钮,然后复制token即可。 3. 在创建本地仓库&#xff0…

【强化学习基础】强化学习的基本概念:状态、动作、智能体、策略、奖励、状态转移

文章目录1.状态(State)2.动作(Action)3.智能体(Agent)4.策略(Policy)5.奖励(Reward)6.状态转移(State transition)7.智能体与环境交互…

生成模型6-重参数技巧

Stochastic Back Propagation (Reparametrization Trick) 本章主要介绍的是,神经网络用函数逼近器,那么我们将想想神经网络和概率图模型之间有什么关系呢?能不能用NN去逼近一个概率分布呢?把他们两结合到一…