Frage

Ich bin interessiert, wie die Dual Input in einem Sensor Fusionierung Setup in einem Kalman-Filter modelliert?

Sagen Sie zum Beispiel, dass Sie einen Beschleunigungssensor und ein Gyroskop und wollen die „Horizont Ebene“ präsentieren, wie in einem Flugzeug, eine gute Demo von so etwas wie diese hier.

Wie kann man tatsächlich die beiden Sensoren positive Eigenschaften ernten und die negativen minimieren?

Ist das Vorbild in der Beobachtung Modell Matrix (in der Regel durch das Kapital H symbolisiert)?


Hinweis: Diese Frage auch ohne Antworten auf math.stackexchange.com gefragt wurde

War es hilfreich?

Lösung

In der Regel wird die Sensorfusion Problem aus dem Bayes-Theorem abgeleitet. Eigentlich haben Sie, dass Ihre Schätzung (in diesem Fall der Horizont-Ebene) wird eine gewichtete Summe Ihrer Sensoren sein, die durch das Sensormodell caracterized wird. Für Doppelsensoren, gibt es zwei allgemeine Möglichkeiten: Modell ein Zweisensorsystem und leitet die Kalman-Verstärkung für jeden Sensor (das Systemmodell als Prädiktor verwendet wird), oder führt zwei Korrekturstufen unterschiedliche Beobachtungsmodelle. Sie sollten einen Blick auf Bayes-Prädiktoren (ein wenig allgemeiner als Kalman-Filter) nehmen, die genau aus der Minimierung der Varianz einer Schätzung, da zwei verschiedene Informationsquellen abgeleitet ist. Wenn Sie eine gewichtete Summe haben, und die Varianz der Summe zu minimieren, für zwei Sensoren, dann erhalten Sie die Kalman-Verstärkung.

Die Eigenschaften des Sensors werden „gesehen“ in zwei Teilen des Filters. Zuerst müssen Sie die Fehlermatrix für Ihre Beobachtungen. Dies ist die Matrix, die das Rauschen in den Sensoren Beobachtung stellt (angenommen wird, einen Mittelwert von Null Gaußsche Rauschen sein, die nicht zu groß Annahme ist, da bei der Kalibrierung können Sie einen Mittelwert von Null Rauschen erreichen).

Die andere wichtige Matrix ist die Beobachtung Kovarianzmatrix. Diese Matrix gibt Ihnen einen Einblick darüber, wie gut der Sensor gibt Ihnen Informationen (Informationen etwas „Neues“ bedeutet und nicht abhängig von den anderen Sensoren zu lesen).

Über „Ernte die guten Eigenschaften“, was um Sie tun sollten, eine gute Kalibrierung und Charakterisierung Lärm machen (ist das geschriebene ok?) Der Sensoren. Der beste Weg, einen Kalman-Filter zu Converge zu bekommen, ist ein gutes Rauschmodell für die Sensoren zu haben, und das ist 100% experimentell. Versuchen Sie, die Varianz für Ihr System zu bestimmen (nicht immer vertrauen Datenblätter).

Ich hoffe, das hilft ein wenig.

Andere Tipps

Der Kreisel Maßnahmen Rate der Winkeländerung (beispielsweise in Radian pro Sekunde), während von dem Beschleunigungsmesser Lesen Sie den Winkel berechnen kann sich. Hier ist eine einfache Möglichkeit, diese Messungen zu kombinieren:

Bei jedem Gyro empfangen Lesen:

angle_radians+=gyro_reading_radians_per_sec * seconds_since_last_gyro_reading

Bei jedem Beschleunigungsmesser Lesen erhalten:

angle_radians+=0.02 * (angle_radians_from_accelerometer - angle_radians)

Die 0,02 Konstante ist für Tuning - wählt er den Kompromiss zwischen Rauschunterdrückung und Reaktions (man kann nicht beides gleichzeitig haben). Es hängt auch von der Genauigkeit der beiden Sensoren und die Zeitintervalle, in denen neue Messwerte erhalten.

Diese zwei Zeilen Code einen einfachen 1-dimensionalen (Skalar) Kalman-Filter implementieren. Er geht davon aus, dass

  • Gyro hat sehr geringe Geräuschentwicklung im Vergleich zu Beschleunigungsmesser (true bei den meisten Consumer-Sensoren). Deshalb tun wir nicht Modell Gyro Lärm, sondern Kreisel in dem Zustandsübergangsmodell (in der Regel mit F bezeichnet).
  • Beschleunigungsmesser Lesungen sind im Allgemeinen regelmäßigen Zeitintervallen erhalten und Beschleunigungsmesser Geräuschpegel (in der Regel R) konstant
  • angle_radians wurde initialisierte mit einer ersten Schätzung (f.ex durch Mittelung angle_radians_from_accelerometer über längere Zeit)
  • daher auch schätzen Kovarianz (P) und eine optimale Kalman-Verstärkung (K) konstant sind, was bedeutet, dass wir nicht brauchen, um Schätzung Kovarianz in einer Variablen überhaupt zu halten.

Wie Sie sehen, ist dieser Ansatz vereinfacht. Wenn die oben genannten Annahmen nicht erfüllt sind, sollten Sie einige der Kalman-Filter-Theorie lernen, und den Code entsprechend ändern.

Horizon Linie G‘* (u, v, f) = 0, wobei G eine Schwerkraftvektor ist, u und v Koordinaten Bild zentriert und f die Brennweite. Nun Vor- und Nachteile der Sensoren: gyro super schnell und genau, aber Drifts, Beschleunigungsmesser ist weniger genau, aber (wenn kalibriert) hat Null-Vorspannung und driftet nicht (da keine Beschleunigung außer der Schwerkraft). Sie verschiedene Dinge messen - Beschleunigungsmesser misst die Beschleunigung und damit relative Ausrichtung zum Schwerkraftvektor während gyro Maßnahmen Geschwindigkeitsrotation und damit die Orientierungsänderung. Zu wandeln es in Ausrichtung hat seine Werte zu integrieren (zum Glück kann es bei hohen wie fps 100-200 abgetastet werden). so Kalman-Filter sein, dass lineare soll ist nicht anwendbar auf Kreisels. denn jetzt können wir nur simplify Sensorfusion als eine gewichtete Summe der Messwerte und Prognosen.

Sie können zwei Lesungen kombinieren - Beschleunigungsmesser und integrierte Gyro und Modellvorhersage mit Gewichten, die umgekehrt proportional zu Datenabweichungen. Sie müssen auch gelegentlich Kompass verwenden, da Beschleunigungsaufnehmer Sie nicht viel sagen über den Azimut, aber ich denke, es ist für die Berechnung einer Horizontlinie irrelevant ist. Das System sollte schnell ansprechende und genaue und zu diesem Zweck werden, wenn schnelle Ausrichtung der Gewichte für gyro Änderungen sollten groß sein; wenn das System setzt sich nach unten und Rotation stoppt die Gewichte für Beschleunigungsmesser mehr Integration von Null-Bias-Messwerte ermöglicht und das Töten der Drift aus dem Kreisel nach oben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top