ロボット間閉ループ

ロボット間閉ループとは、2台の「異なる」ロボットが同じ場所を観測したという検出、およびそれらの観測間の相対ポーズのことである。これは協調SLAMにおける根本的なイベントである――これがなければ、2台のロボットのマップは無関係な座標系のままであるが、これがあれば、サブマップを整合させ、マージし、共同で最適化できる。

単一ロボットの閉ループより難しい理由

検証のはしご

誤った閉ループは破滅的であるため、受理は段階的に行われ、各段階が前段階の生存者をフィルタする。

  1. 見た目上の候補: 記述子の類似度(BoWスコア、埋め込み距離)が、ロボット間のキーフレーム対にフラグを立てる。
  2. 幾何学的検証: 2つのキーフレームのローカル特徴がマッチングされ、RANSACで相対ポーズが推定される(パートナーのローカル3D点に対するPnP、あるいは2D-2Dマッチからの基礎行列)。十分なインライアがあれば、共分散付きの候補制約となる。
  3. 閉ループ間の一致性: 幾何学的に検証された閉ループでもエイリアシングを起こしうる。ロバストなバックエンドは、いずれかの閉ループが信頼される前に、閉ループの「集合」同士が互いに一致しているかを確認する。

段階3について、ペアワイズ一致最大化(PCM、DOOR-SLAMで使用)は、ロボット間閉ループのすべてのペアについて相互一致性を確認する。ロボットaabbの間の2つの計測値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の全体の要点である。その希少性(ロボットが重複する機会は稀な場合がある)と、その失敗コストの大きさ(1つの悪い閉ループがすべてのロボットのマップを損傷する)が、現代の協調システムがロバストな場所認識と外れ値耐性のある最適化にこれほど大きく投資する理由を説明している。

関連ノート