DOOR-SLAM
Lajoie 2020 · 论文
一句话总结 —— DOOR-SLAM(Distributed, Online, and Outlier Resilient SLAM,分布式、在线且对外点具有鲁棒性的SLAM)是一个完全去中心化的点对点SLAM系统,其基于成对一致性的外点剔除机制使机器人团队能够使用激进的位置识别阈值,同时安全地过滤掉虚假的跨机器人回环。
问题
机器人团队需要对环境及自身在其中的位置形成共同的理解,而不依赖外部定位系统(如GPS),并且信息交换尽量少。分布式SLAM恰好能提供这一点,但现有的分布式系统容易受到感知外点的影响:为了避免灾难性的错误回环,它们采用了非常保守的位置识别参数,但这同时也拒绝了许多有效的回环候选,降低了轨迹精度。DOOR-SLAM将检测与验证解耦——一个鲁棒的后端使得在前端放宽标准、让更多候选通过成为安全之举。
方法与架构
点对点架构。 当没有队友处于通信范围内时,每个机器人独立执行单机器人SLAM,在相遇时执行分布式协议;不存在中心服务器,也不要求全连通性。实现基于ROS之上的Buzz群体编程语言。在机器人本地,RTAB-Map立体视觉里程计生成机器人自身的位姿图;两个分布式模块负责完成多机器人相关的工作。
分布式回环检测(无需交换原始数据):每个机器人为每个关键帧计算一个NetVLAD描述子(截断为128维)。相遇时,机器人只将自上次相遇以来生成的描述子发送给机器人;在欧氏距离阈值下找出候选匹配,并仅针对这些关键帧,将视觉特征(带ORB描述子的GFTT关键点)及其三维位置回传给。机器人使用OpenCV的solvePnPRansac执行几何验证;足够的内点集合会产生一个跨机器人回环测量值(的关键帧与的关键帧之间的相对位姿)。
分布式外点剔除——成对一致测量集最大化(PCM)。 两个跨机器人回环与是成对一致的,如果它们与两段里程计片段共同构成的闭环复合后(近似)等于单位变换:
其中是马氏距离,是位姿复合/求逆运算,似然阈值来自卡方分位数。相互一致的测量值的最大集合被表示为一致性图的最大团;团之外的一切都被剔除。关键的是,该度量只需要为分布式PGO已经交换过的回环测量值和里程计位姿估计——外点剔除在通信层面上是”免费”获得的。
分布式鲁棒PGO。 内点回环与里程计数据被送入Choudhary等人提出的两阶段分布式Gauss-Seidel优化器:机器人先就旋转量达成一致,再恢复完整位姿,仅交换跨机器人回环所涉及的位姿估计。后端基于GTSAM用C++实现。
实验结果
- 仿真(ARGoS,5架无人机):分布式PCM实现如预期那样剔除了外点——阈值越低,被拒绝的测量值越多(包括内点),阈值越高则偶尔会接纳外点并使ATE增大;1%的阈值被用作最安全的配置。
- KITTI 00在三台NVIDIA Jetson TX2上按三个机器人拆分(NetVLAD阈值0.15,最少5个特征对应,PCM 1%):平均平移误差无外点剔除时为86.85米,使用PCM后为8.00米(未使用机器人内部回环)。
- 无人机实地测试(两台DJI Matrice 100,RealSense D435,Jetson TX2,在一个视觉高度重复的足球场上):将NetVLAD阈值从0.10放宽到0.15后,在PCM过滤掉多出的外点的情况下,有效跨机器人回环数量增加了约3倍;将最小对应点数从RTAB-Map默认的20降到4-5,有效回环数量翻倍。相对于GPS的ATE在最保守的1% PCM阈值下最优(2.19米),而在阈值超过75%或禁用PCM时急剧恶化(22.02米)。
- 通信量:每个关键帧发送1.00 kB的NetVLAD描述子,而不是900 kB的RGB图像;每次匹配,关键点信息+描述子的开销为34.51+25.00 kB,相比灰度图像的600 kB。
- DARPA SubT隧道赛段(两台Husky无人地面车,配备带ICP回环的VLP-16激光雷达,超过1公里的煤矿隧道):将同一后端接入激光雷达前端,可消除因感知混淆造成的严重地图畸变(有一个错误回环存留下来,被归因于测量协方差标定不准确);分布式后端传输了92.27 kB,而等效的集中式交换需要196.30 kB——通信负担大约减半。
- 完整源代码已开源(
MISTLab/DOOR-SLAM)。
对SLAM的意义
感知混淆是多机器人建图的致命弱点:一次错误的跨机器人回环就可能将两个机器人的地图不可挽回地折叠到一起。DOOR-SLAM将鲁棒的外点剔除确立为分布式SLAM的一个首要架构组件,并证明了其收益——激进的前端阈值变得安全,从而产生更多有效回环,而不是更少。其PCM公式后来被后续系统采纳并扩展(Kimera-Multi朝同一目标使用了渐进非凸性方法,Swarm-SLAM则来自同一研究团队)。它是抗外点去中心化协作SLAM的参考设计。
相关条目
- Kimera-Multi —— 采用基于GNC的鲁棒PGO和语义网格的分布式后继系统
- Swarm-SLAM —— 同一第一作者提出的后续去中心化框架
- 跨机器人回环检测 —— PCM所验证的测量值
- 鲁棒位姿图优化 —— 同一外点问题在单机器人场景下的对应视角
- 通信约束 —— 为何原始数据从不被交换
- NetVLAD —— 支撑分布式前端的紧凑描述子
- 视觉位置识别 —— PCM使其阈值得以放宽的前端阶段