さて、カルマンフィルターを読んでください。基本的に、それが行うことは、平均と分散を別々に使用して状態を推定することです。状態は好きなようにできます。州のローカル座標だけでなく、グローバル座標も持つことができます。
後者は確かに非線形システム ダイナミクスになることに注意してください。この場合、拡張カルマン フィルターを使用できます。より正確には、システム ダイナミクスを連続的に処理し、測定値を離散的に処理する連続-離散カルマン フィルターを使用できます。時間。
グローバル座標の例:
速度 v で前方に駆動できる小さな立方体の質量があると仮定します。状態 s がs = [v]
線形モデルであるローカル座標のみでダイナミクスを単純にモデル化できます。
ただし、平面上のみを移動していると仮定すると、グローバル座標 x と y を組み込むこともできます。次に、あなたが持っているでしょうs = [x, y, phi, v]'
。phi
もちろん、立方体はその方向に対して前方にしか移動できないため、現在の方向を追跡する必要があります。phi
立方体の前方方向と - 軸の間の角度として定義しましょうx
。言い換えればphi=0
、立方体は x 軸に沿って移動し、立方体はphi=90°
y 軸に沿って移動します。
グローバル座標を使用した非線形システム ダイナミクスは、次のように記述できます。
s_dot = [x_dot, y_dot, phi_dot, v_dot]'
と
x_dot = cos(phi) * v
y_dot = sin(phi) * v
phi_dot = ...
v_dot = ... (Newton's Law)
EKF (拡張カルマン フィルター) 予測ステップでは、上記の (離散化された) 方程式を使用して、最初のステップで状態の平均を予測し、線形化 (および離散化) された方程式を分散の予測に使用します。
s
状態ベクトルがどのように見えるかを決定するときは、次の 2 つの点に注意してください。
s = [v]
グローバル座標推定を取得するために、私の線形の例を使用して、カルマン フィルターの外側で速度を積分したくなるかもしれません。これは機能しますが、分散ではなく状態の平均のみを統合するため、カルマン フィルターの優れた点が失われます。言い換えれば、グローバル座標の現在の不確実性が何であるかがわかりません。
- カルマン フィルターの 2 番目のステップである測定または補正の更新では、センサー出力を状態の関数として記述できる必要があります。したがって、測定値を正しく表現できるように、表現に状態を追加する必要がある場合があります。測定値
as z[k] = h(s[k], w[k])
はz
ガウスw
分布のノイズ ベクトルです。