Loop Closure
- 別名: loop closing, loop closure detection
- カテゴリ: State estimation & navigation › Localisation
- タグ: slam, localization, place-recognition, mapping, state-estimation
ロボットが以前に訪れた場所に戻ったことを認識し、その一致を使って途中で蓄積したドリフトを補正する、SLAM の処理段階。
定義
ループクロージャ(Loop closure)とは、地図作成中に、ロボットがすでに見た場所に戻ってきたことを認識し、その認識を使って推定した軌跡を補正することである。オドメトリは、車輪、IMU、カメラ、LiDAR のいずれによるものであれ、ステップごとに小さな誤差を蓄積する。長いループを回ったあとでは、物理的には同じ地点に戻っていても、ロボットの自己位置の推定が出発点から目に見えてずれていることがある。ループクロージャは現在の姿勢を以前の姿勢と結び付け、システムが誤差を配分し直せるようにする。
ループクロージャは二つの部分からなる。検出は、しばしば場所認識と呼ばれ、現在の観測が以前の観測と一致するかを判断する。カメラベースのシステムでは、DBoW2 のような Bag of Visual Words の手法や学習された大域記述子がよく使われ、LiDAR のシステムでは Scan Context のようなスキャン記述子や直接的な幾何マッチングが使われる。続く検証では、たとえば画像には特徴マッチングと RANSAC、点群には ICP を用いて二つの観測間の相対変換を計算し、幾何学的に合わないマッチを除外する。
検証が済むと、ループクロージャは制約として、通常はポーズグラフのエッジとして追加され、バックエンドがすべての姿勢を最適化し直す。補正は終点だけに適用されるのではなく、ループ全体に分散される。
主な難しさは知覚的エイリアシングである。まったく同じ廊下、棚の列、繰り返す作物の畝など、異なる場所が似て見えることがある。誤ったループクロージャは地図全体をゆがめうるため、実用的なシステムは保守的で、誤ったクロージャを受け入れるよりも本当のクロージャを見逃すほうを選ぶ。
重要な理由
ループクロージャがなければ、オドメトリから作ったどんな地図もドリフトが大きくなるにつれて徐々に劣化し、同じ廊下がわずかに異なる位置に二重に地図化されることもある。長い距離や繰り返しの訪問にわたって大域的に整合した地図を SLAM システムが構築できるのは、ループクロージャのおかげである。
主な用途
- LiDAR SLAM やカメラ SLAM による、整合した屋内外の地図の構築
- ビジュアルオドメトリやビジュアル慣性オドメトリのドリフトの補正
- ロボットが移動させられたり追跡を失ったりしたあとの再自己位置推定
- 複数のセッションや複数のロボットの地図の統合
実際の使われ方
Cartographer、RTAB-Map、ORB-SLAM などの SLAM パッケージを動かす移動ロボットでは、ループクロージャは追跡と並行してバックグラウンドで動作する。新しいキーフレームやサブマップはそれぞれ、以前のものからなるデータベースと比較される。見た目の閾値を通過した候補は幾何学的にチェックされ、十分なインライアと整合した変換を持つものだけがポーズグラフの最適化器に渡される。チームは新しいサイトの地図を作るとき、通常、システムがループを閉じる機会を持てるよう意図的にループを走らせ、環境ごとに検出の閾値を調整して、倉庫のような繰り返しの多い空間ではクロージャを少なめに受け入れる。地図に二重になった壁や曲がった廊下が現れたとき、ループクロージャの見逃しや誤りは、エンジニアが最初に確認する点の一つである。
よくある誤解
- ループクロージャは現在の姿勢だけを補正する — 追加された制約をバックエンドの最適化器が軌跡全体に伝播させる
- 二つの画像が同じに見えれば同じ場所である — 知覚的エイリアシングがあるため、見た目の一致は信頼する前に幾何学的に検証しなければならない
- ビジュアルオドメトリにはすでにループクロージャが含まれている — オドメトリが推定するのは増分的な運動だけであり、オドメトリを完全な SLAM にするのがループクロージャである
知っておくべき人
- SLAM と地図作成のエンジニア
- 移動ロボットやドローンのナビゲーションの開発者
- 場所認識に取り組むコンピュータビジョンのエンジニア
- 大規模な屋外サイトの地図を作るフィールドロボティクスのチーム
関連技術
- 場所認識(Place Recognition)
- Bag of Visual Words
- RANSAC
- ORB-SLAM
- Cartographer
- RTAB-Map
関連用語
関連プロジェクト
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
動画
- SLAM Course - 20 - SLAM Frontends (2013/14; Cyrill Stachniss): Cyrill Stachniss