Was sind Quaternionen und wie werden sie verwendet, um die Dynamik von Raumfahrzeugen darzustellen?

Der Titel sagt alles. Quaternionen werden häufig verwendet, um die Ausrichtung eines Raumfahrzeugs darzustellen. Warum ist das so und wie verhalten sich Quaternionen im Vergleich zu anderen Alternativen?

Ich frage mich, ob die Fußnote am Ende dieser Seite zutrifft: github.com/moble/quaternion/blob/master/README.md
@uhoh - Führen Sie eine genaue Google-Suche nach "Euler-Winkel sind böse" durch (genau bedeutet Suche mit Anführungszeichen). Du wirst viele Hits bekommen.

Antworten (1)

Was sind Quaternionen und wie werden sie in der Dynamik von Raumfahrzeugen verwendet?

Hintergrund

Die Newtonsche Mechanik besagt, dass wir in einem Universum mit drei räumlichen Dimensionen und einer universellen Zeit leben, die die unabhängige Variable ist, in der wir Translation und Rotation beschreiben können. Die Relativitätstheorie besagt, dass wir in einem Universum mit drei raumähnlichen Dimensionen und einer zeitähnlichen Dimension leben, die miteinander verwoben sind. Diese Antwort ignoriert relativistische Aspekte.

Mit dieser Annahme ist die Beschreibung der Translation einfach, zumindest im Vergleich zur Rotation. Der Massenmittelpunkt eines Objekts hat eine Position in einem Bezugsrahmen (vorzugsweise Trägheit), der sich im Laufe der Zeit ändert. Gravitation, Luftwiderstand und andere Wechselwirkungen wie das Zünden der Translationstriebwerke ändern diesen Wert als Funktion der Zeit. Simulieren Sie diese Interaktionen und Sie haben eine Simulation mit drei Freiheitsgraden (3DOF).

Was die 3DOF-Modellierung so einfach macht, ist, dass es sich um einen kommutativen Raum handelt. Gehen Sie zehn Meter nach Norden und dann fünf Meter nach Osten und Sie werden an einer bestimmten Stelle ankommen. Wenn Sie alternativ fünf Meter nach Osten und zehn Meter nach Norden gehen, gelangen Sie an dieselbe Stelle. Übersetzung im euklidischen Raum pendelt. Rotation im dreidimensionalen Raum ist nicht kommutativ. Nehmen Sie ein Buch und drehen Sie es um eine Achse parallel zum Buchrücken und dann drehen Sie das Buch um eine Achse senkrecht zur Vorderseite des Buches. Führen Sie diese Aktionen anders aus (drehen Sie zuerst um eine Achse senkrecht zur Vorderseite des Buches und dann um den Buchrücken), und Sie erhalten ein anderes Endergebnis.

Drehungen im dreidimensionalen Raum

Da Rotationen im dreidimensionalen Raum nicht pendeln, sind sie keine Vektoren. Kommutativität ist eine wesentliche Eigenschaft, ein Vektor zu sein. Da Rotationen keine Vektoren sind, wie kann man sie darstellen? Es stellt sich heraus, dass es viele verschiedene Möglichkeiten gibt, Rotationen im dreidimensionalen Raum darzustellen. Euler war einer der ersten, der dieses Problem untersuchte und eine Reihe von Schlüsselkonzepten verwirklichte. Einer ist, dass ein starrer Körper, der sich im dreidimensionalen Raum dreht, immer so beschrieben werden kann, dass er sich augenblicklich um eine einzige Achse dreht. Dieses Konzept ist einzigartig im 3D-Raum und ist auch der Schlüssel dafür, warum Quaternionen (Einheitsquaternionen) zum Beschreiben von Rotationen nützlich sind. Darauf gehe ich etwas später ein.

Er erkannte auch, dass die Ausrichtung eines Planeten oder eines starren Körpers im Allgemeinen durch drei Rotationen beschrieben werden kann. Euler verwendete eine Folge von drei Rotationen: Eine Rotation um die Z-Achse, dann eine weitere um die einmal gedrehte X-Achse und dann noch eine um die zweimal gedrehte Z-Achse. An dieser kanonischen ZX'-Z''-Sequenz ist nichts Besonderes. Alles, was benötigt wird, ist, dass die erste und die dritte Drehung um dieselbe körperfeste Achse erfolgen und dass das mittlere Element um eine körperfeste Achse verläuft, die orthogonal zu der anderen Achse ist. Eine verwandte Sequenz besteht darin, drei orthogonale körperfeste Achsen zu verwenden. Diese Wahl führt (zum Beispiel) zu einer Roll-Nick-Gier-Folge. Es gibt sechs klassische Euler-Folgen (z. B. ZX'-Z'') plus sechs Tait-Bryan-Folgen (z. B. Roll-Pitch-Yaw). Eine weitere Variation dieses Themas besteht darin, sich um einen festen Satz von Achsen zu drehen. Dies führt zu den extrinsischen Euler-Folgen. Insgesamt gibt es 24 verschiedene Dinge, die als Euler-Rotationssequenzen bezeichnet werden können.

Eine andere Möglichkeit, Rotationen darzustellen, ist über eine geeignete orthogonale Matrix. Eine orthogonale Matrix ist eine NxN-Matrix, in der jede Reihe (oder jede Spalte) ein Einheitsvektor ist und zu allen anderen Reihen (oder Spalten) orthogonal ist. Diese Darstellung ist generisch; es gilt für jeden N-dimensionalen kartesischen Raum. Die 3x3-Darstellung ist von besonderem Interesse, da wir in einem 3D-Universum leben. Ein Hauptproblem bei einer NxN-Matrix, die zur Darstellung der Orientierung verwendet wird, besteht darin, dass Drehungen im N-dimensionalen Raum auftreten ( N 2 N ) / 2 Freiheitsgrade, während die Matrix hat N 2 Elemente. Über die Hälfte der Elemente der Matrix sind redundant. (Dieses Problem der Redundanz gilt auch für Quaternionen. Drehungen im 3D-Raum haben drei Freiheitsgrade. Quaternionen haben vier Elemente.)

Eine weitere Möglichkeit, die Orientierung / Rotation im 3D-Raum darzustellen, ist der Satz von Euler mit einer Achse. Unabhängig davon, wie seltsam ein starrer Körper ausgerichtet ist, gibt es immer eine Achse, kombiniert mit einer Drehung um einen bestimmten Winkel um diese Achse, die verwendet werden kann, um die Ausrichtung des betreffenden Körpers in Bezug auf einen bestimmten Bezugsrahmen darzustellen. Diese Achsen-/Winkeldarstellung kommt einer quaternionischen Darstellung sehr nahe. Gegeben ein Einheitsvektor u ^ und ein Winkel θ , die Quaternion, deren Skalarteil ist cos ( θ / 2 ) und dessen Vektorteil entweder ist u ^ Sünde ( θ / 2 ) oder u ^ Sünde ( θ / 2 ) erfasst alle Informationen, die zur Darstellung der Orientierung erforderlich sind, wobei die mit Euler-Sequenzen verbundenen Singularitätsprobleme vollständig vermieden werden und das mit Matrizen verbundene Problem der Überspezifikation fast vermieden wird.

WTF sind Quaternionen?

Das obige wirft die Frage auf. Ich habe über Quaternionen geschrieben, bevor ich besprochen habe, was Quaternionen sind. William Rowan Hamilton bemühte sich, eine Erweiterung der komplexen Zahlen zu finden, wo ich = 1 . Bei einem Spaziergang mit seiner Frau kam er schließlich zu einer Einsicht und erfand die Quaternionen. Um sicherzustellen, dass er diese unglaubliche Erkenntnis nicht vergisst, hat er ein paar Graffiti auf eine Brücke geritzt:

ich 2 = j 2 = k 2 = ich j k = 1

Plakette auf Brücke mit Gleichung

Dieses scheinbar einfache Graffiti ist unglaublich komplex (Wortspiel beabsichtigt). Komplexe Zahlen haben zwei Elemente, einen Real- und einen Imaginärteil. Die negative Eins hat zwei Quadratwurzeln in den komplexen Zahlen. Quaternionen haben vier Elemente, einen Realteil und drei Imaginärteile. Die negative Eins hat unabzählbar viele Quadratwurzeln in den Quaternionen.

Es gibt eine natürliche Weiterentwicklung der Quaternionen, die nach Hamilton entdeckt wurden. Die Oktonionen haben acht Elemente, von denen eines ein Realteil ist und die anderen sieben (irgendwie) imaginär sind. Die Sedenions haben sechzehn Elemente, von denen eines real und die anderen fünfzehn imaginär sind, und so weiter, mit Zweierpotenzen. Das Problem ist, dass jeder Schritt auf der Leiter ein mathematisches Schlüsselkonzept fallen lässt. Quaternionen pendeln nicht (multiplikativ), Oktonionen assoziieren nicht einmal. Sedenions und höher sind in der Regel eher wertlos.

Quaternion-Mathematik

Quaternionen haben zwei wichtige binäre Operatoren, Addition und Multiplikation, plus additive und multiplikative Identitätselemente, additive Inverse und mit Ausnahme von Null multiplikative Inverse. Die Addition funktioniert analog zur Addition eines Paares vierdimensionaler kartesischer Vektoren. Bei der Multiplikation werden Quaternionen knifflig. Aus Hamiltons Graffiti kann man das (zum Beispiel) ableiten ich j = k aber das j ich = k . Die Quaternion-Multiplikation ist nicht kommutativ. Betrachtet man Quaternionen als bestehend aus einem reellen Skalarteil und einem vektoriellen Imaginärteil, dem Produkt zweier Quaternionen ( a + b ) ( c + d ) ist ( a c b d ) + ( a d + c b + b × d ) .

Dies gibt Quaternionen genau die richtige Menge an Unordnung, die benötigt wird, um die Rotationsdifferenz zwischen zwei Bezugsrahmen im dreidimensionalen Raum zu beschreiben. Insbesondere angesichts einiger Quaternionen q und ein Vektor v als reines imaginäres Quaternion betrachtet, die Quaternionoperation q v q 1 ist ein weiteres reines imaginäres Quaternion. Diese Operation dreht den Vektor v im dreidimensionalen Raum. Ebenso die Operation q 1 v q .

Einheitsquaternionen

Da wir es mit Inversen zu tun haben, ist es sinnvoll, diese Quaternionen so zu skalieren, dass sie einheitlich sind. Die Inverse einer Quaternion ist ihre Konjugierte dividiert durch das Quadrat der Magnitude. Für eine Einheitsquaternion q , seine Umkehrung und sein Quaternion-Konjugat sind ein und dasselbe: q 1 = q für alle Einheitsquaternionen q .

Ein weiterer Grund für die Verwendung von Einheitsquaternionen ist, dass sie die richtige Art von mathematischer Struktur bilden, die zur Darstellung von Rotationen im 3D-Raum benötigt wird. Die Einheitsquaternionen sind eine mathematische Gruppe, ebenso wie Rotationen im 3D-Raum. Jede Einheitsquaternion stellt eine Rotation im 3D-Raum dar, und jede Rotation im 3D-Raum kann durch eine Einheitsquaternion dargestellt werden. Tatsächlich kann jede Drehung im 3D-Raum durch zwei Einheitsquaternionen dargestellt werden. Multiplizieren Sie eine Einheitsquaternion mit -1 und Sie erhalten eine weitere Einheitsquaternion, die dieselbe Drehung wie die erste darstellt. Einheitsquaternionen bilden eine doppelte Abdeckung bei Rotationen im 3D-Raum.

Wie werden Quaternionen verwendet, um Drehungen im 3D-Raum darzustellen?

Dies ist die Schlüsselfrage. Die Antwort ist, dass es eine sehr einfache Beziehung zwischen der einachsigen Darstellung einer Drehung und einer Einheitsquaternion gibt. Der Skalarteil (auch bekannt als Realteil) dieser Quaternion ist cos ( θ / 2 ) , wo θ ist der Einzelachsenrotationswinkel und der Imaginärteil ist einer von beiden u ^ Sünde ( θ / 2 ) oder u ^ Sünde ( θ / 2 ) , wo u ^ ist der Einheitsvektor entlang der Rotationsachse. Ob man ein Plus- oder Minuszeichen verwendet, ist völlig willkürlich. Dies führt natürlich zu einer Reihe von Diskussionen über die „richtige Vorgehensweise“. Es gibt keinen richtigen Weg. Beide Ansätze sind gleichermaßen gültig.

Was sind einige der Fallstricke?

Während Quaternionen nicht so böse sind wie Euler-Winkel, gibt es Probleme im Zusammenhang mit ihrer Verwendung.

  1. Linke versus rechte Quaternionen.
    Es gibt zwei Möglichkeiten, Einheitsquaternionen zu verwenden, um eine Rotation oder Transformation im 3D-Raum darzustellen: q v q oder q v q . Beide Ansätze sind mathematisch gleichermaßen gültig; Der einzige Unterschied besteht darin, ob die unkonjugierte Quaternion dem zu transformierenden oder zu drehenden Vektor vorangeht oder folgt.
  2. Transformation versus Rotationsquaternionen. Quaternionen können verwendet werden, um die physikalische Drehung eines Vektors im 3D-Raum darzustellen und um die Transformation desselben Vektors von einem Koordinatensystem in ein anderes darzustellen. Diese erweisen sich als konjugierte Operationen.
  3. Reihenfolge der Elemente.
    Quaternionen haben vier Elemente, einen skalaren Realteil und einen vektoriellen Imaginärteil. Was sollte zuerst gehen, der reale oder der imaginäre Teil, wenn sie gespeichert oder mit jemand anderem ausgetauscht werden? Die Antwort ist, dass es keine richtige Antwort gibt.
  4. Wie man sie numerisch integriert.
    Die oben genannten drei sind nur repräsentative Fragen. Diese letzte Frage ist komplex genug, um gesondert behandelt zu werden.

Die ersten Probleme bedeuten, dass man bei der Zusammenarbeit mit jemand anderem (z. B. einer gemeinsamen integrierten Simulation) besser die Nomenklatur der beiden Teams klären sollte. Die Chancen stehen gut, dass die beiden Gruppen nicht die gleichen Darstellungen verwenden, und die Chancen stehen auch gut, dass keines der Teams sein internes Schema ändert. Glücklicherweise ist die Konvertierung von einem zum anderen einfach zu handhaben. Es wird viele Schuldzuweisungen geben, die nicht behandelt werden.

Wie integriert man Einheitsquaternionen numerisch?

Es gibt eine Reihe von Gründen, warum man eine Einheitsquaternion im Laufe der Zeit integrieren muss. Eine Winkelgeschwindigkeit ungleich Null ändert die Ausrichtung eines Raumfahrzeugs. Ich verwende in meiner Arbeit linke Transformationseinheit-Quaternionen. Die Zeitableitung einer solchen Quaternion ist q ˙ ich B = 1 2 ω q ich B wo q ich B ist die Trägheit zum linken Transformationsquaternion des Raumfahrzeugkörpers und ω ist die Winkelgeschwindigkeit des Raumfahrzeugs, ausgedrückt in den Körperrahmenkoordinaten. Numerische Integration beinhaltet zwangsläufig Schritte in der Art von x ( t + Δ t ) = x ( t ) + x ˙ ( t ) Δ t .

Dies ist für Einheitsquaternionen mathematisch ungültig; die Einheitsquaternionen haben keinen Additionsoperator. Es gilt allgemein für Quaternionen, aber das Ergebnis ist zwangsläufig eine Nicht-Einheits-Quaternion. Ein einfacher Ausweg besteht darin, das Ergebnis zu normalisieren. Dies funktioniert ein wenig für sehr kleine Schritte. In den letzten zwei Jahrzehnten wurde viel über geometrische Integratoren gearbeitet, insbesondere über Lie-Gruppen-Integratoren. Die Einheitsquaternionen sind eine ziemlich einfache Lie-Gruppe. Der Tangentialraum sind die reinen imaginären Quaternionen. Dies ist der Raum, in dem Winkelgeschwindigkeiten leben. Die rein imaginären Quaternionen bilden eine Algebra, insbesondere eine Lie-Algebra. Die gesamte Arbeit an Lie-Gruppen-Integrationstechniken gilt direkt für die Einheitsquaternionen.

Es kommt noch mehr. Es gibt Bücher zu diesem Thema. Ich möchte kein Buch schreiben, aber um diesem Thema gerecht zu werden, braucht es einiges mehr als ein paar Absätze.
An alle Redakteure: Meine Antwort (bisher) ist lang und daher mit ziemlicher Sicherheit randvoll mit Grammatikfehlern. Bitte zögern Sie nicht zu korrigieren.
Ein netter Übersichtsartikel, der offensichtlich nicht streng geheim ist, NOFORN: Eine Einführung in Lie-Gruppenintegratoren – Grundlagen, neue Entwicklungen und Anwendungen . Es ist Open Source und frei verfügbar.
Kurz, wie könnte man eine Quartenion in das bekannte Pitch-Yaw-Roll umwandeln?
@SF Siehe web.archive.org/web/20160103223542/http://… . Dies ist ein Code, den ich geschrieben habe, den jemand anderes in Java konvertiert und dann öffentlich zugänglich gemacht hat. (Keine Beschwerden. Ich bin froh, dass er das getan hat.) Google hat googlecode.com geschlossen, aber archive.org hat glücklicherweise diesen Link erfasst. Siehe insbesondere die Funktion set_from_matrix. Dies verwendet eine Transformationsmatrix anstelle einer Quaternion. Die Transformation von einer Quaternion in eine Transformationsmatrix ist ziemlich einfach.
Ich mag diese Antwort. Aber was ist mit ein paar Worten zum Gimbal Lock? Gimbal Lock ist einer der wichtigsten Gründe, Quaternionen gegenüber 3x3-Matrizen in vielen Berechnungen und Modellen zu bevorzugen.
@Polygnome - Diese Worte kommen noch, Gimbal Lock ist einer der vielen Gründe, warum Euler-Winkel (in allen 48 Beschwörungsformeln) Kugeln beißen. Quaternionen leiden nicht unter Gimbal Lock.
Ich bin kürzlich in eine weitere Diskussion (auch bekannt als Argument) darüber geraten, wie man Quaternionen zur Darstellung von Rotationen verwendet. Die andere Partei beklagte sich darüber, nicht das richtige Formular verwendet zu haben. Wäre da nicht die Tatsache, dass sie indirekt die Rechnung bezahlten, EFF THEM. Es gibt linke Quaternionen ( Q v Q ), rechte Quaternionen ( Q v Q ) und Quaternionen, bei denen der Vektorteil zuerst oder zuletzt gespeichert wird. Es gibt nicht den einen „richtigen Weg“, es zu tun, also sollten Sie verdammt noch mal bereit und in der Lage sein, diese Zweideutigkeiten anzusprechen, wenn Sie mit jemand anderem zusammenarbeiten.
Kommentare sind nicht für längere Diskussionen gedacht; diese Konversation wurde in den Chat verschoben .
Diese Antwort ist für mich äußerst hilfreich, da sie eine Art beschreibt, über Quaternionen nachzudenken, die mir viel mehr Einblick gibt als eine trockene mathematische Beschreibung. Zu wissen, „wie sie funktionieren“ und was sie können, macht es jetzt viel einfacher, sich der Mathematik zu nähern. Besteht die Möglichkeit, dass Sie auch etwas Licht in die Zustandsübergangsmatrix bringen können ?
Bonus-Respekt für die korrekte und gekonnte Verwendung von „begs the question“!
@BobJacobsen - Außer ich habe es nicht richtig verwendet. "Die Frage stellen" ist ein logischer Fehlschluss, den ich, glaube ich, nicht angeführt habe. Ich hätte stattdessen "wirft die Frage auf" schreiben sollen. Ich lasse das "fragt sich" so wie es ist und bitte um Verzeihung.
@ David-Hammen Nun, vernünftige Leute können sich unterscheiden. Meine Lektüre war, dass die Frage aufgeworfen wurde, als das OP schrieb: "Quaternionen werden häufig verwendet, um die Ausrichtung eines Raumfahrzeugs darzustellen. Warum ist das so?" Der erste Teil Ihrer Antwort lautete: „Hier ist jetzt die Orientierung“ – Dieser Teil Ihrer Antwort hätte, wenn er allein gelassen worden wäre, „die Frage aufgeworfen“, weil er davon ausging, dass „Quaternionen ... zur Darstellung von ... verwendet werden. Orientierung"; es beantwortete nicht das "Warum?". Aber dann haben Sie die gestellte Frage klar und vollständig beantwortet. Gut gemacht! Absolut keine Vergebung nötig.