Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kalman Filter Prof. Sergio Montenegro Lehrstuhl Informatik 8 Kalman Filter Nils Gageik.

Ähnliche Präsentationen


Präsentation zum Thema: "Kalman Filter Prof. Sergio Montenegro Lehrstuhl Informatik 8 Kalman Filter Nils Gageik."—  Präsentation transkript:

1 Kalman Filter Prof. Sergio Montenegro Lehrstuhl Informatik 8 Kalman Filter Nils Gageik

2 Inhalt:  Motivation (Definition und Anwendung)  Zustandsraumdarstellung  Filtergleichungen  Anschauliche Erklärung  Herleitung der Filterstruktur  Verwendung im Quadrocopter (Accelero+Gyro)  Vor- und Nachteile  Aufgaben  Mathematische Grundoperationen Prof. Sergio Montenegro Lehrstuhl Informatik 8 Kalman Filter Nils Gageik

3 Definition Kalman-Filter: Das Kalman-Filter ist ein Zustandsschätzer. Problem: Messungen sind fehlerbehaftet (verrauscht). Ansatz: Diese Fehler sollen durch eine intelligentes Verfahren überbestimmter Informationen reduziert werden. Idee: Mit Hilfe des Wissens über den aktuellen Zustand, dem (teilweise) vorhersagbaren Verhalten des Systems und den neuen Messungen wird der aktuelle Systemzustand optimal geschätzt. Vorgehen: Das sagen die Kalman-Filter-Gleichungen. Prof. Sergio Montenegro Lehrstuhl Informatik 8 Definition Nils Gageik

4 Eigenschaften des Kalman-Filters: - Rekursiver Algorithmus (real-time geeignet) - Basiert auf dem Zustandsraummodell - Kein klassisches Frequenz-Filter, sondern ein Schätzer (Name nur aus historischen Gründen) - Optimal-Filter bzgl. Mittelwert u. Varianz -> folgt aus LSM-Kriterium (siehe Herleitung) Prof. Sergio Montenegro Lehrstuhl Informatik 8 Definition Nils Gageik

5 Verwendung/Anwendung des Kalman-Filters: - Datenfusion (Fusion von Messdaten und Systemdaten) - Zustandsbestimmung (Position / Geschwindigkeit / Orientierung von Objekten, Ladezustand von Lithium-Akkus, etc.) Ohne Systemmodell ist das Kalman-Filter ein „gleitender (gewichteter) Mittelwertfilter.“ Schwierigkeit bei der Implementierung: Bestimmung der Filter- und Systemparameter Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anwendung Nils Gageik

6 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Zustandsraumdarstellung Nils Gageik Systemgleichung, [Gl. 1a] Messgleichung, [Gl. 1b]

7 Filterkonzept - Prädiktion (Vorhersage durch System) - Korrektur (Vergleich von Vorhersage mit Messung) Prof. Sergio Montenegro Lehrstuhl Informatik 8 Filtergleichung Nils Gageik Prädiktion Berechne nächsten Zustand aus Systemverhalten Korrektur Vergleiche Zustand mit Messung und Korrigiere

8 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Filtergleichung Nils Gageik Zeitindex k

9 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Filtergleichung Nils Gageik

10 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anschauliche Erklärung Nils Gageik Anschauliche Erklärung nach Welch & Bishop (1): Beispiel Entfernungsmessung (1D, extrem einfach): -Entfernungsmessung eines Objekts mit einer Kamera -Eindimensionaler Fall -> Alle Vektoren / Matrizen vereinfachen sich zu Skalaren -Annahmen: + Entfernungsmessungen sind verrauscht mit Varianz R (konstant) + Prozessrauschen Q ist konstant -Kalman-Filter soll Entfernung optimal schätzen: -> Zustand des Filters ist die Entfernung -> Aufstellen des Zustandsraummodells: A = 1 (Alte Entfernung = Neue Entfernung) C = 1 (Entfernung (Zustand) wird direkt gemessen)

11 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anschauliche Erklärung Nils Gageik

12 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anschauliche Erklärung Nils Gageik

13 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anschauliche Erklärung Nils Gageik

14 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Herleitung der Filterstruktur Nils Gageik

15 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Herleitung der Filterstruktur Nils Gageik

16 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Herleitung der Filterstruktur Nils Gageik - K A C + Grundsystem Struktur des Kalman-Beobachters

17 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anwendung Quadrocopter (1) Idee: Kompensation eines Biasdrifts (Gyro Akkumulationsfehler) durch Hinzuziehen von Roll- und Nickwinkelmessung via Gravitationsbestimmung Problem: Bei beschleunigten Bewegungen und Vibrationen ist die Bestimmung der Winkel mit Hilfe des Beschleunigungssensors inakkurat Lösung: Datenfusion von Gyro (dynamisch, kurzfristig) und Accelero (statisch, langfristig) mit Hilfe eines Kalman-Filters Nils Gageik

18 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anwendung Quadrocopter (2) Aufstellung des Systems: Nils Gageik

19 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anwendung Quadrocopter (3) Nils Gageik

20 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Anwendung Quadrocopter (4) Ergebnisse: -Driftfehler können kompensiert werden -> Quadrocopter findet in die Horizontale zurück -Dynamik bleibt erhalten (keine Instabilität durch Acc-Einfluß bei Dynamik) Vorteile dieses Ansatzes: -2D System erfordert nur einfach 2D Matrixoperationen -> Ersparnis von Rechenoperationen -System bleibt verständlich, geringe Komplexität -Standardformel für Matrix-Invertierung (sehr einfach) -Roll- und Nick unabhängig und identisch Ausblick: -Mit Hilfe eines Magnetsensors kann ein Kalman-Filter Fehler im Heading kompensieren Nils Gageik

21 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Aufgaben Kalman Filter Aufgabe 1: Ausgehend von den Folien stelle auf dem Papier (oder digital am PC) die benötigten mathematischen Operationen und Formeln zur Umsetzung eines Kalman Filters zusammen. Es ist das System aus „Anwendung Quadrocopter“ umzusetzen. Schreibe Pseudo-Code, der die Ausführreihenfolge der Operationen sowie Eingaben, Parameter und Ausgaben verdeutlicht. Hilfe: 1.) Welche Werte sind Inputs? Was ist Output? 2.) Welche Parameter sind gegeben? Sind diese konstant oder variabel? 3.) Welche Formeln werden in welcher Reihenfolge gebraucht? Nils Gageik

22 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Aufgabe 2a: Implementiere den in Pseudo-Code geschriebenen Kalman Filter in C++ auf dem STM. Das Modul KalmanFilter diene dabei als Grundlage. Es besteht aus zwei Klassen. Die Klasse KalmanFilter dient zur Realisierung des Filters je einer Achse und die Klasse Filtr_KF realisiert einen Thread, der zwei KalmanFilter für Roll und Pitch verwaltet. Zusätzlich soll das myMath-Modul helfen, dass bereits alle notwendigen mathematischen Operationen zur Verfügung stellt. Hinweis: Zunächst teste das Kalman Filter mit den folgenden Parametern: Alles auf 1 -> Es sollte grundsätzlich funktionieren und es geht primär der Acc ein. Alles auf 1, außer P 0 = und M acc = > Es sollte grundsätzlich funktionieren, jedoch sollte Acc quasi nicht eingehen, sondern nur Gyro. Das Filter wird vermutlich langsam driften. Beachte: Pro Achse ist ein unabhängiger Kalman Filter notwendig. Beginne mit einer Achse. Nils Gageik Aufgaben Kalman Filter

23 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Aufgabe 2b: Versende nun die RPY Winkel an Qt zur Anzeige und überprüfe die Korrektheit. Zusätzlich sind die folgenden 2x2-Matritzen auf der Konsole auszugeben: K & P Führe ein Define DEBUG_KF ein, mit dem diese Ausgabe einfach hinzu- bzw. abgeschaltet werden kann. Aufgabe 2c: Parametrisiere das Kalman-Filter. Die Parameter sollten so optimiert werden, dass das System nicht wegdriftet, Erschütterungen und translatorische Bewegungen aber nach wie vor korrekt verarbeitet, d.h. ausfiltert. Da das System später auf einem Quadrocopter Anwendung finden soll, genügt es völlig, wenn es maximale Drehungen von 90 Grad verarbeiten kann. Aufgabe 2d: Führe multiple Drehungen um mehrere Achsen durch. Halte den Sensor horizontal, kippe, giere und kippe zurück. Was fällt dir auf? Erkläre das Problem und mach dir Gedanken über Verbesserungen. Nils Gageik Aufgaben Kalman Filter

24 Prof. Sergio Montenegro Lehrstuhl Informatik 8 Nils Gageik Mathematische Grundoperationen myMath Modul


Herunterladen ppt "Kalman Filter Prof. Sergio Montenegro Lehrstuhl Informatik 8 Kalman Filter Nils Gageik."

Ähnliche Präsentationen


Google-Anzeigen