文章:maplab 2.0 – A Modular and Multi-Modal Mapping Framework
作者:Andrei Cramariuc , Lukas Bernreiter Florian Tschopp, Marius Fehr, Victor Reijgwart Juan Nieto , Roland Siegwart, Cesar Cadena
编辑:点云PCL
代码:https://github.com/ethz-asl/maplab.
欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
将多传感器和深度学习集成到同时定位和建图(SLAM)系统中是当前研究的重要领域。多模态是在具有挑战性的环境中实现鲁棒性和具有不同传感器配置的异构多机器人系统的基石。借助maplab 2.0提供的一个多功能的开源平台,可帮助开发、测试新模块和功能,并将其集成到一个成熟的SLAM系统中。通过广泛的实验,表明maplab 2.0的精度可与HILTI 2021基准测试的最新技术相媲美。此外,我们通过三个用例展示了系统的灵活性:i)大规模(∼10公里)多机器人多会话建图,ii)非视觉路标的集成,以及iii)将基于语义对象的回环闭合模块纳入建图框架。代码在https://github.com/ethz-asl/maplab.
图1:本文提出了maplab 2.0,一种灵活通用的多机器人和多模态框架。maplab 2.0可以无缝集成多个机器人(彩色路径)、视觉地标(彩色点)和激光雷达扫描(黑点)
主要贡献
maplab2.0为多会话、多机器人和多功能多模态建图提供了一个开源平台。最初的maplab是一个开源工具箱,专门用于创建和管理视觉惯导地图。借助maplab 2.0,我们通过集成多种新模式(如LiDAR、GPS接收器、轮速编码器、语义对象等),将原始框架扩展到远远超出其初始范围。这些示例为进一步的传感模式提供了易于扩展的模板。maplab2.0还提供了方便集成外部组件的接口,例如添加任意数量的不同视觉特性或回环闭合约束。这些特性使我们的新平台非常适合作为深度学习关键点检测器和环路闭合引擎的开发和研究工具,迄今为止,这些引擎大多是单独测试的。此外,由于新的子建图功能,在线协作SLAM现在可以在maplab 2.0中实现,从而可以在线构建、优化和共同定位来自多个来源的一个全局地图。这是通过我们实现一个新的集中式服务器节点实现的,该节点聚合来自多个机器人的数据,并可以将协作构建的地图发送回机器人以提高性能。我们在多个实验和数据集中展示了我们系统的功能和性能,为非视觉关键点、深度学习描述子集成和基于语义对象的回环闭合引擎提供了概念验证实现。我们的贡献总结如下:
相关内容
建图可以被定义为创建环境表示的方法的一种挑战,在过去几十年中,已经看到了大量多样的解决方案,新的传感器和场景推动了很多变化。多模态已经超越了标准传感器融合(即视觉惯导或立体摄像机),包括更复杂的组合,例如激光雷达和语义信息。另一个值得注意的主题是多机器人建图,其中多个机器人同时探索一个环境,并旨在创建一个全局一致的地图。多机器人建图不同于多会话建图,多窗口建图建图涉及以不同的时间间隔收集同一地点的测量值,并启用窗口之间的离线操作。虽然可以通过顺序处理数据记录以多会话方式使用多机器人框架,但这是低效的,因为由于缺少地图管理工具,因此每当添加新记录时,都需要重新处理所有以前的数据。
表I中给出了重要SLAM框架及其特征的比较。maplab的第一个版本是为视觉惯导系统设计的多会话建图框架。其他可比较的框架是ORB-SLAM3和RTABMap。ORB-SLAM3是其前身ORB-SLAM2的扩展,增加了对IMU和多会话建图功能的支持。RTAB地图集成了LiDAR或RGB-D相机的视觉和深度测量。RTAB地图的扩展支持多种人工视觉功能和SuperPoint,但不允许轻松集成其他描述子。这两个框架都提供了与maplab类似的地图创建和管理功能,并在建图过程中添加了在线回环闭合和优化。
上述三个框架都是针对特定传感器配置而设计的紧密集成系统。相反,我们允许轻松集成不同的传感器设置、视觉特征,并支持maplab 2.0中的任意里程计输入,这有助于异构机器人的使用,并提供了新的灵活性。Kimera是一个多模态建图框架,它提供了带有语义标注的局部和全局3D网格以及基于视觉惯性SLAM的全局轨迹估计。与maplab 2.0不同,Kimera不具备多会话功能,并且带有语义标注的3D重建不用于提高SLAM估计的准确性。一般来说,语义信息通过成为高级场景理解的催化剂,有可能显著改善建图。在这项工作中,我们提出利用图像描述子和简单的语义对象表示,这允许我们使用众所周知的相对姿态误差进行优化。
Kimera Multi是Kimera的直接扩展,它支持使用完全分布式系统的多机器人场景,但没有改进原始Kimera中的纯视觉惯性SLAM后端。我们的方法使用一个集中的服务器来收集子地图,优化它们,并创建一个全局一致的地图。COVINS也探索了类似的集中配置方案。然而,COVINS仅限于视觉惯性用例,而maplab 2.0可以结合多种传感器模态和配置。类似的还有LAMP 2.0、CVI-SLAM和DOOR-SLAM,它们提供了机器人之间的协作建图,但是紧密集成的系统,仅限于一种传感器模态,灵活性很小。尽管存在各种其他SLAM框架,但它们主要集中于特定的传感器或机器人环境配置,对其中任何一种进行更改通常都是困难的或不可能的。根据我们对所有现有方法的了解,maplab 2.0是最灵活的建图和定位框架,它不仅支持各种传感器,还可以无缝地适应新的需求。
MAPLAB 2.0框架
maplab 2.0框架的总体结构如图2所示。整个框架可以分为三个主要组件:建图节点、建图服务器和离线控制台界面。我们首先概述了maplab 2.0中的底层地图结构,然后更详细地讨论了主要模块。
A、 建图模块
我们将地图表示为一个或多个任务的集合,其中每个任务都基于一个连续的绘图会话。地图的基本结构是由顶点和边组成的因子图,这些顶点和边结合了所有机器人信息和不同任务的测量结果。机器人在某个时间点t的状态被参数化为顶点(6自由度(DoF)姿态、速度、IMU偏差)。地标也表示为图形中的顶点,其状态定义为3D位置。3D地标可以用作环境中具有3D位置的任何事物的基础表示,例如视觉地标、3D地标,甚至语义对象。
1) 约束:顶点通过不同类型的边连接,这些边基于观察(例如,关键点、imu测量值和回环闭合)对其状态变量施加约束。IMU边包含连接顶点之间的预集成IMU测量,因此仅连接时间顺序的顶点。相对姿态约束边在两个顶点之间施加刚性的6 DoF变换,并用于表示相对运动(即里程计)或跨越较大时间间隙或任务的环路闭合。
2) 地标:maplab核心的视觉建图模块仍然是maplab2.0的一部分。它包括基于ORB的特征检测,以及BRISK或FREAK的二进制描述符。基于描述符匹配建立连续帧之间的特征对应关系,其中为了鲁棒性,匹配窗口受到集成陀螺仪测量的限制,然后将这些要素轨迹三角化为三维地标。全局定位和环路闭合是通过获取单个帧并使用特征描述符建立一组2D-3D匹配来完成的。随后将对匹配项进行共视性检查,以过滤异常值。然后,利用RANSAC方案内的P3P算法,使用剩余匹配来获得关于地图的参考帧的变换。然后可以将该变换作为回环闭合边添加到因子图中。我们还提供了一种替代方法,通过合并共视界标并最小化其重投影误差来合并循环闭包。这种方法省去了调整显式循环闭合边缘协方差的困难,但对因子图施加了更软的约束。在maplab 2.0中增加了在地图中同时包含任意数量不同类型特征的可能性。为了获得连续帧的特征轨迹,用户可以使用Lucas–Kanade跟踪器的通用实现,也可以自己提供轨迹信息。此外,我们扩展了匹配引擎以支持浮点描述符,使用最新开发的描述符实现回环关闭。在maplab中,二进制描述符使用反向多索引进行匹配,而浮点描述符使用近似最近邻居快速库(FLANN)进行匹配。然后,为了实现前面描述的回环闭包,匹配项被类似地处理。尽管如此,出于调优目的,不同的特征类型可以有单独的参数集来说明质量和行为的差异。maplab 2.0还可以处理具有3D观察的地标。例如,这些可能来自RGB-D相机,其中视觉特征也具有相关的深度,或者来自直接在3D点云中检测到的特征。显著的区别在于,这些地标的位置不是使用多视图几何体进行三角测量,而是通过对3D测量进行平均处理。类似地,姿势图误差项不是基于重投影误差,而是基于观察到的3D位置和地标的3D位置之间的欧几里德距离。另一个显著的区别是,在没有P3P算法的情况下,环路闭合被设置为3D到3D RANSAC匹配问题。
B、 建图节点
建图节点在每个机器人上运行,并使用外部输入源和原始传感器数据以多模态因子图的形式创建地图。在地图构建期间使用6 DoF里程计输入来初始化基础因子图的机器人姿态顶点,建图节点与里程计方法无关,具有简单的界面,因此可以在各种机器人和传感器设置中轻松使用。这与maplab形成对比,maplab只有内置视觉惯性估计器ROVIOLI可用,而maplab 2.0甚至不需要IMU。然而,如果IMU可用,则将惯性约束添加到建图中,并且状态估计器还可以可选地计算IMU偏差的初始估计。然后可以使用这些偏差估计来改进全局地图优化问题的初始化,这有利于其收敛速度和精度。如果IMU存在但未被状态估计器使用,则也可以单独进行偏差估计。对原始maplab框架也进行了实质性更改,以便可以使用自定义内部组件或易于配置的外部接口处理和集成其他传感器模态。最值得注意的是,maplab 2.0可以在运行时合并任意数量的不同3D地标类型。此外,现在可以无缝地添加相对约束(例如里程计或外部环路闭合)和绝对6 DoF约束(例如GPS或基准标记)。原始相机图像或LiDAR点云可以作为资源附加到地图上,稍后的模块可以随时使用这些资源,例如,计算额外的环闭合或检测对象。然后,可以将包含所有约束的结果地图传递到建图服务器以进行联机处理,或者将其存储并加载,以便稍后在控制台中进行离线处理。
C、 建图服务器
建图服务器是maplab 2.0的新添加,支持协作和在线建图。服务器节点可以在专用机器或与建图节点并行的机器人上运行。建图节点以规则的间隔将其地图划分为块,称为子地图。子地图立即被发送到建图服务器,在那里它们被预处理并连接到来自同一机器人的相应的先前发送的子地图。拆分时,通过将每个子贴图的最后一个顶点复制到下一个子地图中来进行记录。这也避免了边和特征轨迹中的不连续性。并行地,服务器连续循环将来自不同机器人的地图闭合为全局一致的地图。值得注意的是,服务器和控制台共享相同的代码库,因此任何新功能都可以轻松地集成到其中。
D、 离线控制台
离线控制台是从maplab移植过来的,旧工具适应了传感器和模态的新功能。有用于进一步处理地图的工具,例如批处理优化、合并来自不同会话的地图、异常值拒绝、关键帧、地图稀疏化等。使用LiDAR的环路闭合现在也可以通过新模块实现,该模块包括ICP和G-ICP的实现,但不限于这些,并且可以容易地扩展。由配准模块计算的变换被添加为具有可切换约束的环路闭合边。对于每个传感器和方法组合,我们使用预定义的固定协方差,该协方差分别为每个平移和旋转分量设置。基于传感器噪声和配准方法的精度根据经验选择这些值。也可以使用集成的Voxblox插件进行稠密重建。控制台还提供了资源管理工具(操纵或可视化附加的点云、图像和语义测量)或导出地图数据(姿势、IMU偏差、地标等)。最后,控制台通过插件实现了简单的扩展,插件可以离线运行代码,并且独立于地图构建过程。
实验与评价
我们进行了几次实验,以彻底评估我们提出的框架,并证明其易于使用和高度灵活性。具体来说,本节介绍了四个数据集的结果,以展示maplab 2.0的新特性和功能。首先,我们在公共HILTI SLAM 2021数据集上验证了我们提出的框架的性能和准确性,并将其与众所周知的最新方法进行了比较。展示我们提出的框架在现实世界中的适用性,并展示大规模多机器人多会话功能。然后,我们通过结合从投影点云检测到的3D激光雷达特征,展示了地标系统的多功能性展示了自定义室内数据集上的语义回环闭包模块。所有数据集都是通过硬件时间同步传感器设置收集的。
A.验证和比较
我们使用HILTI SLAM挑战2021数据集将我们提出的框架与最先进的方法进行比较。该数据集包括12个记录,涵盖室内办公环境和具有挑战性的室外建筑工地。
图3:使用OKVIS和全局BA优化,对2021数据集中Office Mitte序列的maplab 2.0中的要素和传感器数据进行可视化。
表II:就绝对位置误差(APE)的RMSE而言,最先进方法的比较。SP+B代表SuperPoint和BRISK视觉功能。图标代表所使用的传感器:单眼、多摄像头、激光雷达和IMU。数据集的总持续时间为52分钟
B、 大规模多机器人多会话建图
为了证明了其对复杂现实场景的适用性。实验的环境特点是类似城市的街道,有建筑物,环境恶劣,如坍塌的建筑物和狭窄的空间。在这项实验中,使用一台手持设备记录了23次个人跑步,该手持设备配有五个摄像头和一台Ouster OS0-128,其中包含超过两个小时的数据,距离约10公里,以及多次室内-室外转换。每次跑步都使用OKVIS进行里程计测量。前五张地图用于使用建图服务器构建全局多机器人地图,其余的地图使用控制台中的多会话建图进行合并。所有任务之间的一致性通过使用全局视觉回环闭合以及RTK GPS的附加绝对姿态约束来实现。此外,通过执行任务内和任务间激光雷达配准,对单个轨迹进行了改进。图4显示了最终的多机器人地图。
图4:运行23次全局多机器人地图的视觉建图结果。单个颜色表示机器人轨迹,灰色点表示多机器人地图中的三角BRISK地标。右上角的图像显示了通过将点云重新投影到优化姿态上的LiDAR地图
C、 激光雷达投影图像的视觉跟踪
为了展示maplab 2.0中地标系统的灵活性,我们集成了3D LiDAR关键点,我们从Streiff等人的工作中获得灵感。将LiDAR点云投影到2D平面上,使用对数尺度归一化LiDAR范围和强度值,并使用Mertens融合合并两个通道。图5中显示了生成的2D投影的示例图像,以及来自相同视角的相机图像,显示了环境。然后,我们将LiDAR图像视为相机图像,并使用SuperPoint和SuperGlue获得点特征和轨迹,如图5所示。由于对于每个特征观测,我们都有LiDAR的深度信息,因此我们可以更有效地初始化和循环闭合这些3D LiDAR地标。视觉关键点相比,LiDAR标志更准确地建图到结构上,从墙壁的直线度可以看出。然而,它们也受到环境中缺失点或移动物体在LiDAR图像中产生的噪声引起的异常值的影响。
图5:激光雷达图像上的关键点跟踪。(a) 仅出于说明目的显示了相关相机图像。(b) 显示LiDAR图像(为可视化而裁剪)其中绿色圆圈和线表示SuperPoint检测以及它们对前一帧的跟踪运动
D、 基于语义的建图
本节展示了maplab 2.0的可扩展性和模块化设计,通过用语义信息扩充地图并说明其在现实世界场景中的潜在应用。最初,使用Mask R-CNN在图像中检测语义对象,对于每一次检测,我们使用NetVLAD提取掩码实例分割上的描述符。代替内置跟踪器,所有检测到的对象都使用Deep SORT进行跟踪,Deep SORT使用外观项扩展了典型的空间数据关联度量,可以直接利用先前提取的对象描述符。与视觉地标类似,语义对象是maplab 2.0地图中的3D地标,但具有关联的类标签,可用于例如语义循环闭合检测。最后,通过直接比较同一类的对象描述符来找到候选语义循环闭包。
图6:语义建图流程。(a) 实验设置:具有多个语义对象的表。(b) 语义标志(蓝色)之间的循环闭包匹配(洋红色),导致回环闭包约束(橙色)。(c) 语义循环闭合前后的视觉惯性语义图
总结
我们提供了一个多模态和多机器人地图的研究平台,支持地图的在线和离线处理。我们展示了大规模SLAM基准和maplab 2.0的多个实验用例的最先进性能。我们提出的建图框架的灵活和模块化设计有助于各种机器人应用的研究,并在学术界和工业界产生重要影响。