Warum Runge-Kutta für die Quaternion-Integration in Kalman-Filter?


7

Ich lese gerade über Kalman-Filterung. Insbesondere bin ich daran interessiert, die Varianten "erweitert" und "nicht parfümiert" für die Fusion und Kalibrierung von IMU-Sensoren zu verwenden.

In einem Vergleich der nicht parfümierten und erweiterten Kalman-Filterung zur Schätzung der Quaternionsbewegung werden Quaternionen verwendet, um die 3D-Rotation darzustellen.

Ich verstehe, dass Einheitsquaternionen verwendet werden können, um eine 3D-Rotation darzustellen . Sie eignen sich zur Darstellung der absoluten Fluglage (eine Drehung von einer universellen Referenz), der relativen Drehung oder der Winkelgeschwindigkeit (eine Drehung, die die Geschwindigkeit pro Sekunde oder einen anderen festen Zeitraum darstellt).

In diesem Artikel wird jedoch die Verwendung der Runge-Kutta-Integration , insbesondere von RK4, erörtert. Es verwendet RK4 mit den Quaternionen, scheint jedoch keine Details darüber zu liefern, was dies beinhaltet oder warum es notwendig ist. Hier ist der Teil des Papiers, in dem es erwähnt wird…

Wenn der Zustandsvektor in Schritt k - 1 gegeben ist, führen wir zuerst den Vorhersageschritt durch, indem wir die a priori Zustandsschätzung xˆ - k finden, indem wir Gleichung 1 [f = dq / dt = qω / 2] über die Zeit um ∆t (dh 1,0) integrieren geteilt durch die aktuelle Abtastrate) unter Verwendung eines Runge-Kutta-Schemas 4. Ordnung.

Ich habe Runge Kutta schon einmal getroffen, um Positionen in die Kinematik zu integrieren. Ich verstehe nicht wirklich, wie oder warum es hier gebraucht würde.

Mein naiver Ansatz wäre, einfach die vorhandene Haltung q mit der Winkelgeschwindigkeit ω zu multiplizieren, um das erwartete neue q zu erhalten - ich verstehe nicht, warum hier eine numerische Integration notwendig ist? Vielleicht ist es, die Zeiteinheit ω auf die Änderung in ∆t zu "skalieren", aber dies kann sicherlich sehr einfach durch direktes Manipulieren von ω (Erhöhen auf die Bruchleistung ∆t) erfolgen?

Weiß jemand?


1
Das Papier ist aus Sicht von KF / EKF schlecht geschrieben. Es gibt nicht an, was das Signalmodell ist, obwohl es darauf verweist, wenn es sich auf Gleichung 1 bezieht. Außerdem ist mir Gleichung 1 selbst nicht klar:q ist normalerweise ein 4-Vektor und ω ist normalerweise ein 3-Vektor ... also der Begriff qωist dimensional unsound.
Peter K.

Hallo @PeterK. Es wird erwähnt, dass ω "eine reine Vektorquaternion ist, die die Winkelgeschwindigkeit darstellt" - ich nehme an, dies bedeutet, dass es keinen Realteil hat oder dass der Realteil 0 ist?
Benjohn

Ja, Sie können richtig sein ... obwohl ich denke, dass es das ist wKomponente, die Null ist ... "echt", wenn es um Quaternionen geht, ist ... schwer zu ergründen. :-)
Peter K.

:-) Ich habe noch nicht herausgefunden, wie eine Winkelgeschwindigkeitsquaternion aus den dreiachsigen Geschwindigkeitskreiseln abgeleitet wird - ich frage mich, ob dies einen Integrationsschritt erfordern könnte? Aber nach Strohhalmen greifen!
Benjohn

Antworten:


7

Ich denke, die Verwirrung kommt von den Autoren, die die Dinge nicht klar parametrisieren. Darüber hinaus kann durch die Umstellung auf geometrische Algebra anstelle von Quaternionen eine zusätzliche Verwirrung beseitigt werden.

Der Hauptunterschied zwischen normaler Vektoralgebra und geometrischer Algebra besteht darin, dass wir Vektoren multiplizieren können. Also vonex, ey, und ez sind unsere (orthonormalen) Basisvektoren, die wir auch haben exeyDies ist kein Vektor, sondern ein Bivektor, der als orientiertes ebenes Element betrachtet werden kann. (Mit "reiner Vektorquaternion" meinen sie einen Bivektor; Sie haben Recht, dass dies bedeutet0 w Teil und es ist vernünftig zu sagen, es hat eine 0 "realer" Teil.) Eine Schlüsseleigenschaft ist, dass die Basisvektoren gegeneinander pendeln, dh exey=eyex. Dies führt zu(exey)2=1. Im Allgemeinen quadriert jede Einheit Bivector zu1Das heißt, wir können die Euler-Formel anwenden:

R=eθB=cosθ+Bsinθ
wo B ist ein Unit Bivector und wir nennen Rein Rotor . Eine Einheitsquaternion ist nur ein 3D-Rotor. (Komplexe Zahlen sind nur die gerade Subalgebra der geometrischen 2D-Algebra. Hier betrachten wir Quaternionen, die gerade Subalgebra von 3D GA.)

Wenn wir eine Rotation durch wollen θ in der Ebene eines Einheitsbivektors B Wir benutzen den Rotor R=eθ2B. (Die Hälfte kommt herein, weil wir einen Vektor drehenv über RvR~;; siehe den obigen Link.) Natürlich möchten wir zulassen, dass sowohl die Ebene als auch der Winkel variieren, damit wir den (nicht einheitlichen) Bivektor definierenΘ(t)=θ(t)B(t) also wenn

R(t)=e12Θ(t)
dann
R˙(t)=12Ω(t)R(t)
wo Ω=Θ˙. Das ist ihref=qω/2;; ihrq ist unser R und ihre ω ist unser Ω. Nun, wenn wir habenR(t0) und wir wollen R(t0+Δt) wir müssen uns integrieren R˙ von t0 zu t0+Δt.

Das von Ihnen beschriebene Schema entspricht in etwa der Vorwärts-Euler-Integration, bei der im Wesentlichen davon ausgegangen wird, dass dies der Fall ist q und ω unsere R und Ω ist konstant vorbei Δt. RK4 ist nur eine bessere Integrationsmethode. Ich bezweifle, dass es einen besonderen Grund gibt, warum sie sich für RK4 im Gegensatz zu anderen Integrationsmethoden entschieden haben. Dies ist normalerweise nur die Standardauswahl.


! :-) Ich habe auf den Tag gewartet, an dem mir jemand persönlich sagte: "Durch den Wechsel zur geometrischen Algebra anstelle von Quaternionen kann eine zusätzliche Verwirrung beseitigt werden." Vielen Dank! Ich habe mich seit einigen Jahren für GA interessiert, daher ist es großartig, wenn jemand ein Problem präsentiert, das ich mit ihm lösen möchte! ... Richtig, Ihr Punkt auf Euler Integration zu verbessern macht viel Sinn, aber: nicht , es braucht einige zusätzliche Informationen über nur die vorherige Position und Geschwindigkeit? Vielleicht sowohl alte als auch neue Geschwindigkeiten? Oder implizite Beschleunigung?
Benjohn

1
Ich vermute, dass sie behalten ωkonstant während der Integration. Da es nicht so klingt, als würden sie Winkelgeschwindigkeitsmessungen erhalten, ändert sich die Winkelgeschwindigkeit nur, wenn sie vom Kalman-Filter "korrigiert" wird, dh die Winkelgeschwindigkeit wird nicht beobachtet, wenn der Kalman-Filter versucht, sie zu rekonstruieren.
Derek Elkins verließ SE

0

Die beste mir bekannte Methode zur Integration von Quaternions ist der SLERP-Algorithmus und seine Nachkommen, die in der Computergrafik verwendet werden. Ich habe dies für Testdaten zur Stoßbeschleunigung bei hohen Tests verwendet und eine um eine Größenordnung höhere Genauigkeit festgestellt. Mit dieser Methode wird die Anhäufung von Normalisierungsfehlern vermieden, die mit den regulären Runge-Kutta-Methoden verbunden sind. Denken Sie daran, dass die Quaternionen ein System von DAEs sind, dh Differential-Algebraische Gleichungen.

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.