跨机器人回环检测
跨机器人回环检测是指检测出两个不同机器人观测到了同一地点,并给出它们各自观测之间的相对位姿。这是协作SLAM中最基本的事件:没有它,两个机器人的地图就是互不相关的坐标系;有了它,子地图就可以被对齐、合并并联合优化。
为何比单机器人回环检测更困难
- 视角与运动路径差异。 单个机器人重新经过一条走廊时,通常以相近的高度和方向观察它。而两个机器人可能从相反方向、不同高度(空中与地面)、不同时段,或使用不同相机来接近同一地点——因此位置识别必须对强烈的视角、光照,甚至模态变化保持鲁棒。这推动了鲁棒描述子的使用:经典方法为词袋(DBoW2),如今越来越多采用学习得到的全局描述子(NetVLAD及其后续方法)。
- 没有里程计先验。 在单个机器人内部,候选回环可以通过当前位姿估计来门限筛选(“我是否靠近曾经去过的地方?”)。而在机器人之间,最初不存在公共坐标系,因此候选项必须仅凭外观在整个伙伴地图范围内搜索——这同时增加了计算开销和虚假候选的比例。
- 感知混淆的危害更大。 位于不同楼层的两个外观相似的办公室可能产生虚假的跨机器人匹配,而一次被接受的错误回环会同时扭曲两幅地图。
- 分布式检测。 在去中心化系统中,机器人在通信范围内交换紧凑描述子,并必须决定哪些候选值得花费完整验证所需的带宽(Swarm-SLAM优先处理那些能够连接不相连地图组件的候选项)。
验证阶梯
由于一次错误回环是灾难性的,接受过程是分层进行的,每一阶段都对上一阶段的幸存者进行过滤:
- 外观候选:描述子相似度(词袋分数、嵌入距离)标记出跨机器人的候选关键帧对。
- 几何验证:对两个关键帧的局部特征进行匹配,并用RANSAC估计相对位姿(针对伙伴的局部三维点使用PnP,或从2D-2D匹配中计算本质矩阵);足够多的内点→带协方差的候选约束。
- 跨回环一致性:即使通过了几何验证的回环也可能是混淆产生的。鲁棒后端会在信任任何一个回环之前,检查一组回环相互之间是否一致。
在第3阶段,成对一致性最大化(PCM,用于DOOR-SLAM)检查每一对跨机器人回环之间是否相互一致:机器人和之间的两个测量值和是一致的,如果将它们与两机器人各自的里程计复合后近似构成闭环,
即对复合闭环的马氏距离检验。构建一个节点为候选回环、边表示一致对的图,最大的相互一致子集就是最大团——与一致的多数相悖的外点会落在团之外。渐进非凸性(GNC,用于Kimera-Multi)在优化器内部攻克同一问题,从一个凸的替代代价函数出发,逐步锐化,使外点边的影响逐渐消失。
一旦验证通过,该回环会产生机器人的关键帧与机器人的关键帧之间的相对位姿约束,它将像任何其他边一样进入地图合并以及全局(可能是分布式的)位姿图优化。
常见陷阱
- 仅信任几何验证:RANSAC很乐意在两个真正相似的地点之间拟合出一个混淆匹配;只有跨回环一致性检验才能发现它。
- 对称环境:走廊、仓库和隧道会产生整族相互一致的虚假回环——这是即使采用PCM式审查也需要保守阈值的病态情形。
- 贪心地接受第一个回环:仅凭单一未经审查的回环合并地图,会把它的误差(或其虚假性)固化进两幅地图;等待一个一致的集合几乎不费什么代价,却能挽救一切。
对SLAM的意义
跨机器人回环检测是购买共享地图的货币——这正是多机器人SLAM的全部意义所在。它们的稀缺性(机器人可能很少重叠)以及失败代价的巨大(一次错误回环会破坏每个机器人的地图)解释了为什么现代协作系统在鲁棒位置识别和抗外点优化上投入如此之多。