Maplab 2.0发布:多传感器融合的SLAM框架,支持多机器人、语义回环检测功能

news2024/9/22 15:42:03

摘要

将多种传感器和深度学习集成到SLAM系统中是当前研究的重要领域。多模态是一块跳板,既可以在挑战场景下增强鲁棒性,又可以解决不同传感器配置的多机系统建图问题。Maplab 2.0提供了一个更加通用的开源平台,最初的Maplab用于创建和管理视觉惯性地图。Maplab 2.0集成了多种新模态,例如LiDAR、GPS、车轮编码器、语义对象等。除此之外,还提供了易于集成外部组件的接口,例如添加不同视觉特征或闭环约束。这些功能使新平台非常适合作为基于深度学习的特征点检测和闭环的研究工具。该系统是十分灵活的,本文列出如下三点应用:

  • 大尺度(10km)多机次建图;
  • 集成非视觉路标;
  • 在建图框架中使用基于语义目标的回环检测模块。

1. 引言

maplab 2.0提供了一个开源平台,用于多机多次数据采集的多功能多模态建图。原来的maplab就是一个开源工具箱,只用于创建和管理视觉惯性地图。maplab 2.0对其进行了扩展,集成了多模态,如激光雷达、GPS、轮速计、语义目标等。而且还可以以此为模版继续扩展到其它传感器模态。maplab 2.0也提供了接口,用于集成外部组件,例如增加任意数量的不同的视觉特征或回环约束。这些功能使该平十分适合开发与研究深度学习特征检测器与闭环检测。由于加入了子地图管理功能,在线协作 SLAM可以在 Maplab 2.0中使用,支持多个机器人在线构建、优化和协同定位。这是通过一个集中式服务器节点实现的,该节点聚合来自多个机器人的数据,并且可以将协作构建的地图回传给机器人以提高性能。

图1 Maplab2.0:一个灵活且通用的多机器人和多模态SLAM框架。可以集成多个机器人(彩色线)、视觉地图点(彩色点)和 LiDAR扫描(黑色点)。

主要贡献

(1)开源的、多模态和多机器人SLAM框架,与其他现有方法相比,该框架允许集成和融合大量不同的数据。

(2)一个在线协作建图系统,它利用子地图和中央服务器来合并和分发全局一致的、特征丰富的地图。

(3)为自定义特征点、场景描述符和闭环集成接口。实验展示了它们在基于语义对象的闭环实验中的灵活性。

2. 相关工作

表1:优秀的建图框架的特性对比(Diff. sensors:地图可以用不同的传感器配置;Ext.:外部源;LC.:闭环检测;∗:IMU偏置已经随位姿提供)

尽管存在很多SLAM框架,它们主要聚焦于特殊的传感器或者特殊的环境配置,而且对其进行改变是很困难甚至不可能的。据我们所知,在现存的方法中,maplab 2.0是最为灵活的建图与定位框架,它不仅支持多样化的传感器,而可以无缝适配新需求。

3. MAPLAB 2.0框架

maplab 2.0框架的通用结构如图2所示。整体框架可以被分为三个主要的组件:地图结点、地图服务和离线控制台接口。

图 2:maplab 2.0框架及其三个主要组件的概述,即建图节点、集中式服务器和离线控制台。

A. 地图结构

我们将地图表示为一个或多个任务的集合,其中每个任务都基于单个连续的建图线程。地图的底层结构是一个由顶点和边组成的因子图,其中包含所有机器人信息和不同任务的测量值。机器人在某个时间点t的状态被参数化为一个顶点(姿态、速度、IMU偏置)。地标也表示为图中的顶点,其状态定义为3D位置。3D地标可以用作环境中具有3D位置的任何事物的基础表示,例如,视觉地标、3D 地标,语义对象。

1) 约束:顶点通过不同类型的边连接,这些边基于观测(例如,关键点、 imu测量和闭环)对其状态变量施加约束。IMU边包含连接顶点之间的预积分,因此仅连接时间顺序的顶点。相对位姿约束边在两个顶点之间施加刚性6 DoF变换,并用于表示相对运动(即里程计)或跨越较大时间间隔或任务的闭环。为观测分配协方差以量化测量噪声,通常将其设置为预定义的常数值。我们认为闭环边是相对位姿约束边的特例。为了提高鲁棒性并考虑异常值,可以将闭环边缘作为可切换约束。如果某些边与其他约束冲突太多,则优化器可以从图中丢弃这些边。最后,边将地图点连接到观察到的姿态,并根据估计和观察到的地标位置之间计算残差。

在优化过程中,约束也可以直接施加在所选顶点的内部状态上。例如,绝对约束以给定的不确定性在顶点上约束全局3D位置,允许我们整合GPS 测量或绝对基准地标观察。

2) 地标: 在Maplab 2.0 中,增加了同时将任意数量的不同类型的要素包含到地图中的功能。既可以使用ORB特征/LK光流跟踪,也可以自己提供轨迹信息。此外,扩展了匹配器以支持浮点描述符,能够使用最新开发的描述符实现闭环。浮点描述符使用近似最近邻(FLANN)的快速库进行匹配。

Maplab 2.0还可以用3D观测处理地标。来自RGB-D 相机的视觉特征具有相关深度,或者来自直接在3D点云中检测特征。显着的区别是这些地标不是使用多视图几何来三角化的。类似地,误差项不是基于重投影误差,而是基于观察到的3D位置与地标的3D位置之间的欧氏距离。

B. 建图节点

建图节点在每个机器人上运行,并使用外部输入源和原始传感器数据以多模态因子图的形式创建地图。在地图构建期间使用6 DoF里程计输入来初始化底层因子图的机器人姿势顶点。映射节点与里程计方法无关,因此可以在各种机器人和传感器设置中轻松使用。Maplab 2.0可以在运行时合并任意数量3D地图点。此外,可以无缝添加相对约束(例如里程计或外部闭环)和绝对6 DoF约束(例如GPS)。

C. 地图服务器

地图服务器支持协作和在线建图。作为获胜团队 (CERBERUS) 多机器人测绘系统的一部分,该方法已成功部署在DARPA地下挑战赛中。服务器节点可以在专用机器上运行,也可以在机器人上运行。建图节点将它们的地图以规则的间隔划分为块,称为子图。子图立即传输到地图服务器,并连接到先前从同一机器人传输的相应子图。通过在拆分时将每个子图的最后一个顶点复制到下一个子图中来完成的。这避免了特征轨迹的不连续性。并行地,服务器通过闭环检测将来自不同机器人的地图到全局一致的地图。

1)子图预处理:传入的子图不直接合并,而是先单独处理,以保证局部精度。其中包括局部地图优化、特征质量评估和地图内闭环。

2)多机器人处理:地图服务器持续在全局多机器人地图上运行并执行可配置操作(闭环、特征质量评估、捆绑调整、可视化、绝对约束异常值拒绝等)。

D. 离线控制台

离线控制台源自原始的maplab,这里对新功能进行了适配,例如传感器和模态。

4. 用例

A. 验证和比较

我们使用 HILTI SLAM Challenge 2021数据集提出的框架与最先进的方法进行比较。对于maplab 2.0,我们可以使用数据集中提供的五个摄像头、ADIS IMU 和 OS0-64 LiDAR。我们使用三种不同的里程计展示Maplab 2.0的三个用例:ROVIO 、OKVIS和 FASTLIO2。除了标准的BRISK描述符外,我们还使用外部接口包括SuperPoint和SIFT。

表 1显示了与其他SLAM 基线(LVI-SAM、ORB-SLAM3、RTAB-Map 和maplab1.0)的性能。Maplab 2.0 是唯一能够使用所有五个相机进行环路闭合的方法。在所有视觉的方法中,显着优于基线。所有方法计时在Intel i7-8700和Nvidia RTX 2080 GPU的机器上。

表1:绝对位置误差 (APE)RMSE比较。SP + B代表SuperPoint和BRISK视觉特征。图标代表使用的传感器:单目、多摄像头、LiDAR 和 IMU

B. 大规模多机器人多会话建图

使用带有五个摄像头的手持设备和一个Ouster OS0-128 记录了23 次个人跑步,其中包含大约10 公里的两个多小时的数据以及多个室内-室外过渡。每次运行都使用OKVIS里程计。图3展示了多机器人地图。

定量评估我们在公共EuRoC基准上测试多机器人服务器。使用建图服务器、ROVIO在多机器人实验中同时运行所有11个序列。实现了0.043 m的平均RMSE,并行地图服务器只需要3分27秒即可完成所有操作。

C. 在投影激光雷达图片上的视觉跟踪

为了展示maplab 2.0中路标系统的灵活性,我们集成了三维激光雷达特征点。我们由[45]获得灵感,把激光点云投影到二维平面。使用对数尺度归一化激光雷达的距离和强度值,然后使用Mertens融合合并这两个通道。缺失的像素用邻近像素的值来补。一个二维投影的示例图像如图5所示,其旁边一张相同视角的相机图片展示其环境。然后把激光雷达当作视觉图片来处理,使用SuperPoint和SuperGlue来提取特征点并跟踪,如图5所示。由于每个特征观测,都有来自激光雷达的深度信息,这使用初始化和闭环更加有效。最后,我们使用激光雷达特征点来标出HILTI 2021数据集序列中的一个,其可视化结果见图3d。用墙是否更直的角度看,激光雷达路标点比视觉特征点更为精确。但是,由于点缺失和环境中有移动物体,激光雷达图片噪声会造成外点。

D. 基于语义的地图

本节通过使用语义信息扩充地图并说明其在现实场景中的潜在应用。使用Mask R-CNN 在图像中检测语义对象,对于每次检测,我们使用NetVLAD提取掩码实例分割的描述符。所有检测到的对象都使用Deep SORT进行跟踪,语义对象也是3D 地标,但具类标签,可用于语义环路闭合检测。

我们使用 RGB 惯性传感器在具有多个对象的办公环境中收集了室内数据集。我们两次观察带有物体的办公桌,同时留出一些时间来累积漂移(见图4a和4c)。图4b 显示了语义地标集群和检测到的回环候选。将语义对象的闭环边添加到全因子图后,漂移显着减少,改进后的图如图4c 所示。

5. 结论

本文介绍一个研究平台,用于多模态多机建图,支持在线和离线处理地图。我们展示了maplab 2.0在大尺度SLAM数据集上的优异性能。我们推荐的建图框架的灵活和多模态设计可以促进不同机器人应用领域的研究,并在研究所和工业上的重要的影响。

参考文献

maplab 2.0 – A Modular and Multi-Modal Mapping Framework

Maplab 2.0发布:多传感器融合的SLAM框架,支持多机器人、语义回环检测功能(文末附源码)

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

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

相关文章

5-3中央处理器-数据通路的功能和基本结构

文章目录一.功能二.基本结构三.数据流向(一)内部单总线方式1.寄存器之间的数据传送2.主存与CPU之间的数据传送3.执行算术或逻辑运算(二)专用数据通路方式一.功能 数据在功能部件之间传送的路径称为数据通路。路径上的部件称为数据…

合宙ESP32C3上手使用

概述经典款是有ch343 ttl 转usb 需要安装驱动 GPIO20/21新款使用usb 直连不需要驱动 USB GPIO18/19ESP32C3 是ESP-RISC-V CPU 是基于 RISC-V ISA 的 32 位内核,包括基本整数 (I),乘法/除法 (M) 和压缩 (C) 标准扩展。ESP-RISC-V CPU 内核具有 4 级有序标…

【蓝桥杯】简单数论1——GCDLCM

GCD 最大公约数Greatest Common Divisor(GCD):整数a和b的GCD是指能同时整除a和b的最大整数,记为gcd(a,b)。由于-a的因子和a的因子相同,因此gcd(a, b) gcd(al, |bl)。编码时只关注正整数的最大公约数。 GCD性质 (1) gcd(a, b) gcd(a, ab) …

一、python准备工作篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. python官网 2. 检查是否安装完毕 3. pycharm官网 5. phcharm更换主题 6. 新建第一个python文件 7. pycharm字体大小设置 8. 设置快捷键 设置字体大小 ​​​​​​​9. 安装中文…

Python机器学习:假设检验

方差分析这部分内容还不是很理解,在这里先做一个笔记,以后有时间再回过头来改一改。 用到的数据集→\rightarrow→Iris 什么是假设检验? 假设检验就是利用样本数据对某个事先做出的统计假设,再按照某种方法去检验,最后…

CSS样式基础内容2

目录 Emmet语法 快速格式化代码 CSS的复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 链接伪类选择器 focus伪类选择器 CSS元素显示模式 块元素 行内元素 行内块元素 元素显示模式转换 案例-简洁版侧边栏 单行文字垂直居中 CSS的背景 背景图片 方位名词…

【蓝桥云课】最大公约数与最小公倍数

一、最大公约数gcd(a,b) 引例: a24,其因子有1、2、3、4、6、8、12、24 b15,其因子有1、3、5、15 最大公约数gcd(a,b)gcd(24,15)3 欧几里得辗转算法: a max(a,b); b min(a,b); while(b>0){t a%b;a b;b t; }运算过程&…

postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数

一、 table_relation_vacuum函数 1. 函数定义 前篇最后(https://blog.csdn.net/Hehuyi_In/article/details/128749517),我们提到了table_relation_vacuum函数(tableam.h文件),本篇继续学习。 如前面所说&a…

人大金仓数据库对象访问权限

数据库的表、索引、视图等,在数据库中的一切都可以称为数据库对象。 对象分为以下两类 模式(SCHEMA)对象:可视为一个表的集合,可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。非模式…

AcWing1229.日期问题——学习笔记

目录 题目 代码 AC结果 思路: 一、获取数据 二、验证日期合法性 三、去重 四、排序 五、主方法中调用&输出 题目 1229. 日期问题 - AcWing题库https://www.acwing.com/problem/content/description/1231/ 代码 import java.util.Scanner;public class…

XILINX FPGA OV5640 摄像头驱动(一)

影像行业是一个值得深耕的方向,废话不多说 先看输入和输出 输入是光照,输出是光照的数字信号 image area:说的是感光矩阵,CMOS图像传感器的最核心部分,接收光照产生电信号的部分。决定了图像质量的好坏 矩阵就会行列…

MyBatisPlus笔记

一、MyBatisPlus概述 MyBatisPlus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis-Plus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成&…

leetcode1143 最长公共子序列

题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(…

因果诊断原理

因果分析在近十来年逐渐倍受关注,其提供了解释因子间因果性的定量分析工具,广泛用于数据分析领域,同时也就用决策分析、作用预估等反事实因果推理中。本文首先对比了因果性和相关性的关系,之后确定因果关系的基本方法,…

博客搭建教程1-Archlinux环境配置

文章目录1 前言2 archlinux镜像下载3 archlinux安装1 前言 这个教程主要讲解linux环境下博客的搭建,这里的linux系统选择archlinux,博客的框架基于hexo框架。 参考博客: 1、ArchLinux安装教程 2、Archlinux2022年7月镜像 手把手安装教程 UE…

MySQL进阶——存储过程

MySQL 存储过程 1、简介 大多数 SQL 语句都是针对一个或多个表的单条语句。并非所有的操作都那么简单。经常会有一个完整的操作需要多条语句才能完成。 存储过程简单来说,就是为以后的使用而保存的一条或多条 MySQL 语句的集合。可将其视为批处理文件。虽然他们的…

【Spring(八)】带你打通Spring的注解开发

文章目录注解开发注解开发定义bean纯注解开发注解开发bean作用范围与生命周期管理注解开发依赖注入注解开发管理第三方bean注解开发实现为第三方bean注入资源总结注解开发 Spring的配置我们已经告一段落了,那接下来我们就要发挥Spring的强项了:简化开发&…

MySQL —— 数据库基础

目录 一、数据库的基本概念 1. 什么是数据库 2. 主流的数据库 二、基本使用 1. 连接服务器 2. 服务器管理 3. 服务器、数据库、表关系 4. 使用案例 5. 数据库的存储逻辑 三、MySQL架构 四、SQL分类 五、存储引擎 1. 存储引擎 2. 查看存储引擎 3. 存储引擎对比 …

Elasticsearch 这篇还不够吗

系列文章目录 文章目录系列文章目录一、概述1. ES 的基本概念2. ES 和关系型数据库的对比二、环境准备1. linux 下单机安装三、入门操作1. 创建索引2. 写入文档3. 根据id搜索文档4. 根据一般字段搜索文档5. 根据文本字段搜索文档四、ES 客户端实战1. Spring Data Elasticsearch…

学习shell与shell编程 vi与vim

Linux配置文件都是以ASCII的纯文本形式存在。 为什么学习vi 1)UnixLike系统都会内置vi文本编辑器,其他的文本编辑器则不一定存在 2)许多软件的编辑接口都会主动调用vi 3)vi具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性 4)程序简单&#…