通信制約
マルチロボットSLAMは、通信帯域の制約によって成否が決まる。実際のロボットチームは、帯域が限られ、接続が途切れがちなリンク越しに通信する――通信範囲の限界にあるWiFi、アドホックなメッシュ無線、あるいはキロビット毎秒単位で測られる地下・水中チャンネルなどである。生のセンサストリームや高密度マップを送信することは現実的ではないため、協調SLAMシステムは「安価に共有できるものは何か」を中心に設計される。
共有可能データのコスト階層
伝送バイト数がおおよそ増加する順に並べると:
- キーフレームのグローバル場所記述子(バグオブワーズベクトルや学習済み埋め込み)――最も安価な通貨であり、遭遇の可能性を「検出」するには十分。
- 1つのキーフレームのローカル特徴(キーポイント+記述子)――候補となる閉ループを幾何学的に「検証」するには十分であり、画像そのものより桁違いに小さい。
- ポーズグラフ/疎なランドマーク部分集合――軌跡を整合させ、共同最適化するには十分。
- 圧縮サブマップ(メッシュ、TSDFブロック、点群セグメント)――高価な階層であり、送られるとしても稀にしか送られない。
うまく設計されたシステムは、この階層を遅延的に上っていく――階層1は常時ブロードキャストし、階層2は有望なマッチに対してのみ送信し、階層3〜4は確定したマージのために取っておく。
設計パターン
- 画像ではなく疎な記述子。 ロボットは、数メガバイトのピクセルの代わりに、コンパクトな場所認識シグネチャ――バグオブワーズベクトル(DBoW2)や学習済みグローバル記述子(NetVLAD)――を交換する。完全な特徴集合や生画像は、有望なマッチが見つかった後にのみ送信される(それすら送らない場合もある)(C2TAMはすでにキーポイントと記述子のみを送信し、画像は一度も送らなかった)。
- コンパクトなマップ表現。 ポーズグラフと疎なランドマーク集合は伝送されるが、高密度メッシュ、TSDF、点群は通常ローカルに留まり、送られるとしても圧縮サブマップや境界情報程度である。
- インクリメンタル/重複除去した交換。 各近隣がすでに持っているものを把握し、新規データのみを送る(Swarm-SLAMの疎な記述子交換)――データベース全体を再ブロードキャストするのではなく。
- 予算下での優先付け。 リンクがすべての閉ループ候補を運べない場合、最も価値のある候補に検証帯域を費やす――例えばSwarm-SLAMは、類似度、不確実性、そして分断されたサブグラフを接続するかどうかによって候補にスコアを付ける。
- 切断への耐性。 接続は本質的に断続的であるという前提のもとで、クライアントはキーフレームをローカルにバッファし、再接続後に遡ってアップロードする(CCM-SLAM)。また、ネットワークが消失してもローカルオドメトリは影響を受けずに継続しなければならない。
- 小さなメッセージによる分散最適化。 分散ポーズグラフソルバーが選ばれる理由の一つは、その1反復あたりのメッセージ(近隣間でやり取りする少数のポーズや勾配)が、完全なマップを送るのに比べて非常に小さいことである。
よくある落とし穴
- 完璧なネットワークでの評価。 シミュレーションで完全かつ継続的な接続性を前提とするシステムは、現実の最初の切断に出会った瞬間にクラッシュする。切断への対処は、後付けではなく設計上の前提でなければならない。
- 遅延の無視。 十分な帯域があっても、補正は遅れて到着する。クライアントは、最新のマップを待ってブロックするのではなく、やや古いマップ上での動作を許容しなければならない(C2TAMの非同期キャッシュマップ・パターン)。
- 規模拡大に伴うブロードキャストストーム。 単純な全対全の記述子ブロードキャストはチーム規模に対して二次的に増大する。重複除去と近隣認識型の交換がスウォームを実用的なものにする。
- 検証できないものを送ること。 幾何学的検証に失敗する閉ループ候補を送るために帯域を費やすのは純粋な無駄である――だからこそ候補の優先付けは、分散システムにおける一級の問題として扱われる。
有用な思考モデル: 通信チャンネルは、CPUやバッテリーと同様の、もう一つのセンサ予算制約である。協調SLAMのアーキテクチャ上の特徴――集中型か分散型か、記述子の選択、サブマップの粒度、閉ループの優先付け――はすべて、「パイプに何が収まるか」への答えとして読み解くことができる。
SLAMにおける意義
ベンチマーク上では同一に見えるアルゴリズムでも、伝送バイト数は桁違いに異なり、実運用の現場ではネットワークが最初に破綻することが多い。疎で優先付けされ、切断に耐性のある共有のために設計することが、展開可能なマルチロボットSLAM(地下探査、捜索救助、倉庫フリート)とシミュレーションのみの結果を分ける要因である。