カルマンフィルターが必要な理由


61

数種類のセンサーを含む無人航空機を設計しています。

  • 3軸加速度計
  • 3軸ジャイロスコープ
  • 3軸磁力計
  • 地平線センサー
  • GPS
  • 下向きの超音波。

友人から、このセンサーデータをすべてカルマンフィルターに通す必要があると言われましたが、その理由はわかりません。マイクロコントローラーにこれをそのまま入れられないのはなぜですか。カルマンフィルターは、センサーデータについてどのように役立ちますか?

回答:


52

あなたはないマイクロコントローラに直接、すべてのこれらのセンサを接続します。カルマンフィルターは、センサーとマイクロコントローラーの間を通るLRCフィルターのような電子フィルターではありません。カルマンフィルターは、マイクロコントローラー内のソフトウェアルーチンとして実装される数学フィルターです。

リストしたセンサーは、すべて更新されるたびにマイクロコントローラーに14または15の生の数値を与えます。

私が小さな飛行機を操縦するとき、私が本当に知りたいのは、その位置と方向、そしてそれが地上からどれだけ離れているか、つまり7つの数字です。

私はそれらの7つの数字を与えるものが必要です

理想的には、制御ループを介して毎回これらの7つの数値の新しい推定値が必要です。安価なGPSから取得する1秒に1回の更新は、十分に高速ではありません。(クアッドコプターの出力、検出、計算、出力の更新ループはどの周波数で安定している必要がありますか? 1秒あたり50回でも十分な速度ではないことを教えてくれます)。

どういうわけか、私が持っている14個または15個の未加工の数字を、たまにしか更新されないものを、本当に欲しい7個の数字(の推定値)に減らす必要があります。

Joshが指摘したように、これらの生の数値を使用可能なデータに変換するアドホックな方法が数多くあります。15個の数字を7個の数字に変換するルーチンはすべて、「フィルター」として説明できます。

最適なフィルターを使用する必要はありません。ただし、何らかの種類のフィルターを使用します。つまり、持っている15個の生データを、本当に必要な7個の数字(の推定値)に変換するものです。

カルマンフィルタは、いくつかの条件では、「最適」フィルタ、私が本当にしたい7つの数字にその生データを変換する最良の方法です。

他の誰かがすでに書いてデバッグしたカルマンフィルターを使用する方が、他のフィルターを最初から作成してデバッグし、使用可能になるまでそれを追加し続けるよりも、あなたの側での作業が少なくなる場合があります。必然的に最適ではないことが判明します。


28

短い、わからない答えは「それなしで試してみてください」です。より良い答えは例です:加速度計が垂直から10度離れていると言っているが、ジャイロは垂直から離れて回転していないと言い、磁力計は北から30度のオフセットを報告しているが、ジャイロは32度と言っている場合。現在の見出しと傾きは何ですか?

おそらく、100万のアドホックな方法を思い付くでしょう。これらの方法は、ある例ではうまくいくように見えますが、他の例では失敗します。カルマンフィルター(このタスク用の拡張カルマンフィルター(EKF)!)は、これらの質問に答える厳密な方法を提供します。EKFの実績は非常に優れていますが、回答の品質はまだ調査中ですが、少なくとも誰もが回答何であるかに同意するでしょう。


1
まさに私が探していた答え。「カルマンフィルターを使用しないとどうなりますか」。ありがとう!
マナヴカタリア14

22

センサーデータはノイズが多い。フィルターを使用しない場合、飛行するのに十分安定していれば、車両は少なくとも不規則に動作します。カルマンフィルターなどを介したフィルター処理は、正しく行われるとノイズを減らし、安定性を向上させることができます。

カルマン・フィルタは、特に強力なフィルタです。システムのモデルと、システムとセンサーの両方のノイズモデルが必要です。次に、提供された状態推定値と任意の時点で適用された制御に基づいて、車両の状態を推定します。この推定状態は、センサーが報告する状態よりも正確です。


8

パーティクルフィルターも使用できます。パーティクルフィルターの基本的な紹介については、ロボット車のプログラミングに関するThrun教授のビデオをご覧ください。

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

パーティクルフィルターはより堅牢で、EKFの実装中に一般的に発生するループクロージャエラーの確率がはるかに低くなります。

ビデオでは、粒子フィルターの機能について説明しています。


一般に、リンクのみを含む回答は優先されません。あなたがビデオの主旨に段落または2を書くことができれば、それはいいだろう...
Manishearth

自分で話してください。別のリンクに情報を書き直してもほとんど利益が得られません。リンクには、私が知らなかった情報が含まれている可能性があり、誰かがそれを認識させるために再入力する必要はありません。クリックして簡単に読むことができます、ありがとう。
スパイク3

8

カルマンフィルターは、UAVで一般的に使用されるアルゴリズムであり、複数のセンサー測定値を融合して、UAVの位置および/または方向の「最適な」推定値を提供します。たとえば、カルマンフィルターは、加速度計、ジャイロ、磁力計の測定値と速度推定値を融合して、UAVのヨー、ピッチ、ロールを推定できます。

UAV状態推定で使用されるセンサーとアルゴリズムの詳細については、スタンドアロンの記事Fundamentals of Small Unmanned Aircraft Flightをお試しください。

この記事は、記述されたカルマンフィルターUAV状態推定アルゴリズムを実装する付属のMatlabコードにもリンクしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.