Maplab:一个用于视觉惯性建图和定位研究的开源框架(二)

标题:maplab: An Open Framework for Research in Visual-inertial Mapping and Localization

作者:Thomas Schneider, Marcin Dymczyk, Marius Fehr,

Kevin Egger, Simon Lynen, Igor Gilitschenski, Roland Siegwart

译者信息:

姓名:肖麟慧

单位:中国科学院电子学研究所

研究领域:SLAM,计算机视觉,机器人

欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权

IV. USE-CASES. 使用案例

本节概述了maplab的五个常见用例(common use cases):在线建图和定位,多场景建图,地图维护,大规模建图和稠密重建(online mapping and localization, multi-session mapping, map maintenance, large-scale mapping and dense reconstruction)。虽然maplab提供的远不仅仅是这些,但我们相信这些例子能突出了系统的功能,预期的性能和可扩展性。

此外,我们提供相关的控制台命令来重现每一个例子。这样做的目的是为了表明仅仅依靠用户界面就可以获得以下结果,而不需要额外的开发代码。有关更多文档,更新的命令,数据集和教程,请访问我们的wiki页面:www.github.com/ethz-asl/maplab/wiki

A. 使用ROVIOLI进行在线测绘和定位

对于许多机器人应用来说,获得(无漂移)全局位姿估计是非常重要的。这样的能力使得例如教导和重复场景,机器人操纵和精确导航成为可能。在maplab中,作为第一步,我们使用ROVIOLI来创建所需操作区域的初始VI图。传感器数据可以在Rosbag中离线提供,也可以使用ROS主题在线使用。完成后,VI图自动闭环,优化和可选关键帧,以及总结,以获得一个紧凑的本地化地图。在第二个场景中,可以将定位图传递给ROVIOLI以在建图区域中获得无漂移全局位姿估计。

图5:在EuRoC机械大厅数据集(the EuRoC machine hall dataset)上评估ROVIOLI [40]。顶部:用ROVIOLI位置估计的地面实况位置。底部:ROVIO视觉惯性里程计线程位姿误差[3],ROVIOLI和优化的VI-地图(VIWLS)与地面实况相比的位置误差。

我们评估了ROVIOLI与普通ROVIO [3]结果对比,在EuRoC数据集全批优化的估算[40]。 为此,第一步,我们使用其中一个数据集创建了一个定位地图。然后在第二步中,我们使用ROVIOLI(使用先前构建的地图)和ROVIO处理第二个EuRoC数据集。结果如图5和表1所示,我们比较了ROVIO,ROVIOLI和全批量优化轨迹(full-batch optimized trajectory)的地面误差。这些实验证明了系统的无漂移性能和对常规(regular)VIO估算的改进。 另外,表II显示了ROVIO和ROVIOLI与ORB-SLAM2相比的耗时(timing)信息[25]。

表1:EuRoC数据集[40]上的全局位置和方向RMSEs的ROVIO(仅VIO)),ROVIOLI使用其中一个数据集作为定位地图,以及ROVIO + VIWLS对应于全批视觉惯性最小二乘优化。 此外,比较了ORB-SLAM2 [25](批量和实时)的结果。ROVIO和ROVIOLI使用单目摄像头和IMU数据,而ORB-SLAM2使用立体摄像头。ORB-SLAM2的定位图已经建立在SLAM模式下,而定位评估已经在定位模式下进行。对于V2-medium,我们无法用如估计器分叉(estimator diverged)(用X标记)一样以ORB-SLAM2的实时模式构建地图。

B. Multi-session mapping. 多场景建图

在许多建图应用中,不可能在单个场景建图中覆盖整个环境。除此之外,可能需要在尽可能多的不同的视觉外观条件下捕捉环境[7]。因此,maplab提供了将来自多个场景的地图共同注册到一起的工具,并共同完善它们以获得单个一致的地图。

因此,该用例演示了从4个独立的轨迹创建大学建筑地图的过程。每条轨迹都穿过建筑物的地面,楼梯和另一层楼。它们结合在一起超过1000米,包含约463,000个地标。在这样大的地图上,许多常见的操作(例如优化或循环关闭)很快就变得棘手,无法仔细选择数据。为此,我们采用了基于顶点距离,方向和界标隐形(landmark covisibility)的启发式关键帧方案。Maplab的闭环算法正确识别了所有场景之间的几何变换,非线性优化改进了几何【?】。结果是一个8.2 MB的紧凑的,几何一致的定位图,可以被ROVIOLI用于整个建筑物的定位,如图1所示。

图1:maplab框架可以从多个建图场景中构建一致的视觉-惯性地图。在这里,4个独立的场景被合并和紧密结合。然后全局地图可以由里程计和定位前端使用,以纠正当重新访问该区域时发生的任何漂移。平面图覆盖了所有楼层的地标,显示了地图校准的准确性和一致性

这个用例可以在maplab控制台中使用以下命令进行重现:

C. Map maintenance. 地图维护

基于特征的大型模型,可能在构建多个场景中,很容易包含数千个路标并达到相当大的存储空间。然而,并不完全需要的保留所有的路标以保证ROVIOLI的良好的定位质量。Maplab提供了基于[11]的地图汇总功能,该功能使用基于整数(integer-based)的优化来执行路标选择。该算法试图去除最不常见的地标,但与此同时保持对环境的均衡覆盖(balanced coverage)。Maplab还包括一个关键帧算法,用于去除多余的顶点,只保留一个有效而准确的状态估计所需的顶点算法。通过去除顶点,我们也消除了许多顶点路标相关联的含有一定尺寸的描述子。汇总(summarization)和关键帧都可以显著降低模型尺寸,而不会在位姿估计质量方面造成大的损失。

地图维护是在第IV-B节介绍的建筑楼层记录演示的4个建图场景建立的数据库地图。每个地图覆盖约90米,包含约20,000个地标,其中约5,000个被认为是可靠的。将第五个数据集用作查询——我们试图针对数据库定位每个顶点,由4个数据集构建,并验证位置误差是否小于50厘米。我们比较了以不同方式预处理的定位地图的召回率(recall),要么汇总(summarized),要么关键帧,或者两者兼而有之。

图6展示了地标汇总(landmark summarization)和关键帧在定位地图大小的影响,并演示了这些方法如何影响定位。结果证实,关键帧大大降低了定位地图的大小,而且定位质量的损失相当小。 同样,总结(summarization)可以减少90%的路标总量,而不会造成严重的后果(without grave consequences)。当这些方法结合使用时,我们可以将地图大小缩小13倍,并将召回水平保持在51%,而完整地图为60%(compared to 60% for the full map)。

D. Large-scale mapping 大尺度建图

在这个用例中,我们想展示maplab的大尺度建图能力以及除VI传感器以外的传感器的适用性[41]。为此,我们使用公开的Google Tango平板电脑,并记录了苏黎世老城的大尺度多场景地图。我们导出了原始视觉惯性数据,并使用ROVIOLI进行处理,以获得初始开环图。然后,我们将这些地图加载到maplab控制台中进行对齐和优化(alignment and optimization),并使用第IV-B节中所述的相同工具。在32GB RAM的台式计算机上通宵(overnight)进行集束调整(overnight)和位姿图松弛(pose-graph relaxation)。优化的VI地图正交投影(orthographic projection)在苏黎世地图上,关于地图的进一步的细节可以在图7中找到。该图显示结果地图与大部分地图上的建筑物和街道一致,在覆盖率较低的领域略有一些不一致(minor inconsistencies)。

图6:在ILP地标总结和关键帧+总结(landmark summarization and keyframing + summarization)(括号内)后的定位性能和地图大小。关键帧删除包括顶点-路标关联的顶点,有效地使地图更小。原始的地图有6,258个顶点,而关键帧图则包含760个关键帧。关键帧持续减少了少量百分比的召回,而总结只影响当修剪的标志性分数超过85%的质量【?】。 为了比较,我们提供了一个随机选择要删除的路标召回曲线【?】。

图7:苏黎世老城的大尺度多时段VI地图。使用Google Tango平板电脑在两个不同的日期(晴天和阴天)录制45个场景的原始视觉惯性数据。记录的总时间是231分钟。最终地图包含总长度为16.48公里的轨迹,435 K的地标,7.3 M的观测数据,大小为480 MB。 该地图可在maplab wiki页面上下载。

E. Dense reconstruction 稠密重建

机器人领域的许多应用,如路径规划,检查和物体检测,都需要更高密度的三维环境表示。 Maplab提供了多种密集的重建工具,它们使用稀疏地图的优化顶点姿态来计算基于附加在VI地图上的相机图像的稠密深度信息。

1)立体密集重建:为了计算来自多摄像机系统的深度图,该工具首先识别适合于二维平面校正(planar rectification)的立体相机。然后,它利用(半全局)块匹配器为轨迹上的每个立体对(stereo pair)计算深度图。 生成的深度图(或点云)附加到VI地图并存储在资源系统中。 以下命令假设地图已经对齐,闭环和优化,如第IV-B部分所述

2)基于TSDF的深度融合:一旦VI图包含深度信息,例如,通过使用上述命令或者RGB-D传感器获得的,全局一致的VI映射相机姿态可以用于创建同样一致的全局三维重建结构。 为此(To that end),maplab采用voxblox [38],一个容积建图库(volumetric mapping library),用于基于TSDF的深度融合和表面重建。以下命令会将深度图或点云数据插入voxblox网格,并将表面网格(surface mesh)存储到文件系统。图8的第一行显示了3个合并的EuRoC机房数据集的重建结果[40]

3)导出到CMVS / PMVS2:为了更精确的重建重建,maplab提供了一个导出命令来将稀疏的VI地图和图像转换为开源多视图立体线程(open-source multi-view-stereo pipeline), CMVS / PMVS2[39]的输入数据格式。 虽然支持灰度图像输出,但可以使用RGB图像获得最佳效果。 VI图和最终的3D重建可以在图8的底部看到。

V. USING MAPLAB FOR RESEARCH. 使用MAPLAB用于研究

第四节用例中所需的所有算法和控制台命令在maplab中都是可用的,并构成了大多数视觉惯性建图和定位所需的基本工具。此外,还提供了一套丰富的帮助函数(helper functions),查询和操作工具来简化新算法的快速原型研究。控制台的插件体系结构允许将新算法简单整合进入系统中。 项目的wiki页面提供了如何扩展框架示例演示。我们想邀请学术界利用这个研究进行友好的设计。

图8:maplab提供了两种不同的稠密重建工具。顶部:立体稠密重建用于基于灰度图像和优化的摄像机姿态来计算深度图。然后,他们融合在voxblox [38]创建一个表面网格进行融合。3个EuRoC数据集[4](MH1-3)相结合,创建一个对齐和优化的VI图。底部:CMVS / PMVS2 [39]重建结果基于一个单一的记录场景,使用一个RGB相机和多相机系统。

VI. CONCLUSIONS 总结

这项工作提出了maplab,一个开放的视觉惯性建图和定位框架,通过提供一个基本的算法集合,让研究人员可以专注于实际的任务,使这个领域的研究更有效率的目标。maplab中的所有组件都以灵活和可扩展的方式编写,因此可以轻松集成和测试依赖视觉-惯性状态估计或本地化的新算法。为此,该框架提供了映射和本地化相关研究所需的最重要工具的实现,例如视觉-惯性优化,闭环/定位后端,多地图融合,位姿图松弛和宽泛自检以及可视化工具(visual-inertial optimization, a loop-closure/localization backend, multi-session map merging, pose-graph relaxation and extensive introspection and visualization tools)。所有这些算法都可以从基于控制台的用户界面进行访问,可以将其应用于单个或多个场景的建图。在原型设计新算法或调整参数时,这样的工作流程已被证明是非常有效的。

其次,该框架包含一个名为ROVIOLI的在线视觉-惯性建图和定位前端。它可以从原始的视觉和惯性传感器数据建立新的地图,并且如果提供定位图则追踪实时的全局(无漂移)姿态。以前的工作在不同的机器人平台上使用了这种能力,并展示了它能够准确跟踪包括导航和轨迹跟踪在内的多种应用的全局位姿。

VII. ACKNOWLEDGEMENT 致谢

我们要感谢maplab的其他贡献者,最重要的是:Titus Cieslewski,Mathias Burki,Timo Hinzmann,Mathias Gehrig和Nicolas Degen。此外,我们还要感谢ROVIO的作者Michael Blosch。导致这些结果的研究得到了Google Tango和欧盟H2020项目UP-Drive的资金拨款项目编号no.688652.

参考文献:

[1] S. Leutenegger, S. Lynen, M. Bosse, R. Siegwart, and P. Furgale, “Keyframe-based visual–inertial odometry using nonlinear optimization,” IJRR, 2015.

[2] N. Snavely, S. M. Seitz, and R. Szeliski, “Photo tourism: exploring photo collections in 3d,” in SIGGRAPH, 2006.

[3] M. Bloesch, S. Omari, M. Hutter, and R. Siegwart, “Robust visual inertial odometry using a direct ekf-based approach,” in IROS, 2015.

[4] M. Burri, H. Oleynikova, M. Achtelik, and R. Siegwart, “Realtime visual-inertial mapping, re-localization and planning onboard MAVs in unknown environments,” in IROS, 2015.

[5] T. Hinzmann, T. Schneider, M. Dymczyk, A. Schaffner, S. Lynen, R. Siegwart, and I. Gilitschenski, “Monocular visualinertial SLAM for fixed-wing UAVs using sliding window based nonlinear optimization,” in ISVC, 2016.

[6] T. Hinzmann, T. Schneider, M. Dymczyk, A. Melzer, T. Mantel, R. Siegwart, and I. Gilitschenski, “Robust map generation for fixed-wing UAVs with low-cost highly-oblique monocular cameras,” in IROS, 2016

[7] M. Buerki, I. Gilitschenski, E. Stumm, R. Siegwart, and J. Nieto, “Appearance-based landmark selection for efficient long-term visual localization,” in IROS, 2015.

[8] L. Traffelet, T. Eppenberger, A. Millane, T. Schneider, and R. Siegwart, “Target-based calibration of underwater camera housing parameters,” in SSRR, 2016.

[9] P. Fankhauser, M. Bloesch, P. Krusi, R. Diethelm, M. Wer- ¨ melinger, T. Schneider, M. Dymczyk, M. Hutter, and R. Siegwart, “Collaborative navigation for flying and walking robots,” in IROS, 2016.

[10] M. Dymczyk, S. Lynen, T. Cieslewski, M. Bosse, R. Siegwart, and P. Furgale, “The gist of maps-summarizing experience for ifelong localization,” in ICRA, 2015.

[11] M. Dymczyk, S. Lynen, M. Bosse, and R. Siegwart, “Keep it rief: Scalable creation of compressed localization maps,” in ROS, 2015.

[12] M. Dymczyk, I. Gilitschenski, R. Siegwart, and E. Stumm, Map summarization for tractable lifelong mapping,” in RSS orkshop, 2016.

[13] M. Dymczyk, T. Schneider, I. Gilitschenski, R. Siegwart, and E. Stumm, “Erasing bad memories: Agent-side summarization for long-term mapping,” in IROS, 2016.

[14] H. Merzic, E. Stumm, M. Dymczyk, R. Siegwart, and ´I. Gilitschenski, “Map quality evaluation for visual localization,” in ICRA, 2017.

[15] M. Fehr, M. Dymczyk, S. Lynen, and R. Siegwart, “Reshaping ur model of the world over time,” in ICRA, 2016.

[16] F. Blochliger, M. Fehr, M. Dymczyk, T. Schneider, and ¨R. Siegwart, “Topomap: Topological mapping and navigation based on visual slam maps,” arXiv: 1709.05533, 2017.

[17] M. Gehrig, E. Stumm, T. Hinzmann, and R. Siegwart, “Visual place recognition with probabilistic voting,” in ICRA, 2017.

[18] H. Oleynikova, M. Burri, S. Lynen, and R. Siegwart, “Realtime visual-inertial localization for aerial and ground robots,” in IROS, 2015.

[19] S. Lynen, M. Bosse, P. Furgale, and R. Siegwart, “Placeless place-recognition,” in 3DV, 2014.

[20] T. Cieslewski, S. Lynen, M. Dymczyk, S. Magnenat, and R. Siegwart, “Map api-scalable decentralized map building for robots,” in ICRA, 2015.

[21] G. Klein and D. Murray, “Parallel tracking and mapping for small ar workspaces,” in ISMAR, 2007.

[22] C. Forster, M. Pizzoli, and D. Scaramuzza, “Svo: Fast semidirect monocular visual odometry,” in ICRA, 2014.

[23] J. Engel, T. Schops, and D. Cremers, “LSD-SLAM: Large- ¨ scale direct monocular slam,” in ECCV, 2014

[24] R. Mur-Artal, J. M. M. Montiel, and J. D. Tardos, “ORBSLAM: a versatile and accurate monocular SLAM system,” T-RO, 2015.

[25] R. Mur-Artal and J. D. Tardos, “ORB-SLAM2: An OpenSource SLAM System for Monocular, Stereo, and RGB-D Cameras,” T-RO, 2017.

[26] M. Bosse, P. Newman, J. Leonard, and S. Teller, “Simultaneous Localization and Map Building in Large-Scale Cyclic Environments Using the Atlas Framework,” IJRR, 2004.

[27] J. McDonald, M. Kaess, C. Cadena, J. Neira, and J. Leonard, “Real-time 6-DOF multi-session visual SLAM over largescale environments,” RAS, 2013.

[28] W. Churchill and P. Newman, “Experience-based navigation or long-term localisation,” IJRR, 2013.

[29] C. Sweeney, “Theia multiview geometry library: Tutorial & reference.” http://theia-sfm.org.

[30] P. Moulon, P. Monasse, R. Perrot, and R. Marlet, “Openmvg: Open multiple view geometry,” in RRPR, 2016.

[31] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng, “Ros: an open-source robot operating system,” in ICRA, 2009.

[33] S. Agarwal and K. Mierle, “Ceres solver.” http:// ceres-solver.org.

[34] S. Leutenegger, M. Chli, and R. Y. Siegwart, “Brisk: Binary robust invariant scalable keypoints,” in ICCV, 2011.

[35] A. Alahi, R. Ortiz, and P. Vandergheynst, “Freak: Fast retina keypoint,” in CVPR, 2012.

[36] S. Lynen, T. Sattler, M. Bosse, J. A. Hesch, M. Pollefeys, and R. Siegwart, “Get out of my lab: Large-scale, real-time visual-inertial localization.,” in RSS, 2015.

[37] N. Sunderhauf and P. Protzel, “Switchable constraints for ¨ robust pose graph SLAM,” in IROS, 2012.

[38] H. Oleynikova, Z. Taylor, M. Fehr, R. Siegwart, and J. Nieto, “Voxblox: Incremental 3d euclidean signed distance fields for on-board MAV planning,” arXiv:1611.03631, 2016.

[39] Y. Furukawa, B. Curless, S. M. Seitz, and R. Szeliski, “Towards internet-scale multi-view stereo,” in CVPR, 2010.

[40] M. Burri, J. Nikolic, P. Gohl, T. Schneider, J. Rehder, S. Omari, M. W. Achtelik, and R. Siegwart, “The EuRoC

micro aerial vehicle datasets,” IJRR, 2016.

[41] J. Nikolic, J. Rehder, M. Burri, P. Gohl, S. Leutenegger, P. Furgale, and R. Siegwart, “A synchronized visual-inertial sensor system with fpga pre-processing for accurate real-time slam,” in ICRA, 2014.

欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。

有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!

泡泡论坛:http://paopaorobot.org/bbs/

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181203A05IXN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券