DOOR-SLAM
Lajoie 2020 · 論文
一行要約 — DOOR-SLAM(Distributed, Online, and Outlier Resilient SLAM)は完全に分散したピアツーピアSLAMシステムであり、ペアワイズ一致に基づく外れ値除去によって、ロボットチームが積極的な場所認識のしきい値を使いながらも、偽のロボット間閉ループを安全にフィルタリングできるようにする。
問題
ロボットチームは、GPSのような外部位置決めシステムに依存せず、最小限の情報交換で、環境とその中での自身の位置についての共有理解を必要とする。分散SLAMはまさにこれを提供するが、既存の分散システムは認識上の外れ値に対して脆弱であった。破滅的な誤った閉ループを避けるために非常に保守的な場所認識パラメータを使用していたが、これは多くの「有効な」閉ループ候補も同時に排除し、軌跡精度を劣化させていた。DOOR-SLAMは検出と検証を分離する――ロバストなバックエンドがあれば、フロントエンドをより多くの候補が通過することが安全になる。
手法とアーキテクチャ
ピアツーピアアーキテクチャ。 各ロボットは通信範囲内にチームメイトがいないときは単一ロボットSLAMを実行し、遭遇時には分散プロトコルを実行する。中央サーバーは存在せず、全接続性の要件もない。実装は、ROSの上にBuzzスウォームプログラミング言語を用いている。オンボードでは、RTAB-Mapのステレオ視覚オドメトリが自機のポーズグラフを生成し、2つの分散モジュールがマルチロボットの作業を担う。
分散閉ループ検出(生データの交換なし): 各ロボットはキーフレームごとにNetVLAD記述子(128次元に切り詰め)を計算する。遭遇時、ロボットはロボットに、前回の遭遇以降に生成された記述子のみを送る。はユークリッド距離のしきい値のもとで推定マッチを見つけ、それらのキーフレームについてのみ、視覚特徴(GFTTキーポイントとORB記述子)とその3D位置を返送する。ロボットはOpenCVのsolvePnPRansacで幾何学的検証を実行する。十分なインライア集合が得られると、ロボット間閉ループ計測値(のキーフレームとのキーフレームの間の相対ポーズ)が得られる。
分散外れ値除去 — ペアワイズ一致計測集合最大化(PCM)。 2つのロボット間閉ループとは、2つのオドメトリセグメントとともに形成するサイクルが(近似的に)恒等変換になる場合、ペアワイズ一致であるとされる。
ここではマハラノビス距離、はポーズの合成/逆演算、尤度しきい値はカイ二乗分位点から得られる。相互に一致する計測値の最大集合は、一致グラフの「最大クリーク」として求められる。クリークの外にあるものはすべて棄却される。重要な点として、この指標が必要とするのは、分散PGOのためにすでに交換されている閉ループ計測値とオドメトリのポーズ推定値のみであり、外れ値除去は通信コストの点で「無償」で得られる。
分散ロバストPGO。 インライアの閉ループとオドメトリは、Choudharyらの2段階分散ガウス・ザイデル最適化器に供される。ロボットはまず回転についての合意に達し、その後に完全なポーズを復元し、ロボット間閉ループに関与するポーズ推定値のみを交換する。バックエンドはGTSAM上のC++で実装されている。
実験結果
- シミュレーション(ARGoS、ドローン5台): 分散PCM実装は期待通りに外れ値を棄却する――しきい値を低くするとより多くの計測値(インライアも含む)が棄却され、高くすると時折外れ値が受理されATEが増大する。1%のしきい値が最も安全な設定として使われる。
- KITTI 00を3台のNVIDIA Jetson TX2上の3台のロボットに分割(NetVLADしきい値0.15、最小5個の特徴対応、PCM 1%): 外れ値除去なしでの平均並進誤差86.85 m対PCMありでの8.00 m(ロボット内閉ループは使用せず)。
- ドローン実地試験(DJI Matrice 100を2台、RealSense D435、Jetson TX2、視覚的に反復性の高いサッカー場上): NetVLADしきい値を0.10から0.15に緩めると、PCMが余分な外れ値をフィルタした後に「有効な」ロボット間閉ループが約3倍になる。最小対応数を4〜5(RTAB-Mapのデフォルトは20)に下げると、有効な閉ループが2倍になる。GPSに対するATEは、最も保守的な1%のPCMしきい値で最良(2.19 m)となり、75%を超えるかPCMを無効化すると爆発的に増大する(22.02 m)。
- 通信: キーフレームごとに、900 kBのRGB画像の代わりに1.00 kBのNetVLAD記述子を送信する。マッチごとに、キーポイント情報+記述子はグレースケール画像の600 kBに対して34.51 + 25.00 kBのコストで済む。
- DARPA SubT Tunnel Circuit(Husky UGV2台、ループクロージングにVLP-16のICPを使用、1 km以上の炭鉱): 同じバックエンドをLiDARフロントエンドに接続すると、知覚的エイリアシングによって引き起こされる大きなマップの歪みが除去される(1つの誤った閉ループは残存し、計測共分散の誤キャリブレーションに起因すると分析されている)。分散バックエンドが送信したのは92.27 kBで、同等の集中型交換に対する196.30 kBに比べ、通信負荷をおよそ半減させた。
- 完全なソースコードが公開されている(
MISTLab/DOOR-SLAM)。
SLAMにおける意義
知覚的エイリアシングはマルチロボットマッピングのアキレス腱である――たった1つの誤ったロボット間閉ループが、2台のロボットのマップを修復不可能な形で折り込んでしまう。DOOR-SLAMは、ロバストな外れ値除去を分散SLAMの一級のアーキテクチャ要素とし、その見返りを実証した――積極的なフロントエンドしきい値が安全になり、閉ループが少なくなるのではなく「多く」なる。そのPCMの定式化は、後続のシステムに採用・拡張された(Kimera-Multiは同じ目標に向けてグラジュエーテッド非凸性を使用し、Swarm-SLAMは同じ研究グループによるものである)。これは外れ値耐性のある分散型C-SLAMの参照設計である。
関連ノート
- Kimera-Multi — GNCベースのロバストPGOとセマンティックメッシュを持つ分散型後継システム
- Swarm-SLAM — 同じ第一著者による後続の分散型フレームワーク
- Inter-robot loop closure — PCMが検証する計測値
- Robust pose-graph optimization — 同じ外れ値問題の単一ロボット版
- Communication constraints — 生データが決して交換されない理由
- NetVLAD — 分散型フロントエンドの背後にあるコンパクトな記述子
- Visual place recognition — PCMがしきい値を緩めることを可能にするフロントエンド段階