6D rotation representation
- Auch genannt: 6D rotation, continuous 6D rotation representation
- Kategorie: Foundations & spatial maths › Frames & transforms
- Schlagwörter: rotations, pose-estimation, deep-learning, spatial-math, so3
Kodierung einer 3D-Rotation als zwei 3D-Vektoren, die ersten beiden Spalten ihrer Rotationsmatrix, damit neuronale Netze Rotationen ohne die Unstetigkeiten von Euler-Winkeln oder Quaternionen vorhersagen können.
Definition
Die 6D-Rotationsdarstellung (6D rotation representation) kodiert eine 3D-Rotation durch sechs Zahlen: zwei 3D-Vektoren, die nach der Orthonormalisierung zu den ersten beiden Spalten der Rotationsmatrix werden. Sie wurde 2019 von Zhou et al. für neuronale Netze eingeführt, die Rotationen vorhersagen oder als Eingabe erhalten. Um die sechs Ausgaben eines Netzes in eine Rotation umzuwandeln, wird der erste Vektor normiert, die Komponente des zweiten Vektors entlang des ersten entfernt und das Ergebnis normiert, wie bei der Gram-Schmidt-Orthogonalisierung, und die dritte Spalte ist das Kreuzprodukt der ersten beiden. Beliebige sechs Zahlen, bei denen die beiden Vektoren ungleich null und nicht parallel sind, werden auf eine gültige Rotationsmatrix abgebildet.
Die Motivation ist Stetigkeit. Zhou et al. zeigten, dass jede Darstellung von 3D-Rotationen in vier oder weniger reellen Dimensionen unstetig ist: Irgendwo werden nahe beieinanderliegende Rotationen auf weit auseinanderliegende Darstellungen abgebildet oder umgekehrt. Euler-Winkel springen beim Überlauf des Winkels und leiden unter Gimbal Lock; die Achse-Winkel-Darstellung springt bei einer Rotation um π; Quaternionen haben die zweifache Überlagerung, bei der q und −q dieselbe Rotation beschreiben, und ihre Beschränkung auf eine Hemisphäre zur Beseitigung dieser Mehrdeutigkeit führt einen Sprung am Rand ein. Ein Netz, das auf die Regression solcher Zielwerte trainiert wird, muss eine unstetige Funktion approximieren, was für manche Rotationen tendenziell große Fehler erzeugt. Die 6D-Darstellung ist, wie die volle 9D-Rotationsmatrix, stetig, und in ihren Experimenten lernten damit trainierte Netze Rotationen genauer.
Die 6D-Form ist redundant statt minimal, und ihr Gram-Schmidt-Schritt behandelt die erste Spalte anders als die zweite. Eine verbreitete Alternative sagt alle neun Matrixeinträge vorher und projiziert sie mit einer Singulärwertzerlegung auf die nächstgelegene Rotation, was symmetrisch über die Spalten ist. Verluste werden meist auf der rekonstruierten Rotationsmatrix berechnet, zum Beispiel als geodätischer Winkel oder Frobenius-Abstand, statt auf den sechs Rohzahlen. Die Darstellung ist ein Werkzeug für das Lernen: Klassische Schätzung und Optimierung arbeiten meist direkt auf der Rotationsgruppe mit Quaternionen oder Lie-Algebra-Updates.
Warum es wichtig ist
Viele Systeme für Roboterlernen und Wahrnehmung sagen Orientierungen vorher: Objekt- und Handposen, menschliche Gelenkrotationen, Endeffektor-Aktionen. Die Wahl der Rotationsdarstellung beeinflusst, wie gut diese Netze trainieren, und die 6D-Darstellung ist zu einer gängigen Standardwahl für Ausgaben und Eingaben geworden, die Rotationen sind.
Wichtige Anwendungen
- Objekt- und Handposenschätzung mit neuronalen Netzen
- Menschliche Posen- und Körpermodelle, die Gelenkrotationen vorhersagen
- Endeffektor-Orientierung in gelernten Roboter-Policies und Aktionsräumen
- Regression von Kameraposen und Schätzung relativer Posen
- Generative Modelle für Bewegungen und Griffe
In der Praxis
Ein Team trainiert ein Netz, das die Armpose einer Person aus am Handgelenk getragenen Sensoren schätzt. Statt Euler-Winkel für Schulter und Ellbogen auszugeben, gibt das Netz sechs Zahlen pro Gelenk aus. Eine kleine Schicht wandelt jeden Satz von sechs Zahlen mit Gram-Schmidt und einem Kreuzprodukt in eine Rotationsmatrix um, und die Verlustfunktion vergleicht diese Matrizen über den geodätischen Winkel zwischen ihnen mit Ground Truth aus Motion Capture. Dieselbe Kodierung wird für die Orientierungseingaben der Sensoren verwendet, sodass das Netz nie einen Winkelüberlauf sieht. Im Einsatz werden die vorhergesagten Rotationsmatrizen für den Roboterregler in Quaternionen oder Gelenkwinkel umgewandelt.
Häufige Missverständnisse
- 6D bedeutet eine vollständige 6-DoF-Pose — die Darstellung umfasst nur die Rotation, die drei Freiheitsgrade hat und mit sechs Zahlen kodiert wird
- Die sechs Ausgaben eines Netzes sind bereits eine Rotation — sie müssen orthonormalisiert und mit einem Kreuzprodukt ergänzt werden, bevor sie eine gültige Rotationsmatrix bilden
- Quaternionen sind für das Lernen immer die beste Wahl — ihre zweifache Überlagerung und der Sprung, der durch die Beschränkung auf eine Hemisphäre entsteht, machen sie als Regressionsziele unstetig
- Die 6D-Darstellung ersetzt Quaternionen überall — sie wurde für Ein- und Ausgaben neuronaler Netze entworfen, während Filter und Optimierer meist direkt auf der Rotationsgruppe arbeiten
Wer das wissen sollte
- Forschende im Roboterlernen, die Aktions- und Beobachtungsräume entwerfen
- Ingenieure für Computer Vision, die an Posenschätzung arbeiten
- Forschende zu menschlicher Bewegung und Animation
- Ingenieure, die Greif- und Manipulationsnetze trainieren
Verwandte Technologien
- Rotationsmatrix (Rotation Matrix)
- Quaternionen (Quaternions)
- Gram-Schmidt-Orthogonalisierung (Gram-Schmidt Orthogonalization)
- SVD-Orthogonalisierung
- PyTorch3D
Verwandte Begriffe
Verwandte Projekte
- pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- manif: Header-only C++ Lie theory library for robotics state estimation
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- Intrinsic Core: Intrinsic's open industrial robot stack: real-time control, planning and perception
- PULP-Dronet: Visual navigation for nano-drones with CNN inference onboard a PULP processor.