摘要
将多种传感器和深度学习集成到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)开源的、多模态和多机器人SLAM框架,与其他现有方法相比,该框架允许集成和融合大量不同的数据。
(2)一个在线协作建图系统,它利用子地图和中央服务器来合并和分发全局一致的、特征丰富的地图。
(3)为自定义特征点、场景描述符和闭环集成接口。实验展示了它们在基于语义对象的闭环实验中的灵活性。
2. 相关工作
尽管存在很多SLAM框架,它们主要聚焦于特殊的传感器或者特殊的环境配置,而且对其进行改变是很困难甚至不可能的。据我们所知,在现存的方法中,maplab 2.0是最为灵活的建图与定位框架,它不仅支持多样化的传感器,而可以无缝适配新需求。
3. MAPLAB 2.0框架
maplab 2.0框架的通用结构如图2所示。整体框架可以被分为三个主要的组件:地图结点、地图服务和离线控制台接口。
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的机器上。
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框架,支持多机器人、语义回环检测功能(文末附源码)