EKFの可観測性¶
- 著者:
石田 岳志
概要¶
2次元平面上のロボットの動作を拡張カルマンフィルタ(EKF)で推定すると数百ステップ程度で安定性が失われることが知られている。これは主にヨー角に対応する推定共分散が実際の共分散よりも小さくなってしまうことが主因とされている [Julier2001] [Bailey2006] 。ここでは [Huang2008] [Huang2009] を参考としてこの現象の要因をEKFの可観測性の観点から論じ、解決方法を記す。
システム方程式¶
制御工学では一般に次のような方程式を扱う。
線形システムの場合¶
非線形システム (1) は複雑で解析が難しいため、行列 \(A \in \mathbb{R}^{n \times n}, B \in \mathbb{R}^{n \times m}, C \in \mathbb{R}^{l \times n}\) を用いてより単純な線形システムを考えることもある。
ここで \(\mathbf{u}(t) = \left[u_{1}(t) \; ... \; u_{m}(t)\right]^{\top}\) である。 状態方程式の解法 より、 \(\mathbf{x}(t_{0})\) を初期値とした \(\mathbf{x}(t_{1})\) の値は次の式で表される。
システムの可観測性¶
線形システムの可観測性¶
ある時刻 \(t_{1}, t_{1} > t_{0}\) の観測値 \(\mathbf{y}(t_{1})\) を用いてシステムの初期値 \(\mathbf{x}(t_{0})\) を一意に定められるとき、そのシステムは可観測であるという。 具体例を見たほうがわかりやすいため、まずは線形システムの可観測性について見てみよう。
ここではまず線形システムの可観測性を考える。状態方程式の解 (3) より、状態と観測値の関係は次の式で表される。
となる \(\mathbf{x}(t)\) が存在してしまうことが考えられる。この場合、特定の時刻 \(t_{0}\) の状態 \(\mathbf{x}(t_{0})\) を一意に定めることができない。このとき、この線形システムは可観測でない。
以上より次の2つのことがおわかりいただけただろう。
ある時刻 \(t_{1}\) の観測値 \(\mathbf{y}(t_{1})\) を用いて別の時刻 \(t_{0}, t_{0} < t_{1}\) における状態 \(\mathbf{x}(t_{0})\) を一意に定められるとき、そのシステムは可観測であるという
線形システムにおいては行列 \(C e^{A (t_{1} - t_{0})}\) の性質を調べることでシステムの可観測性を判定できる
非線形システムの可観測性¶
非線形なシステムの可観測性を見ていこう。
改めて、我々の目的は観測値 \(\mathbf{y}(t) \in \mathbb{R}^{l}\) および既知の入力 \(\mathbf{u}(t) \in \mathbb{R}^{m}\) から状態 \(\mathbf{x}(t) \in \mathbb{R}^{n}\) を一意に定めることである。 一般に観測値の次元数 \(l\) は状態の次元数 \(n\) と同じかそれより小さいため、 \(\mathbf{h}\) の逆関数を求めるだけでは状態を一意に定めることができない。ではどうするかというと、 \(\mathbf{y}(t)\) を \(\nu\) 回微分して互いに独立な関数を \(\nu + 1\) 個列挙し、これと状態 \(\mathbf{x}(t)\) をある関数 \(\phi\) によって対応付けることで状態を一意に定めるのである。
\(\mathbf{y}^{(\nu)}(t)\) よりも高次の導関数を \(O\) に含めないのは、 \(\nu + 1\) 次以上の導関数が \(\nu\) 次までの導関数の線型結合で表せることを仮定しているからである(参照: 高次導関数の低次導関数による表現 )。
我々の関心は \(\mathbf{\phi}\) の逆関数 \(\mathbf{\phi}^{-1}\) が存在するかどうかである。 とりうる全ての状態について逆関数 \(\mathbf{\phi}^{-1}(\mathbf{x}(t))\) の値を一意に定められるとき、そのシステムは可観測である。
可観測性の検証、すなわち \(\mathbf{\phi}\) が可逆であるかどうかの検証には逆関数定理を用いる。
開集合 \(U \subset R^{n}\) および微分可能な写像 \(\mathbf{\phi} : U \to R^{n}\) について、 \(\mathbf{\phi}\) の \(\mathbf{p} \in U\) におけるヤコビアン \(\frac{\partial \mathbf{\phi}}{\partial \mathbf{x}}\) が正則であるとき、 \(\mathbf{\phi}\) は \(\mathbf{p}\) の近傍で可逆である。
すなわち、ある状態 \(\mathbf{x}_{0} \in \mathbb{R}^{n}\) の近傍で \(\mathbf{\phi}\) が可逆であることは、 \(\operatorname{rank}( \left .{ \frac{\partial \mathbf{\phi}}{\partial \mathbf{x}} } \right \vert_{\mathbf{x}_{0}} ) = n\) が成り立つことと等価である。
逆関数定理はあくまで点 \(\mathbf{p}\) の近傍における関数 \(\mathbf{\phi}\) の可逆性を述べている。一般に、逆関数定理だけでは \(\mathbf{\phi}\) の定義域全体における可逆性は検証できないことに注意が必要である。
以上より、非線形システム (1) の局所的な可観測性は次のようにして調べることができる。
非線形システム (1) は、状態と観測空間を対応付ける写像 \(\mathbf{\phi}\) および状態 \(\mathbf{x}_{0}\) について \(\operatorname{rank}( \left .{ \frac{\partial \mathbf{\phi}}{\partial \mathbf{x}} } \right \vert_{\mathbf{x}_{0}})) = n\) が成り立つとき、 \(\mathbf{x}_{0}\) の周辺で局所的に可観測である。
逆関数定理はあくまで局所的な可逆性を述べるのみであるため、一般的には非線形システムの可観測性も局所的にしか明らかにできないことに注意が必要である。
離散時間線形システムの可観測性¶
離散時間線形システムの観測性を調べる。
状態の次元数は \(n\) なので、状態 \(\mathbf{x}_{k}\) を一意に決定するには \(n\) 本の式が作れればよい。
この時間展開をまとめてよりシンプルな式で表現しよう。
これにより時間発展 (7) は次の式で表現できる。
観測値 \(\mathbf{y}\) から \(\mathbf{x}_{k}\) を計算するには次のようにすればよい。
行列 \(M\) はシステムの可観測製の判定に使えるため、 可観測行列 と呼ばれる。
式 (9) を見れば、行列 \(M\) の零空間(あるいは核) \(\operatorname{Null}(M)\) が観測不可能な空間を表していることがわかる。
EKFの局所可観測性の検証¶
根底となるモデル¶
ここでは2次元平面上で unicycle model に従って動くロボットの状態遷移をEKFによって推定することを考える。
時刻 \(k\) における状態を次のように表す。
\(x_{{R}_{k}}, y_{{R}_{k}}, \phi_{{R}_{k}}\) はそれぞれロボットのx座標、y座標、ヨー角を表す。 \(x_{{{L}_{i}}_{k}}, y_{{{L}_{i}}_{k}}, i=1,...,N\) はランドマークの座標を表す。 状態は \(\delta t\) 秒ごとに更新されるものとする。
制御入力は車両の速度を \(v_{k}\) 、角速度を \(\omega_{k}\) とし、 \(\mathbf{u}_{k} = \left[v_{k}\;\omega_{k}\right]^{\top}\) と定める。
真値の状態遷移にはノイズが乗る。ノイズの共分散行列を \(Q \in \mathbb{R}^{(2N+3)\times(2N+3)}\) とすると、真値の状態遷移は次のように表される。
関数 \(\mathbf{f}\) は次のようになる。
次に観測モデルを定める。ここでは一般的に用いられる range-bearing センサに倣い、ランドマークまでの距離と角度を観測値とする。
観測値にもノイズが乗る。ノイズの共分散行列を \(R_{k} \in \mathbb{R}^{2N \times 2N}\) とすると、観測値は次のように表される。
EKFによる状態推定¶
Prediction¶
時刻 \(j\) の情報を用いて推定された時刻 \(i\) の情報を \(i|j\) で表記する。EKFでは状態誤差 \(\tilde{\mathbf{x}}_{k|k} = \mathbf{x}_{k} - \hat{\mathbf{x}}_{k|k}\) が平均 \(\mathbf{0}\) 、分散 \(P_{k|k}\) の正規分布に従い、これが行列 \(\Phi_{k}\) に従って遷移していくことを仮定する。
状態誤差 \(\tilde{\mathbf{x}}_{k|k}\) の分散は次のように計算される。
\(\mathbb{E}[\hat{\mathbf{x}}_{k|k}^{\top}\mathbf{w}] = 0\) と仮定すれば、 \(\operatorname{cov}(\tilde{\mathbf{x}}_{k+1|k})\) を次のように計算することができる。
Update¶
観測モデルも同様に線形近似する。
カルマンゲインを計算し、状態と共分散を更新する。
EKFの可観測性¶
ここではEKFの可観測性を調査する。2次元平面状を動く車両の状態をEKFで推定すると、観測可能な次元数が理想的なケースよりも増えてしまうことを示す。これは共分散の過剰な収束および状態推定の不安定化を招く。
EKFの状態誤差の遷移は離散時間線形システムとみなすことができるため、その可観測性を調べるには 離散時間線形システムの可観測性 に従って可観測行列を作成し、そのランクを調べればよい。Jacobianが真の状態で計算される理想的なシステムと、Jacobianが状態の推定値で評価される通常のEKFについてそれぞれの可観測性を判定し、EKFが理想的なケースよりも多くの観測可能な次元数を持つことをみる。
理想的なケース¶
まずは状態遷移モデルおよび観測モデルが真の状態で微分される理想的なシステムの可観測性を見る。これによりノイズにとわられない、システムが持つ本来の可観測性を調べることができる。
状態は真値をとり、かつノイズもないことを仮定する。したがって真の状態を表す記号を \(\mathbf{x}^{*}_{k|k}\) とすると、 \(\mathbf{x}^{*}_{k|k-1} = \mathbf{x}^{*}_{k|k} = \mathbf{x}^{*}_{k}\) である。
ノイズがないことを仮定するため、状態遷移は次のように表される。
真の状態で評価したJacobianを記号 \(\breve{\boldsymbol{\cdot}}\) で表記する。
関係 \(v_{k} \sin(\phi^{*}_{{R}_{k}}) = y^{*}_{R_{k+1}} - y^{*}_{R_{k}},\;v_{k} \cos(\phi^{*}_{{R}_{k}}) = x^{*}_{R_{k+1}} - x^{*}_{R_{k}}\) を用いると次のようになる。
ここでロボット状態誤差の遷移に関する部分を \(\breve{\Phi}_{R_{k}}\) としている。
観測モデルのJacobianは次のようになる。
理想的なシステムの可観測性を見てみよう。式 (8) にしたがって可観測行列を計算する。時刻 \(k\) を起点とした可観測行列は次のようになる。
この行列のランクを調べればシステムの可観測性を判定できる。
まずは \(\breve{\Phi}_{R_{k}}\) の便利な性質を活用しよう。
より、ある \(\lambda=1,...,n\) について
である。
つぎに \(\breve{H}_{k}\) について見てみよう。 まず関数 \(\mathbf{h}(\mathbf{x}_{k})\) を \(\mathbf{h}_{a}, \mathbf{h}_{b}\) の2つに分解し、 \(\mathbf{h}(\mathbf{x}_{k}) = \mathbf{h}_{a}(\mathbf{h}_{b}(\mathbf{x}_{k}))\) とする。ここで \(\mathbf{h}_{b}\) を次のように定義する。
\(\mathbf{h}_{b}\) はロボットから見たランドマークの相対位置を表している。
合成関数の微分法により、 \(\breve{H}_{k}\) は次のように計算できる。
\(\mathbf{h}_{b}\) の微分は以下のように計算される。
したがって \(\breve{H}_{R_{k}}\) は次のようになる。
可観測行列の \(\lambda+1\) ブロック行目のうちロボットの状態 \(x^{*}_{{R}_{k}}\; y^{*}_{{R}_{k}}\; \phi_{{R}_{k}}\) に関連する部分は次のように計算できる。
このモデルではノイズがなく、ランドマーク位置も不変であることを仮定しているため、 \(x^{*}_{{L_{i}}_{k}}=x^{*}_{{{L}_{i}}_{k+\lambda}},y^{*}_{{L_{i}}_{k}}=y^{*}_{{{L}_{i}}_{k+\lambda}}, i=1,...,N, \lambda=0,...,n\) とおくことができる。結果として可観測行列のロボット状態に関連する部分は次のようになる。
可観測行列のランドマークに関連する部分は式 (10) より次のようになる。
以上より可観測行列の各行は次の式で計算できる。
可観測行列は次のように書くことができる。
可観測行列 \(\breve{M}_{k}\) のランクは行列 \(E\) のランクに等しく、その値は \(2N\) である。
可観測行列の零空間はシステムが観測不可能な空間と等しい。
左2つの基底は並進に関する不確定性を意味しており、3つめの基底は回転に関する不確定性を表現している。
実際のEKFの可観測性¶
実際のEKFの可観測行列を計算してみよう。まずは先ほどと同様に \(\Phi_{R_{k+n-1}} ... \Phi_{R_{k+1}} \Phi_{R_{k}}\) を計算してみる。
今度はUpdateステップの位置修正ぶんの項 \(\Delta y_{R_{k+1}}, \Delta x_{R_{k+1}}\) が残ることに注意しよう。
可観測行列を構成する要素を計算する。
可観測行列の \(\lambda+1\) ブロック行目は次のようになる。
可観測行列は
で計算できるが、これは \(\sum_{j=k+1}^{k+\lambda-1} \Delta y_{R_j}, \sum_{j=k+1}^{k+\lambda-1} \Delta x_{R_j}\) の項の影響を受けるため、式 (11) で示されている理想的な可観測行列とは明らかに異なる零空間を有する。
\(\operatorname{Null}(\breve{M}_k)\) と比較してわかることは、零空間から回転に関する基底が消えたことである。これは通常のEKFでは理想的なモデルに比べて可観測な空間が増え、その影響を受けて 回転に関する不確定性が仮想的に減る ことを意味する。すなわち、理想的なモデルさえヨー角が定まらないような状態遷移のパターンが存在するのに、実際のEKFではいかなる場合であっても観測値からヨー角を一意に定めることができてしまう。理想的なモデルには回転に関する不確定性が存在するが、通常のEKFではそれが消えてしまっている。これは結果としてヨー角に対応する共分散が減少することを意味する。 ヨー角に対応する共分散の過剰な減少はEKFの不安定化を招くことがすでに指摘されている [Julier2001] [Bailey2006] 。したがって、EKFの回転に関する不確定性を復活させることはEKFの安定化に寄与する。
改善手法 (First Estimates Jacobian)¶
回転に関する不確定性が消えてしまう問題はEKFのUpdateステップにおけるXY座標のずれが蓄積してしまうことによって生じる。したがって、可観測な空間を理想的なEKFと一致させるためにはこのずれをなくしてしまえばよい。
\(\Phi_{R_{k}}\) と \(H_{R_{k}}\) を次のようにおくと、可観測行列のうちヨー角に対応する不確定性が復活する。
主な変更点は Prediction ステップで得られた状態で \(\Phi^{\prime}_{R_{k}}\) を計算していることと、最初の時刻 \(k\) で観測されたランドマークの値を用いて \(H^{\prime}_{R_{k+\lambda}}\) を計算していることである。
実際に可観測行列を計算してみよう。
\(\Phi^{\prime}_{R_{k}}\) の性質より、
となるため、可観測行列の \(\lambda+1\) 行目は
と計算できる。したがって可観測行列を構成すると、
となり、理想的なシステムの可観測行列 (11) と同じランクおよび零空間を有することがわかる。
この操作によりヨー角に関する不確定性が復活し、共分散の過剰な減少を防ぎ、EKFの安定性が向上する。
Appendix¶
状態方程式の解法¶
状態方程式
について、右辺第一項を移項し両辺に \(e^{-At}\) をかける。
となる。これは (12) の左辺に一致する。
両辺を \(t_{0}\) から \(t_{1}\) まで積分する。
両辺に \(e^{A t_{1}}\) をかければ解が得られる。
変数の衝突があると混乱を招くため、積分変数を \(t\) ではなく \(\tau\) としておこう。
高次導関数の低次導関数による表現¶
観測モデルを \(y(t) = t \sin(t)\) としたとき、4次より高次の導関数は3次までの導関数の線型結合で表すことができる。したがって \(k = 4\) である。
Julier, Simon J., and Jeffrey K. Uhlmann. “A counter example to the theory of simultaneous localization and map building.” Proceedings 2001 ICRA. IEEE International Conference on Robotics and Automation (Cat. No. 01CH37164). Vol. 4. IEEE, 2001.
Bailey, Tim, et al. “Consistency of the EKF-SLAM algorithm.” 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2006.
Huang, Guoquan P., Anastasios I. Mourikis, and Stergios I. Roumeliotis. “A first-estimates Jacobian EKF for improving SLAM consistency.” Experimental Robotics: The Eleventh International Symposium. Springer Berlin Heidelberg, 2009.
Huang, Guoquan P., Anastasios I. Mourikis, and Stergios I. Roumeliotis. “Analysis and improvement of the consistency of extended Kalman filter based SLAM.” 2008 IEEE International Conference on Robotics and Automation. IEEE, 2008.