Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Visual-Inertial Odometry

  • 別名: VIO, visual-inertial navigation
  • カテゴリ: State estimation & navigation › Localisation
  • タグ: state-estimation, odometry, imu, computer-vision, drones

カメラ画像と IMU の計測を融合して、ロボットの位置、姿勢、速度を推定すること。IMU はフレーム間の空白を埋め、メトリックスケールを可観測にする。

定義

視覚慣性オドメトリ(VIO)(Visual-inertial odometry)は、慣性計測装置(IMU)と剛に一体として取り付けたカメラの運動を推定する。カメラはフレーム間で視覚特徴や画像の輝度を追跡し、これにより回転と並進の方向はよく拘束されるが、ゆっくりとドリフトし、単眼カメラではメトリックスケールを復元できない。IMU は角速度と比力をはるかに高いレートで計測する。それを積分すると短時間の運動が得られ、重力方向とメトリックスケールが可観測になるが、単独では積分誤差が急速に増大する。両者を組み合わせると、どちらのセンサー単独よりも正確でロバストな推定が得られ、VIO はドローン、AR ヘッドセット、多くの脚ロボットで標準的な状態推定器になっている。

システムは 2 つの軸で異なる。フィルタベースの手法、たとえば Mourikis と Roumeliotis(2007)の multi-state constraint Kalman filter(MSCKF)や ROVIO は、IMU で状態を伝播し、視覚計測で更新する。最適化ベースの手法、たとえば OKVIS や VINS-Mono は、直近のキーフレームにわたるスライディングウィンドウの非線形最小二乗問題を解き、通常はキーフレーム間に IMU プリインテグレーションのファクターを置く。どちらの種類も、特徴の観測を推定器内で直接使う密結合にも、ビジョンパイプラインが別途計算した姿勢を融合する疎結合にもできる。特徴ベースのフロントエンドはコーナーや記述子を追跡し、直接法は画素の輝度を扱う。

VIO はあくまでオドメトリである。位置と重力軸まわりのヨーは不可観測なので、ループクロージャや外部参照がなければドリフトする。一方、ロールとピッチは IMU が重力を感知するため有界に保たれる。精度は、キャリブレーション(カメラの内部パラメータ、カメラと IMU の外部パラメータ、2 つのセンサー間の時間オフセット)と、重力、スケール、速度、バイアスを推定しなければならない初期化に大きく左右される。速い運動はモーションブラーと大きな特徴の変位を引き起こし、テクスチャの乏しさや照明の悪さはフロントエンドへの入力を枯渇させ、等速運動ではスケールとバイアスの可観測性が弱くなる。視覚オドメトリの項目はカメラのみの場合を扱っている。VIO が異なるのは、IMU を補助的なオプションではなく推定器内の完全な計測として扱う点である。

重要な理由

VIO は、軽量で安価かつ省電力なセンサーの組から、GPS や外部のモーションキャプチャなしで、メトリックで高レートな姿勢推定を得られるようにする。俊敏なドローン、モバイル AR デバイス、多くのフィールドロボットがこれに依存しており、その故障モード(ドリフト、スケール誤差、速い運動中のトラッキング喪失)が、そうしたロボットがどこまで激しく動けるかの限界を決める。

主な用途

  • 屋内、樹冠の下、構造物の近くでの GPS なしのドローン飛行
  • 拡張現実と仮想現実のための頭部やデバイスのトラッキング
  • 脚ロボットやハンドヘルドのマッピング機器の状態推定
  • 視覚慣性 SLAM システムのフロントエンド
  • 衛星測位が使えない場所での航空機や着陸機のナビゲーション

実際の使われ方

自律レース用クアッドロータを開発するチームが、グローバルシャッターのステレオカメラと IMU を同じ剛なプレートに取り付け、キャリブレーションターゲットと Kalibr などのツールを使って、カメラの内部パラメータ、カメラと IMU の外部パラメータ、時間オフセットをキャリブレーションする。機体上では、スライディングウィンドウ推定器がカメラのフレームレートで特徴を追跡し、フレーム間で IMU を積分して、IMU のレートで姿勢と速度をコントローラに配信する。速い旋回中はモーションブラーによって特徴トラックが短くなり、コース全体を通じて位置推定がドリフトするため、チームはおおよその位置が既知であるレースゲートの検出結果を融合して、蓄積したドリフトを補正する。毎回の飛行で推定器が出力するバイアスと特徴数を記録する。特徴数の減少は、たいてい差し迫った失敗の最初の兆候だからである。

よくある誤解

  • VIO は絶対位置を与える — これはオドメトリであり、ループクロージャ、マップ、外部参照で補正しない限り、位置と方位は移動距離とともにドリフトする
  • IMU を加えれば視覚オドメトリのあらゆる失敗が解決する — IMU は短い空白を埋めるが、追跡可能な特徴がない状態が長く続けば依然としてドリフトが生じ、初期化が破綻することもある
  • どんなカメラと IMU も気にせず組み合わせられる — 正確な外部パラメータのキャリブレーションと時刻同期が、推定器が機能するか発散するかを左右することが多い

知っておくべき人

  • 状態推定と SLAM のエンジニア
  • ドローンと空中ロボットの開発者
  • AR と VR のトラッキングエンジニア
  • 脚ロボットと移動ロボットのナビゲーションエンジニア

関連技術

  • VINS-Mono
  • OKVIS
  • MSCKF
  • ROVIO
  • ORB-SLAM3
  • Kalibr

関連用語

  • Visual Odometry
  • IMU
  • IMU Preintegration
  • Tightly Coupled Sensor Fusion
  • Sensor Fusion
  • SLAM

関連プロジェクト

  • ArduPilot: World's most trusted open-source autopilot for drones, planes, rovers, and submarines
  • PX4 Autopilot: Open-source flight control software for drones and other unmanned vehicles
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
  • QGroundControl: Cross-platform ground control station for mission planning and drone flight monitoring
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。