Kalman-Filterung der Spurerkennung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 15: Zeile 15:


== Auslegung des Kalman-Filters ==
== Auslegung des Kalman-Filters ==
Für eine optimale Filterung muss das Systemmodell passend ausgerichtet werden. Im folgenden wird die Bestimmung der notwendigen Parameter aufgeschlüsselt.
[[Datei:ParametrierungKalmanFilter.png|250px|thumb|left|Abbildung 2: Parameter des Kalman-Filters]]
Für eine optimale Filterung muss das Systemmodell passend ausgerichtet werden. Im folgenden wird die Bestimmung der wichtigsten Parameter aufgeschlüsselt.
=== Systemmatrix A ===  
=== Systemmatrix A ===  
Die Systemmatrix A wird als n*n Matrix angelegt. Wobei n aus der Länge des Messvektors ermittelt wird. Der Messvektor setzt sich im Falle der Spurerkennung aus insgesamt 7 Werten zusammen: 1-3. Die drei Werte des Polynoms (a, b, c), 4-5. x und y des ersten gefundenen Schnittpunktes, 6-7. x und y des letzten gefundenen Schnittpunkts. Auf diesen sieben Parametern basierend kann nun die Systemmatrix aufgestellt werden. Da es zwischen den Werten keine Abhängigkeiten gibt kann hier ganz einfach eine 7*7 Einheitsmatrix gebildet werden.
Die Systemmatrix A wird als n*n Matrix angelegt. Wobei n aus der Länge des Messvektors ermittelt wird. Der Messvektor setzt sich im Falle der Spurerkennung aus insgesamt 7 Werten zusammen: 1-3. Die drei Werte des Polynoms (a, b, c), 4-5. x und y des ersten gefundenen Schnittpunktes, 6-7. x und y des letzten gefundenen Schnittpunkts. Auf diesen sieben Parametern basierend kann nun die Systemmatrix aufgestellt werden. Da es zwischen den Werten keine Abhängigkeiten gibt kann hier ganz einfach eine 7*7 Einheitsmatrix gebildet werden.

Version vom 11. Januar 2023, 10:20 Uhr

Autoren: Jan Müller, Yannick Schmidt Betreuer: Prof. Schneider

→ zurück zum Hauptartikel: OSE Softwareumgebung
→ zurück zum Hauptartikel: OSE - Objekt - und Spurerkennung
→ zurück zum Hauptartikel: Praktikum SDE

Einleitung

Abbildung 1: Polynom vor Kalman-Filter

Der folgende Artikel beschreibt die Anwendung eines Kalman-Filters zur Filterung der Spurerkennung des Carolo-Cup-Fahrzeugs der HSHL. Hintergrund ist, dass der bisherige Algorithmus zur Spurerkennung keine Filterung beinhaltet und entsprechende Ausreißer, wie in Abbildung 1. zu sehen, zur Folge hat. Ziel der Integrierung eines Kalman-Filters ist die Eliminierung des in Abb. 1 zu sehenden Zappelns.

Hintergund Kalman-Filter

Die Anwendung des Kalman-Filters wurde im Verlauf der Lehrveranstaltung "Multisensorsysteme" erlernt. Der Kalman-Filter wird verwendet, um Parameter der verschiedensten Systeme zu schätzen. Er schätzt, basierend auf dem aktuellen und vergangenen Messwerten den Zustand des Systems und kann auf diese Weise Messungen eliminieren, die stark verrauscht sind. Der Filter setzt sich aus verschiedenen Parametern zusammen. Dazu gehört die Eingansgröße, Ausgangsgröße und das Systemmodell.

Auslegung des Kalman-Filters

Abbildung 2: Parameter des Kalman-Filters

Für eine optimale Filterung muss das Systemmodell passend ausgerichtet werden. Im folgenden wird die Bestimmung der wichtigsten Parameter aufgeschlüsselt.

Systemmatrix A

Die Systemmatrix A wird als n*n Matrix angelegt. Wobei n aus der Länge des Messvektors ermittelt wird. Der Messvektor setzt sich im Falle der Spurerkennung aus insgesamt 7 Werten zusammen: 1-3. Die drei Werte des Polynoms (a, b, c), 4-5. x und y des ersten gefundenen Schnittpunktes, 6-7. x und y des letzten gefundenen Schnittpunkts. Auf diesen sieben Parametern basierend kann nun die Systemmatrix aufgestellt werden. Da es zwischen den Werten keine Abhängigkeiten gibt kann hier ganz einfach eine 7*7 Einheitsmatrix gebildet werden.

Systemrauschen Q

Das Systemrauschen Q wird über eine zuvor ermittelte Standardabweichung eingestellt welche mit einer 7*7 Einheitsmatrix multipliziert wird. Da unser aufgestelltes System nicht anfällig für Fehler ist haben wir uns hier für einen niedrigen Wert von 0.001 entschieden.

Messrauschen R

Ähnlich wie auch das Systemrauschen wird das Messrauschen basierend auf einer 7*7 Einheitsmatrix multipliziert mit einer zuvor bestimmten Standardabweichung bestimmt. Die Messungen weisen in der Regelung kein großes Rauschen auf, lediglich einzelne Frames beinhalten fehlerhafte Polynome. Aus diesem Grund haben wir uns hier für eine Standardabweichung von 0.01 entschieden.

Anfangs-Zustandsschätzung x

Hierbei handelt es sich um den ersten Messwert für den Kalman-Filter. Dieser muss das selbe Format haben wie der Messvektor. Der Einfachheit halber haben wir uns hier für einen 7*1 Nullvektor entschieden. Allerdings geben wir diesem Messwert im folgenden Messwert wenig Vertrauen, damit sich das Modell, basierend auf den folgenden Messwerten einpendeln kann

Anfangs-Fehlerkovarianz

Mit diesem Wert wird das Vertrauen für die erste Zustandsschätzung in dem Kalman-Filter integriert, je niedriger der Wert, desto höher das Vertrauen. Mit 100 haben wir das Vertrauen sehr gering eingestellt. Damit dem zuvor angelegten Nullvektor nicht groß vertraut wird.

Ausblick

Was kann/muss noch verbessert werden?


Literaturverzeichnis