カルマンフィルターのパラメーターを選択するにはどうすればよいですか?


8

車の位置を2Dで追跡するとします。センサーデータとして取得するのは、現在の位置です。したがって、私の状態は

x=(xyx˙y˙)

ここで、は定義済みの点からm離れた位置、は開始時の速度(m / s)、は加速度です。測定値はxRx˙Rx¨Rm/s2

z=(x(M)y(M))

私が選択できるのは、各タイムステップでの加速度です(タイムステップの長さは)。it

u=(x¨(u)y¨(u))

カルマンフィルターは線形フィルターであるため、私の状態モデルは次のとおりです。

x(P)=Ax+Bu

測定は状態に依存しますが、多少のノイズます。v

z=Hx+v

、。方向の加速度/速度を分解できるため、新しい位置の式はAR4×4HR2×4

xnew(t)=x+x˙t+0.5x¨t2ynew(t)=y+y˙t+0.5y¨t2x˙new(t)=x˙+x¨ty˙new(t)=y˙+y¨t

したがって、状態モデルを指定すると、次のようになります。

x(P)=(10t0010t00100001)Aix+(0.5t2000.5t2t00t)Biui
  1. これまでのところ、カルマンフィルターへの合理的なシナリオ/アプローチはありますか?

  2. 初期不確実性共分散行列 /初期状態どのように選択しますか?私は主にマトリックス値を「大きく」することを聞いたことがあります-それが何を意味するにせよ。たとえば、対角行列である必要がありますは?たとえば、地球の直径は約であるためであり、自動車では以上になるとになることはありませんか?P0R4×4x

    P0=(a10000a20000a30000a4)
    aR+a1=a2=2000000040000 kma3=a4=90324 km/h

    初期状態パラメーターについては、2つのタイムステップを待機します。

    x0=(x1(M)y1(M)x1(M)x2(M)y1(M)y2(M))

予測ステップ

状態予測は上記のように機能します:

xi+1(P)=Aixi+Biui

共分散予測:

(P)Pi+1(P)=APiAT+QwithQR4×4.
  1. プロセスエラーの共分散はどこから取得できますか?どのプロパティが必要ですか?私は正定だと思いますか?この行列はどういう意味ですか?Q

イノベーションのステップ

測定と予測を比較するイノベーション:

y~i+1=zi+1Hxi+1(P)
  1. (解決済み):観測行列はどこから取得できますか?どういう意味ですか?HR2×4

編集

わかった。私の例では、 これは、状態と測定値の関係をエンコードするためです。

H=(10000100),

イノベーション共分散:

Si+1=HPi+1(P)HT+R

測定誤差の共分散、センサーの動作方法について知っている必要があります。センサーは独立しているので、これは通常対角行列になると思います(?)。RR2×2

カルマンゲイン:

Ki+1=Pi+1(P)HTSi+11

さて、最後に状態と共分散が更新されます:

xi+1=xi+1(P)+Ki+1y~
Pi+1=(IKi+1H)Pi+1(P)

出典:

  • http://greg.czerniak.info/guides/kalman1/(この質問を書いているときに私はこれを見つけました-それはすでに私の質問のいくつかに答えました、私はうまくいけばそれを削除しました。)
  • KITでの各種講義

martin-thoma.com/kalman-filterは、この質問と回答に基づいて私が作成した記事です。
Martin Thoma

添付のジャーナルSADHANAの2016年12月号の2つの論文を参照してください。MRAnanthasayanam教授。
ANANTHASAYANAM 2017

@ANANTHASAYANAM:私はあなたの答えをコメントに変換しました。それらへのリンクを提供するためにそれらの論文で答えがあればそれは良いでしょう。
Peter K.

回答:


5

これまでのところ、カルマンフィルターへの合理的なシナリオ/アプローチはありますか?

回答1: はい、モデルは妥当に見えます。ただし、加速度は一定として扱います。実験で変化する場合は、システムエラーマトリックス含める必要があります。Q

初期不確実性共分散行列 /初期状態どのように選択しますか?P0R4×4x

回答2: は初期状態の共分散です。これは、状態の初期推定についてどれだけ知っているかを表しています。ない場合は、通常、を設定し ます。 ここで、は大きくなります。たとえば、を設定するこの回答を参照してください。P0x0

P0=σ2I4
σ2σ2=1000

プロセスエラーの共分散はどこから取得できますか?どのプロパティが必要ですか?私は正定だと思いますか?この行列はどういう意味ですか?Q

回答3: このマトリックスは、システムエラーを表します。この行列のエントリは、システムモデルの対応する値の共分散を表しています。たとえば、加速度を以前と同じように一定であると想定しているが、現実の世界で変化する場合は、対応する共分散をここに含めることができます。

それとは別に、行列と行列を何度も実験することは常に良い考えです。作る大きくし、ライブデータにより頼りになる大きくなるあなたの予測により依存します。チューニングなしでモデルが完璧になることはめったにありません。QPQP


各タイムステップでを調整して、各ステップの加速度を調整できると思いましたか?ui
Martin Thoma 2016年

1
回答2:はすでに測定誤差をエンコードし、は状態に関する現在の不確実性をエンコードすると思いましたか?RP
Martin Thoma 2016年

@MartinThoma 1:距離測定しかないと言っていたと思いますか?測定できない場合、どのようにして加速度を取得していますか?2:あなたは正しいです。は初期状態の共分散で、は現在の状態の共分散です。一般に、は測定値から独立しています。あなたの方程式()[タグ付けしたばかり]のとおり、またはが時変でない限り、はシステムで発生している他のこととは無関係に進化します。P0PkPkPAQP
Peter K.

2
@Emiswelt:あなたの答え2は私には正しくないようです。問題は、どのようにして初期不確実性共分散行列を選択するかということでした どれが測定誤差を表していないのですか?
Peter K.

2
@Emiswelt:OK。編集しました。よろしければ教えてください。私はポイント3について少し異なるテイクを持っています...これは私をポイント1を再考することに導きます... :-)私は答えを作成する前に少し煮込みます。
Peter K.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.