IMU

IMU(Inertial Measurement Unit、慣性計測装置)はプラットフォーム自身の運動を計測する。3軸の加速度計は(重力を含む)線形加速度を、3軸のジャイロスコープは角速度を、いずれも高いレート——通常100~1000 Hz——で与える。これは典型的な自己受容センサーであり、世界を感知するのではなく、自分自身の身体を感知する。

IMUが実際に計測しているもの

標準的な計測モデルは、世界座標系WWに対する物体座標系BBで次のように書ける。

ωm=ω+bg+ng,am=RBW(aWgW)+ba+na\boldsymbol{\omega}_m = \boldsymbol{\omega} + \mathbf{b}^g + \mathbf{n}^g, \qquad \mathbf{a}_m = R_{BW}\,(\mathbf{a}_W - \mathbf{g}_W) + \mathbf{b}^a + \mathbf{n}^a

初心者を驚かせる点が2つある。第一に、加速度計が計測しているのは比力(specific force)であり、加速度そのものではない。重力は常に計測値に含まれており、これが静止したIMUがゼロではなく上向きに約 9.81m/s29.81\,\text{m/s}^2 を示す理由である。これは呪いでもあり(積分の前に重力を追跡し引き算しなければならない)恵みでもある(重力方向によってロールとピッチが観測可能になる)。第二に、すべての軸はバイアス——温度と時間によって変化するゆっくりとしたオフセット——を持つため、工場出荷時のキャリブレーションだけでは決して十分ではなく、ba,bg\mathbf{b}^a, \mathbf{b}^g はSLAM状態の一部としてオンラインで推定される。

3つの特性が、推定においてIMUがどのように振る舞うかを決定する。

デッドレコニングが発散する理由

積分の連鎖をたどると、失敗モードが具体的に見えてくる。方向はジャイロを積分して得られ、速度と位置は計測された比力を世界座標系に回転させ、重力を足し戻し、2回積分することで得られる。

これが、民生用MEMS IMUによる純粋な慣性デッドレコニングが数秒以内に発散する理由であり、一方で(バイアス安定性が桁違いに優れた)ナビゲーショングレードのユニットは、コスト・サイズ・電力を桁違いに払うことで、はるかに長くデッドレコニングできる。

カメラとIMUの結婚

IMU単体ではSLAMを行うことはできないが、IMUとカメラを組み合わせることは、ロボティクスにおいて最も成功したセンサー組み合わせの一つである。両者は完璧に相補的である。

カメラIMU
レート10~60 Hz100~1000 Hz
計測対象外界(ドリフトを補正する)自己運動(ドリフトする)
失敗する状況速い運動、ブラー、暗闇、低テクスチャ「失敗」はしないが、ドリフトする
スケール観測不可能(単眼)観測可能(加速度計経由)

IMUはカメラフレーム間の隙間を橋渡しし、特徴点追跡のために運動を予測し、メートル単位のスケールと重力方向を観測可能にし、短い視覚的な途絶を乗り切る。一方カメラは、IMUのバイアスを推定し続け、そのドリフトを抑制する。

IMUデータが推定器に入る仕組み

SLAMの形式化においては、IMU計測は運動モデルに入る:xt+1=f(xt,ut)+wt\mathbf{x}_{t+1} = f(\mathbf{x}_t, \mathbf{u}_t) + \mathbf{w}_t であり、状態は速度とバイアスを含むように拡張される。キーフレーム間には数百のIMUサンプルが到着するため、現代のシステムはプリインテグレーションを用いる。2つのキーフレーム間の計測は、バイアスと重力を補償しながら単一の相対運動制約に蓄積され、オプティマイザは千個の生サンプルの代わりに1つのファクターに触れるだけで済む——さらに、バイアス推定が変化した場合でも、再積分せずにそのファクターを安価に補正できる。この話題は——雑音モデル、キネマティクス、観測可能性とともに——レベル6(VIO/VINS)の核心である。

レベル6の前に重要な実務上の注意点:カメラ-IMU融合は、外部キャリブレーション(カメラとIMU間の剛体変換)と、2つのセンサークロック間の時刻同期が良い場合にのみ良好に機能する——両者はKalibrのようなツールで推定され、いずれもVIOの謎の失敗の典型的な原因である。

SLAMにおける意義

事実上すべての実運用の視覚追跡システム——スマートフォンAR、ドローン、ヘッドセット、掃除ロボットのナビゲーション——は、視覚のみではなく視覚慣性である。それはIMUが実世界の運動速度でも頑健な追跡を可能にし、スケールをメートル単位にするからである。IMUが何を計測しているか、その誤差がどう振る舞うか、そしてなぜ積分がドリフトするのかを理解することは、VIOレベルのすべてにおける前提条件である。

関連ノート