将多种传感器和深度学习集成到SLAM系统中是当前研究的重要领域。Maplab 2.0提供了一个更加通用的开源平台,最初的Maplab用于创建和管理视觉惯性地图。Maplab 2.0集成了多种新模态,例如 LiDAR、GPS、车轮编码器、语义对象等。除此之外,还提供了易于集成外部组件的接口,例如添加不同视觉特征或闭环约束。这些功能使新平台非常适合作为基于深度学习的特征点检测和闭环的研究工具。
由于加入了子地图管理功能,在线协作 SLAM可以在 Maplab 2.0中使用,支持多个机器人在线构建、优化和协同定位。这是通过一个集中式服务器节点实现的,该节点聚合来自多个机器人的数据,并且可以将协作构建的地图回传给机器人以提高性能。文末附文章和源码链接。
图片
图1 Maplab2.0:一个灵活且通用的多机器人和多模态SLAM框架。可以集成多个机器人(彩色线)、视觉地图点(彩色点)和 LiDAR扫描(黑色点)。

主要功能

(1)开源的、多模态和多机器人SLAM框架,与其他现有方法相比,该框架允许集成和融合大量不同的数据。
(2)一个在线协作建图系统,它利用子地图和中央服务器来合并和分发全局一致的、特征丰富的地图。
(3)为自定义特征点、场景描述符和闭环集成接口。实验展示了它们在基于语义对象的闭环实验中的灵活性。
广泛的实验表明Maplab2.0的定位精度可以与基准测试中的最新技术相媲美。系统框架如图2所示。
图片
图 2:maplab 2.0框架及其三个主要组件的概述,即建图节点、集中式服务器和离线控制台。
在图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)多机器人处理:地图服务器持续在全局多机器人地图上运行并执行可配置操作(闭环、特征质量评估、捆绑调整、可视化、绝对约束异常值拒绝等)。

实验

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秒即可完成所有操作。
图片
图3包含23次建图运行的全局多机器人地图的可视化建图结果
C.基于语义的地图
本节通过使用语义信息扩充地图并说明其在现实场景中的潜在应用。使用Mask R-CNN  在图像中检测语义对象,对于每次检测,我们使用NetVLAD提取掩码实例分割的描述符。所有检测到的对象都使用Deep SORT进行跟踪,语义对象也是3D 地标,但具类标签,可用于语义环路闭合检测。
我们使用 RGB 惯性传感器在具有多个对象的办公环境中收集了室内数据集。我们两次观察带有物体的办公桌,同时留出一些时间来累积漂移(见图4a和4c)。图4b 显示了语义地标集群和检测到的回环候选。将语义对象的闭环边添加到全因子图后,漂移显着减少,改进后的图如图4c 所示。
(a) (b)
图片
(c)
图4:语义建图

文章链接:https://arxiv.org/abs/2212.00654

代码链接:https://github.com/ethz-asl/maplab