Articles

Sensorfusion

Kalman-Filter

Der Algorithmus zum Zusammenführen der Daten wird als Kalman-Filter bezeichnet.

Der Kalman-Filter ist einer der beliebtesten Algorithmen in der Datenfusion. Es wurde 1960 von Rudolph Kalman erfunden und wird heute in unseren Telefonen oder Satelliten zur Navigation und Verfolgung verwendet. Der berühmteste Einsatz des Filters war während der Apollo 11-Mission, um die Besatzung zurück zum Mond zu schicken und zu bringen.

Wann wird ein Kalman-Filter verwendet?

Ein Kalman-Filter kann zur Datenfusion verwendet werden, um den Zustand eines dynamischen Systems (das sich mit der Zeit entwickelt) in der Gegenwart (Filterung), der Vergangenheit (Glättung) oder der Zukunft (Vorhersage) abzuschätzen. Sensoren, die in autonome Fahrzeuge eingebettet sind, geben Messungen ab, die manchmal unvollständig und verrauscht sind. Die Ungenauigkeit der Sensoren (Rauschen) ist ein sehr wichtiges Problem und kann von den Kalman-Filtern gehandhabt werden.

Ein Kalman-Filter wird verwendet, um den Zustand eines Systems zu schätzen, bezeichnet x. Dieser Vektor besteht aus einer Position p und einer Geschwindigkeit v.

Zustand eines Systems

Bei jeder Schätzung assoziieren wir ein Maß für die Unsicherheit P.

Durch eine Fusion von Sensoren berücksichtigen wir unterschiedliche Daten für dasselbe Objekt. Ein Radar kann schätzen, dass ein Fußgänger 10 Meter entfernt ist, während das Lidar es auf 12 Meter schätzt. Die Verwendung von Kalman-Filtern ermöglicht es Ihnen, eine genaue Vorstellung davon zu haben, wie viele Meter der Fußgänger wirklich ist, indem Sie das Rauschen der beiden Sensoren eliminieren.

Ein Kalman-Filter kann Schätzungen des Zustands von Objekten um ihn herum erzeugen. Um eine Schätzung vorzunehmen, werden nur die aktuellen Beobachtungen und die vorherige Vorhersage benötigt. Die Messhistorie ist nicht notwendig. Dieses Tool ist daher leicht und verbessert sich mit der Zeit.

Wie es aussieht

Zustand und Unsicherheit werden durch Gauß dargestellt.

Eine gaußsche Funktion ist eine stetige Funktion, bei der die Fläche 1 ist. Dies ermöglicht es uns, Wahrscheinlichkeiten darzustellen. Wir sind auf einer Wahrscheinlichkeit zur Normalverteilung. Die Unimodalität der Kalman-Filter bedeutet, dass wir jedes Mal einen einzelnen Peak haben, um den Zustand des Systems abzuschätzen.

unimodal vs multimodal (Quelle)

Wir haben einen Mittelwert μ, der einen Zustand darstellt, und eine Varianz σ2, die eine Unsicherheit darstellt. Je größer die Varianz, desto größer die Unsicherheit.

Different gaussians

Gaussians make it possible to estimate probabilities around the state and the uncertainty of a system. A Kalman filter is a continuous and uni-modal function.

Bayesian Filtering

In general, a Kalman filter is an implementation of a Bayesian filter, ie a sequence of alternations between prediction and update or correction.

Bayes filter

Prediction: We use the estimated state to predict the current state and uncertainty.
Update: Wir verwenden die Beobachtungen unserer Sensoren, um den vorhergesagten Zustand zu korrigieren und eine genauere Schätzung zu erhalten.

Um eine Schätzung vorzunehmen, benötigt ein Kalman-Filter nur aktuelle Beobachtungen und die vorherige Vorhersage. Die Messhistorie ist nicht notwendig.

Mathematik

Die Mathematik hinter den Kalman-Filtern besteht aus Additionen und Multiplikationen von Matrizen. Wir haben zwei Phasen: Vorhersage und Aktualisierung.

Vorhersage
Unsere Vorhersage besteht darin, einen Zustand x‘ und eine Unsicherheit P‘ zum Zeitpunkt t aus den vorherigen Zuständen x und P zum Zeitpunkt t-1 zu schätzen.

Vorhersageformeln
  • F: Übergangsmatrix von t-1 nach t
  • ν: Rauschen hinzugefügt
  • Q: Kovarianzmatrix einschließlich Rauschen

Update
Die Update-Phase besteht darin, eine z-Messung von einem Sensor zu verwenden, um unsere Vorhersage zu korrigieren und somit x und P vorherzusagen.

Formeln aktualisieren
  • y: Unterschied zwischen tatsächlicher Messung und Vorhersage, dh dem Fehler.
  • S: Geschätzter Systemfehler
  • H: Matrix des Übergangs zwischen der Markierung des Sensors und unserer.
  • R: Kovarianzmatrix bezogen auf das Sensorrauschen (vom Sensorhersteller angegeben).
  • K: Kalman-Gewinn. Koeffizient zwischen 0 und 1, der die Notwendigkeit widerspiegelt, unsere Vorhersage zu korrigieren.

Die Aktualisierungsphase ermöglicht es, ein x und ein P näher an der Realität abzuschätzen, als die Messungen liefern.

Ein Kalman-Filter ermöglicht Vorhersagen in Echtzeit, ohne vorhergehende Daten. Wir verwenden ein mathematisches Modell, das auf der Multiplikation von Matrizen basiert und für jedes Mal einen Zustand x (Position, Geschwindigkeit) und eine Unsicherheit P definiert.

Représentation Prior/Posterior

Dieses Diagramm zeigt, was in einem Kalman-Filter passiert.

Kalman-Filterschätzung (Quelle)
  • Die vorhergesagte Zustandsschätzung stellt unsere erste Schätzung dar, unsere Vorhersagephase. Wir sprechen über Prior.
  • Messung ist die Messung von einem unserer Sensoren. Wir haben eine bessere Unsicherheit, aber das Rauschen der Sensoren macht es zu einer Messung, die immer schwer abzuschätzen ist. Wir sprechen von Wahrscheinlichkeit.
  • Die optimale Zustandsschätzung ist unsere Aktualisierungsphase. Die Unsicherheit ist diesmal die schwächste, wir haben Informationen gesammelt und einen Wert generieren lassen, der sicherer ist als mit unserem Sensor allein. Dieser Wert ist unsere beste Vermutung. Wir sprechen von posterior.

Was ein Kalman-Filter implementiert, ist eigentlich eine Bayes-Regel.

Bayes-Regel

In einem Kalman-Filter schleifen wir Vorhersagen aus Messungen. Unsere Vorhersagen sind immer präziser, da wir ein gewisses Maß an Unsicherheit beibehalten und regelmäßig den Fehler zwischen unserer Vorhersage und der Realität berechnen. Wir sind in der Lage, aus Matrixmultiplikationen und Wahrscheinlichkeitsformeln Geschwindigkeiten und Positionen von Fahrzeugen um uns herum zu schätzen.

„Erweiterte/Unscented“ Filter und Nichtlinearität

Ein wesentliches Problem entsteht. Unsere mathematischen Formeln sind alle mit linearen Funktionen vom Typ y = ax + b implementiert.
Ein Kalman-Filter arbeitet immer mit linearen Funktionen. Wenn wir jedoch ein Radar verwenden, sind die Daten nicht linear.

Funktion eines Radars

Das Radar sieht die Welt mit drei Maßen:

Diese drei Werte machen unsere Messung unter Einbeziehung des Winkels φ zu einer nichtlinearen.

Unser Ziel ist es, die Daten ρ, φ, ρ in kartesische Daten (px, py, vx, vy) umzuwandeln.

Wenn wir nichtlineare Daten in einen Kalman-Filter eingeben, liegt unser Ergebnis nicht mehr in unimodaler Gaußscher Form vor und wir können Position und Geschwindigkeit nicht mehr schätzen.

Gaußsche vs. Nichtlinearität

Wir verwenden also Näherungen, weshalb wir an zwei Methoden arbeiten:
– Erweiterte Kalman-Filter verwenden Jacobian- und Taylor-Reihen, um das Modell zu linearisieren.
– Unscented Kalman-Filter verwenden eine genauere Annäherung an das Modell linearisieren.

Um mit der Einbeziehung der Nichtlinearität durch das Radar umzugehen, existieren Techniken, die es unseren Filtern ermöglichen, die Position und Geschwindigkeit der Objekte zu schätzen, die wir verfolgen möchten.