Implementierung eines Kalman-Filters für Position, Geschwindigkeit, Beschleunigung

9

Ich habe in der Vergangenheit Kalman-Filter für verschiedene Zwecke verwendet , bin aber jetzt daran interessiert, einen zu verwenden, um Position, Geschwindigkeit und Beschleunigung im Zusammenhang mit der Positionsverfolgung für Smartphone-Apps zu verfolgen. Es fällt mir auf, dass dies ein Lehrbuchbeispiel für einen einfachen linearen Kalman-Filter sein sollte, aber ich kann anscheinend keine Online-Links finden, die dies diskutieren. Ich kann mir verschiedene Möglichkeiten vorstellen, dies zu tun, aber anstatt es von Grund auf neu zu erforschen, kann mich vielleicht jemand hier in die richtige Richtung weisen:

  1. Kennt jemand die beste Art, dieses System einzurichten? Wie lässt sich beispielsweise angesichts der jüngsten Geschichte der Positionsbeobachtungen der nächste Punkt im Kalman-Filterzustandsraum am besten vorhersagen? Was sind die Vor- und Nachteile der Einbeziehung der Beschleunigung in den Zustandsraum? Wenn alle Messungen Position sind, kann das System dann instabil werden, wenn sich Geschwindigkeit und Beschleunigung im Zustandsraum befinden? Usw ...
  2. Kennt jemand eine gute Referenz für diese Anwendung von Kalman-Filtern?
Vielen Dank

Stochastisch
quelle
Wikipedia hat hier ein einfaches Beispiel . Es ist einfach genug für Sie, die Details zu erhalten. Um Ihre erste Frage zu beantworten, prognostizieren Sie den nächsten Status anhand des aktuellen Status und Ihres dynamischen Modells des Systemverhaltens.
Jason R
@ JasonR danke für den Kommentar, aber ich suche mehr als das, was auf Wikipedia steht. Ich habe schon oft Kalman-Filter verwendet, daher suche ich nach möglichst detaillierten Informationen zu den besten Ansätzen und Fallstricken dieser speziellen Anwendung.
Stochastisch
2
Kalman-Filter sind ein Thema, das ausgereift genug ist, um ein detailliertes zeitgenössisches Beispiel zu finden, wie Sie es möchten. Kurz gesagt: Auch wenn Sie nur die Position messen, ist es hilfreich, Ableitungen wie Geschwindigkeit und Beschleunigung in Ihren Zustandsvektor aufzunehmen. Die Anzahl der Ableitungen, die Sie verfolgen, hängt mit der Polynomreihenfolge der Änderungen in dem Zustand zusammen, den Ihr Filter ohne statischen Fehler verfolgen kann.
Jason R
@ JasonR vielen Dank, da nichts anderes vorhanden ist, ist das sicherlich ein sehr nützlicher Hinweis :-).
Stochastisch
Dies ist nicht ganz das, wonach Sie suchen, aber diese Antwort auf eine ähnliche Frage kann hilfreich sein.
Peter K.

Antworten:

4

Dies ist das Beste, das ich kenne

Vollständige Ableitung mit Erklärung

Kalman

Dies ist eine gute Quelle, um mehr über den Kalman-Filter zu erfahren. Wenn Sie mehr daran interessiert sind, die Smartphone-App zum Laufen zu bringen, würde ich empfehlen, nach einer bereits vorhandenen Implementierung des Kalman-Filters zu suchen. Warum das Rad neu erfinden? Wenn Sie beispielsweise für Android entwickeln, verfügt openCV über eine Implementierung des Kalman-Filters. Siehe Android OpenCV

Bradski und Kaehler sind eine gute Ressource für die Bildverarbeitung im Allgemeinen und enthalten einen Abschnitt über den Kalman-Filter mit Codebeispielen.

sav
quelle