Warum brauche ich einen Kalman-Filter?


61

Ich entwerfe ein unbemanntes Luftfahrzeug, das verschiedene Arten von Sensoren enthalten wird:

  • 3-Achsen-Beschleunigungsmesser
  • 3-Achsen-Gyroskop
  • 3-Achsen-Magnetometer
  • Horizontsensor
  • Geographisches Positionierungs System
  • nach unten gerichteter Ultraschall.

Ein Freund von mir sagte mir, dass ich all diese Sensordaten durch einen Kalman-Filter schicken muss, aber ich verstehe nicht warum. Warum kann ich das nicht einfach direkt in meinen Mikrocontroller stecken? Wie hilft mir der Kalman-Filter bei meinen Sensordaten?

Antworten:


52

Sie haben verbinden alle diese Sensoren direkt an einen Mikrocontroller. Der Kalman-Filter ist kein elektronischer Filter wie ein LRC-Filter, der zwischen den Sensoren und dem Mikrocontroller geschaltet ist. Das Kalman-Filter ist ein mathematisches Filter, das als Softwareroutine im Mikrocontroller implementiert ist.

Die von Ihnen aufgelisteten Sensoren geben dem Mikrocontroller bei jeder Aktualisierung 14 oder 15 Rohzahlen.

Wenn ich ein kleines Flugzeug fliege, möchte ich unbedingt wissen, wo und in welcher Richtung es sich befindet und wie weit es über dem Boden ist - 7 Zahlen.

Ich brauche etwas , das mir diese 7 Zahlen gibt.

Idealerweise möchte ich diese 7 Zahlen jedes Mal durch meinen Regelkreis neu schätzen. Die Aktualisierungen, die ich einmal pro Sekunde von meinem billigen GPS erhalte, sind fast nicht schnell genug. (Leute mit welcher Frequenz muss die Aktualisierungsschleife meines Quadcopters für die Ausgabe-Abtastung-Berechnung-Ausgabe stabil bleiben? Sie sagen mir, dass selbst 50-mal pro Sekunde nicht schnell genug sein wird).

Irgendwie muss ich die 14 oder 15 Rohzahlen, die ich habe, von denen einige nur gelegentlich aktualisiert werden, auf die 7 Zahlen reduzieren, die ich wirklich will.

Josh wies darauf hin, dass es viele Ad-hoc-Möglichkeiten gibt, diese Rohdaten in verwendbare Daten umzuwandeln. Jede Routine, die 15 Zahlen in 7 Zahlen umwandelt, kann als "Filter" bezeichnet werden.

Sie müssen nicht haben , um die optimalen Filter zu verwenden. Aber Sie werden eine Art Filter verwenden - dh etwas, das aus den 15 Zahlen der Rohdaten, die Sie haben, die 7 Zahlen (Schätzungen) umwandelt, die Sie wirklich wollen.

Der Kalman-Filter ist unter bestimmten Umständen der "optimale" Filter, mit dem sich die Rohdaten am besten in die von mir gewünschten 7-Zahlen konvertieren lassen.

Sie müssen möglicherweise weniger Zeit aufwenden, um einen Kalman-Filter zu verwenden, den bereits eine andere Person geschrieben und getestet hat, als einen anderen Filter von Grund auf neu zu schreiben, ihn zu debuggen und weitere Elemente hinzuzufügen, bis er verwendbar ist - ein Filter, der dies ermöglicht sich zwangsläufig als suboptimal herausstellen.


28

Die kurze, knappe Antwort lautet: "Probieren Sie es aus, ohne eine." Die bessere Antwort ist ein Beispiel: Wenn Ihre Beschleunigungsmesser angeben, dass Sie 10 Grad von der Vertikalen entfernt sind, Ihr Kreisel jedoch angibt, dass Sie sich nicht von der Vertikalen weggedreht haben, und Ihre Magnetometer einen Versatz von 30 Grad von Norden angeben, Ihr Kreisel jedoch 32 Grad. Wie ist die aktuelle Richtung und Neigung?

Sie werden wahrscheinlich eine Million Ad-hoc-Methoden finden, die in einem Beispiel zu funktionieren scheinen, in anderen jedoch scheitern. Der Kalman-Filter (Extended Kalman Filter (EKF) für diese Aufgabe!) Bietet Ihnen eine konsequente Möglichkeit, diese Fragen zu beantworten. Die Qualität der Antworten wird noch untersucht - obwohl die EKF-Bilanz sehr gut ist -, aber zumindest werden sich alle darüber einig sein, was die Antworten sind .


1
Genau die Antwort, nach der ich gesucht habe. "Was würde passieren, wenn ich keinen Kalman Filter benutze?" Vielen Dank!
Manav Kataria

22

Sensordaten sind verrauscht. Wenn Sie es nicht filtern, würde Ihr Fahrzeug zumindest unberechenbar reagieren, wenn es sogar stabil genug wäre, um zu fliegen. Das Filtern über einen Kalman-Filter oder auf andere Weise kann das Rauschen verringern, wenn es korrekt durchgeführt wird, und die Stabilität verbessern.

Ein Kalman-Filter ist ein besonders leistungsstarker Filter. Es werden ein Modell des Systems und Rauschmodelle für das System und Ihre Sensoren benötigt. Es schätzt dann den Zustand des Fahrzeugs basierend auf einer bereitgestellten Zustandsschätzung und den zu jedem Zeitpunkt angewendeten Steuerungen. Dieser geschätzte Zustand ist genauer als der von den Sensoren gemeldete.


8

Sie können auch Partikelfilter verwenden. Für das grundlegende Intro zu Partikelfiltern können Sie sich Professor Thruns Videos in Programming a Robotic Car ansehen.

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

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

Partikelfilter sind robuster und weisen eine weitaus geringere Wahrscheinlichkeit für Schleifenschlussfehler auf, die üblicherweise bei der Implementierung eines EKF auftreten.

Die Videos beschreiben die Funktionsweise eines Partikelfilters.


Im Allgemeinen werden Antworten, die nicht mehr als einen Link enthalten, nicht bevorzugt. Wenn Sie ein oder zwei Absätze auf den Kern des Videos schreiben könnten, wäre das schön.
Manishearth

Sprich für dich. Ich sehe wenig Gewinn, wenn ich Informationen in einem anderen Link wiedergebe. Der Link enthält möglicherweise Informationen, die mir nicht bekannt waren, und jemand muss sie nicht erneut eingeben, um mich darauf aufmerksam zu machen. Ich kann sehr leicht klicken und lesen, danke.
Spiked3

8

Ein Kalman-Filter ist ein Algorithmus, der üblicherweise in UAVs verwendet wird, um mehrere Sensormessungen zusammenzuführen, um eine "optimale" Schätzung der Position und / oder Orientierung des UAV bereitzustellen. Beispielsweise kann ein Kalman-Filter Beschleunigungsmesser-, Kreisel- und Magnetometermessungen mit einer Geschwindigkeitsschätzung verschmelzen, um das Gieren, die Neigung und das Rollen des UAV abzuschätzen.

Weitere Informationen zu den bei der UAV-Zustandsschätzung verwendeten Sensoren und Algorithmen finden Sie im eigenständigen Artikel Grundlagen des Flugs mit kleinen unbemannten Flugzeugen .

Der Artikel enthält auch Links zum zugehörigen Matlab-Code, in dem die beschriebenen Algorithmen zur Schätzung des Kalman-Filter-UAV-Zustands implementiert sind.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.