跨机器人回环检测

跨机器人回环检测是指检测出两个不同机器人观测到了同一地点,并给出它们各自观测之间的相对位姿。这是协作SLAM中最基本的事件:没有它,两个机器人的地图就是互不相关的坐标系;有了它,子地图就可以被对齐、合并并联合优化。

为何比单机器人回环检测更困难

验证阶梯

由于一次错误回环是灾难性的,接受过程是分层进行的,每一阶段都对上一阶段的幸存者进行过滤:

  1. 外观候选:描述子相似度(词袋分数、嵌入距离)标记出跨机器人的候选关键帧对。
  2. 几何验证:对两个关键帧的局部特征进行匹配,并用RANSAC估计相对位姿(针对伙伴的局部三维点使用PnP,或从2D-2D匹配中计算本质矩阵);足够多的内点→带协方差的候选约束。
  3. 跨回环一致性:即使通过了几何验证的回环也可能是混淆产生的。鲁棒后端会在信任任何一个回环之前,检查一组回环相互之间是否一致。

在第3阶段,成对一致性最大化(PCM,用于DOOR-SLAM)检查每一对跨机器人回环之间是否相互一致:机器人aabb之间的两个测量值zik\mathbf{z}_{ik}zjl\mathbf{z}_{jl}是一致的,如果将它们与两机器人各自的里程计复合后近似构成闭环,

Log ⁣(zik1  x^ija  zjl  x^lkb)Σγ,\left\|\,\mathrm{Log}\!\left(\mathbf{z}_{ik}^{-1}\;\hat{\mathbf{x}}^a_{ij}\;\mathbf{z}_{jl}\;\hat{\mathbf{x}}^b_{lk}\right)\right\|_{\Sigma} \le \gamma,

即对复合闭环的马氏距离检验。构建一个节点为候选回环、边表示一致对的图,最大的相互一致子集就是最大团——与一致的多数相悖的外点会落在团之外。渐进非凸性(GNC,用于Kimera-Multi)在优化器内部攻克同一问题,从一个凸的替代代价函数出发,逐步锐化,使外点边的影响逐渐消失。

一旦验证通过,该回环会产生机器人aa的关键帧ii与机器人bb的关键帧jj之间的相对位姿约束TaibjT_{a_i b_j},它将像任何其他边一样进入地图合并以及全局(可能是分布式的)位姿图优化。

常见陷阱

对SLAM的意义

跨机器人回环检测是购买共享地图的货币——这正是多机器人SLAM的全部意义所在。它们的稀缺性(机器人可能很少重叠)以及失败代价的巨大(一次错误回环会破坏每个机器人的地图)解释了为什么现代协作系统在鲁棒位置识别和抗外点优化上投入如此之多。

相关条目