Wie modelliere ich unvorhersehbares Rauschen in Kalman Filter?

9

Hintergrund:

Ich implementiere einen einfachen Kalman-Filter, der die Kursrichtung eines Roboters schätzt. Der Roboter ist mit einem Kompass und einem Gyroskop ausgestattet.

Mein Verständnis:

Ich denke darüber nach, meinen Zustand als 2D-Vektor darzustellen , wobei die aktuelle Kursrichtung und \ dot {x} die vom Gyroskop gemeldete Rotationsrate ist.(x,x˙)xx˙

Fragen:

  1. Wenn mein Verständnis richtig ist, wird es keine Steuer Begriff sein, u in meinem Filter. Ist es wahr? Was ist, wenn ich den Zustand als 1D-Vektor (x) nehme (x)? Wird mein x˙ dann zum Kontrollterm u ? Werden diese beiden Methoden zu unterschiedlichen Ergebnissen führen?
  2. Wie wir wissen, kommt die Hauptrauschquelle vom Kompass, wenn sich der Kompass in einem verzerrten Magnetfeld befindet. Hier ist das Gaußsche Rauschen vermutlich weniger signifikant. Die magnetische Verzerrung ist jedoch völlig unvorhersehbar. Wie modellieren wir es im Kalman-Filter?
  3. Ist bei Kalman Filter die Annahme erforderlich, dass "alle Geräusche weiß sind"? Kann ich trotzdem einen Kalman-Filter verwenden, wenn meine Rauschverteilung tatsächlich eine Laplace-Verteilung ist? Oder muss ich zu einem anderen Filter wie Extended Kalman Filter wechseln?
Sibbs Glücksspiel
quelle

Antworten:

6
  1. Ich würde dies als Ein-Zustands-System (x) modellieren, mit dem Kreisel als Steuereingang. Das Kreiselrauschen wird zum Zustandseingangsrauschen, das Kompassrauschen wird zum Messrauschen. Ihr Systemmodell wird also zu wobei die Richtungsschätzung des Filters ist, die Sie mit der Kompassrichtung vergleichen, um Ihren Kalman zu erhalten aktualisieren.
    θ˙^=ωGyrÖ+w
    y^=x^
    y^
  2. Die magnetische Verzerrung wird schwierig sein, denn wenn Sie an einer Stelle sitzen, wird dies als konstanter Versatzterm angezeigt - der Kalman-Filter kann damit nicht gut umgehen. Ich bin mir ziemlich sicher, dass Sie entweder die Verzerrung abbilden, eine zweite absolute Richtungsreferenz erhalten oder einfach die Verzerrung akzeptieren müssen.
  3. Sie verwechseln spektralen Inhalt mit Wahrscheinlichkeitsverteilung. Wenn das Rauschen weiß ist, ist jede Probe völlig unabhängig von jeder anderen Probe. Wenn das Rauschen Laplace ist, folgt jede Probe der Laplace-Verteilung. Kalman-Filter mögen kein farbiges Rauschen (aber Sie können damit umgehen, indem Sie Zustände hinzufügen). Ein Kalman-Filter ist nur dann das insgesamt optimale Filter, wenn das Rauschen eine Gaußsche Verteilung aufweist und die Kostenfunktion eine Quadratsumme ist. Für jede andere Rausch- und Kostenfunktion ist der optimale Filter wahrscheinlich nichtlinear. Für jede Null-Mittelwert-, Weißrausch- und Quadratsummenkostenfunktion ist das Kalman-Filter das beste lineare Filter, das gefunden werden kann.

(Beachten Sie, dass das von mir angegebene Systemmodell einen ziemlich trivialen Kalman-Filter enthält. Sie sind möglicherweise besser dran, wenn Sie keine andere Methode zur Schätzung des Kompassversatzes finden, indem Sie einen kostenlosen Filter verwenden, um diese beiden Sensoreingänge zu kombinieren Bei allen Kalman-Berechnungen wird ohnehin nur ein komplementärer Filter ausgehustet, und es besteht die Möglichkeit, dass Sie genug Vermutungen für Ihre Konstanten haben, die Sie auch in einem kostenlosen Filter am Kreuzungspunkt erraten und damit fertig sein können.

(Beachten Sie auch, dass Sie einen erweiterten Kalman-Filter sehr profitabel verwenden können, um die Kompassverzerrung mithilfe von zu korrigieren , wenn Sie eine absolute Positionsreferenz haben und die Geschwindigkeit schätzen und ein Fahrzeug immer in die Richtung fährt, in die Sie zeigen die Richtung, in die es sich tatsächlich bewegt, um die Kompassrichtung zu korrigieren).

Die optimale Zustandsschätzung von Dan Simon, Wiley 2006, ist meiner Meinung nach eine sehr reichhaltige und klare Behandlung des Themas Kalman-Filterung und seiner anspruchsvolleren Brüder (H-Unendlichkeit, erweiterter Kalman, nicht parfümierter Kalman und sogar ein bisschen) über Baysian- und Partikelfilterung). Es wird Ihnen nicht sagen, wie Sie das auf solche Navigationsprobleme anwenden sollen, aber wo wäre der Spaß im Leben, wenn alle Probleme gelöst wären? Wenn Sie der Mathematik in Simons Buch nicht folgen können, sollten Sie sich wahrscheinlich fragen, ob Sie einen Kalman-Filter auf irgendeine intelligente Weise anwenden können.

TimWescott
quelle
+1 Für komplementäre Filter für diese Anwendung erscheint dies besser geeignet. Auch das Dan Simon Buch ist sehr gut. Dieser Artikel ist eine gute Einführung in den Kalman-Filter (vom selben Autor) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz
@ddevaz Ja, ich implementiere JETZT einen komplementären Filter. Das Problem ist jedoch, dass es keine sehr guten Ergebnisse liefert. Also denke ich darüber nach, zu einem anderen "anspruchsvolleren" Filter zu
wechseln
Aha. Ich habe meine Antwort so bearbeitet, dass sie Referenzmaterial zur Implementierung von Kalman-Filtern mit Gyros, Beschleunigungsmessern und einem Magnetometer enthält.
Ddevaz
3
  1. Es wird kein Steuereingabebegriff geben. Sie sollten (x, xdot) als Zustandsvektor verwenden, um den Kalman-Filter richtig zu formulieren.

  2. Die Hauptgeräuschquellen sind der Kompass und das Gyroskop . Das Gyroskoprauschen und die Drift sind signifikant. Es ist ziemlich schwierig, magnetische Verzerrungen im Allgemeinen zu überwinden, aber es gibt Kompensationstechniken .

  3. Die Annahme eines mittleren multivariaten Normalverteilungsrauschens von Null ist notwendig, jedoch ist weißes Rauschen nur ein Sonderfall. Für den erweiterten Kalman-Filter muss diese Annahme noch zutreffen. Sie können auch andere Filtertypen untersuchen ( Partikelfilter , nicht parfümierter Kalman-Filter ).

Kalman Filter Design / Implementierungspapier:

Implementierung eines Sensorfusionsalgorithmus zur 3D-Orientierungserkennung mit Trägheits- / Magnetsensoren

ddevaz
quelle
Ich kann die KF also nicht verlassen, um mit der unvorhersehbaren magnetischen Verzerrung fertig zu werden, oder? Ich sollte zuerst die verzerrten Werte verwerfen und dann die KF verlassen, um mit dem Sensorrauschen umzugehen. Richtig?
Sibbs Gambling
Ja. Der Kalman-Filter kann die magnetische Verzerrung nicht genau kompensieren, da die Änderungen drastisch sein können. Ich würde versuchen, zuerst eine magnetische Kompensation zu implementieren und dann den Kalman-Filter zu implementieren.
Ddevaz