StereoMSCKF

Sun 2018 · 論文

一行要約 — StereoMSCKF(S-MSCKF)はフィルタベースのMSCKF VIOフレームワークをステレオカメラに適応させ、単眼手法と同等の計算コストでありながら、はるかに高い頑健性を提供し、組み込みプロセッサ上での高速な自律MAV飛行を可能にする。

問題

視覚支援型慣性オドメトリはすでに成熟していたが、サイズと重量の制約から高品質センサーや高性能プロセッサを使えないマイクロ航空機(MAV)による自律飛行にとって、計算効率と頑健性は依然として未解決の課題だった。捜索救助任務におけるMAVは、激しい照明変化、低テクスチャ、突風による急な姿勢変化に見舞われる — VIOは頑健でなければならないが、同時に計画・制御と搭載計算機を共有しつつCPUスパイクを起こしてはならない。従来のステレオ視覚慣性ソリューションは計算コストが高く最適化ベースだった。S-MSCKFは、ステレオが単眼よりはるかに高コストであるはずだという通説に反論し、GPU加速なしで搭載機上で動作する初のオープンソースなフィルタベースのステレオVIOを実現した。

手法とアーキテクチャ

フロントエンド(計算量の約80%)。 FASTコーナーをKLTオプティカルフローで時間方向に追跡し — 珍しいことに — 左右のステレオマッチングにも記述子の代わりにKLTを用いる。これは、記述子ではわずかな精度向上のためにCPUコストがはるかに高くなることを著者らが確認したためである。外れ値は、時間的トラックに対する2点RANSACと、前後のステレオペアにわたる周回マッチング(circular matching)によって除去される。実験的には、20cmのベースラインでは深度1m以上の特徴が信頼性高くマッチする。

フィルタ状態。 EKFは、IMU状態(カメラ-IMU外部パラメータを含む)とNN個のカメラ位置のスライディングウィンドウを推定する:

xI=(GIq    bg    GvI    ba    GpI    CIq    IpC)\mathbf{x}_{I}=\left({}^{I}_{G}\mathbf{q}^{\top}\;\; \mathbf{b}_{g}^{\top}\;\; {}^{G}\mathbf{v}^{\top}_{I}\;\; \mathbf{b}_{a}^{\top}\;\; {}^{G}\mathbf{p}^{\top}_{I}\;\; {}^{I}_{C}\mathbf{q}^{\top}\;\; {}^{I}\mathbf{p}^{\top}_{C}\right)^{\top}

ここでGIq{}^{I}_{G}\mathbf{q}はワールド座標系からIMUへの回転、GvI,GpI{}^{G}\mathbf{v}_I,{}^{G}\mathbf{p}_Iは速度・位置、bg,ba\mathbf{b}_g,\mathbf{b}_aはジャイロ・加速度計バイアスである。誤差状態表現(δq(12IGθ~    1)\delta\mathbf{q}\approx(\tfrac12\,{}^{G}_{I}\tilde{\boldsymbol\theta}^\top\;\;1)^\top)は姿勢の不確かさを3次元に保つ。伝播にはIMU力学x~˙I=Fx~I+GnI\dot{\tilde{\mathbf{x}}}_I=\mathbf{F}\tilde{\mathbf{x}}_I+\mathbf{G}\mathbf{n}_Iの4次Runge-Kutta積分を用いる。

ステレオ計測モデル。 カメラ位置iiで観測された各特徴fjf_jは、両ビューを縦に並べた4次元の計測を提供する:

zij=(ui,1j    vi,1j    ui,2j    vi,2j),\mathbf{z}_{i}^{j}=\left(u_{i,1}^{j}\;\; v_{i,1}^{j}\;\; u_{i,2}^{j}\;\; v_{i,2}^{j}\right)^{\top},

これは左カメラフレーム(Ci,1C_{i,1})と右カメラフレーム(Ci,2C_{i,2})における特徴位置の射影である。R3\mathbb{R}^3ではなくR4\mathbb{R}^4として保持することで、ステレオ整列の必要がなくなる。トラックが終了すると、特徴位置Gpj{}^{G}\mathbf{p}_jが最小二乗法で三角測量され、縦に並んだ残差がrj=Hxjx~+HfjGp~j+nj\mathbf{r}^{j}=\mathbf{H}_{\mathbf{x}}^{j}\tilde{\mathbf{x}}+\mathbf{H}_{f}^{j}\,{}^{G}\tilde{\mathbf{p}}_{j}+\mathbf{n}^{j}として線形化され、特徴はHfj\mathbf{H}_f^jの零空間V\mathbf{V}を通じて消去される:

roj=Vrj=Hx,ojx~+noj\mathbf{r}^{j}_{o}=\mathbf{V}^{\top}\mathbf{r}^{j}=\mathbf{H}_{\mathbf{x},o}^{j}\tilde{\mathbf{x}}+\mathbf{n}^{j}_{o}

これにより、ランドマークは状態に一切現れない — structureless MSCKFのトリックであり、今回はステレオ幾何によって単一フレームからメトリック深度が供給される。

整合性とマージナライズ。 VIOには4つの不可観測方向(グローバル位置とヨー)が存在する。素朴なEKFは偽のヨー情報を得てしまう。S-MSCKFはFEJよりも観測可能性制約付きEKF(OC-EKF)を選んでいる。これは初期化の精度への依存が少ないためである。MSCKFのようにポーズの1/3を一度にマージナライズする(CPUスパイクを生む)代わりに、相対運動に基づくキーフレームに似た2方向戦略により、2つのカメラ状態を1回の更新ごとに交互に除去する。

実験結果

SLAMにおける意義

S-MSCKFは、標準的なステレオフィルタベースVIOのレシピを確立した: 瞬時の深度を得るためのステレオKLTフロントエンド、効率のためのstructureless MSCKFバックエンド、整合性のためのOC-EKF。計算資源が限られた空中ロボットにおいて、うまく設計されたEKFが最適化ベースのシステムに一部のコストで匹敵し得ることを具体的に示し、この妥協は後にOpenVINSによって体系化された。あなたのプラットフォームが小型ドローンや組み込みボードであれば、このMSCKF → S-MSCKF → OpenVINSという系譜が通常の出発点である。

関連ノート