Open Source Robotics

Eine kuratierte Sammlung hochwertiger Open-Source-Robotikprojekte, Werkzeuge und Software für die Robotik-Community.

SE(3)

  • Auch genannt: special Euclidean group, SE3, rigid-body transformation group
  • Kategorie: Foundations & spatial maths › Frames & transforms
  • Schlagwörter: lie-groups, rigid-body-motion, spatial-math, kinematics, pose-estimation

Die Gruppe der Starrkörperbewegungen im 3D-Raum, jede Rotation kombiniert mit jeder Translation, meist als homogene 4×4-Transformationsmatrizen geschrieben. Sie beschreibt Posen und Posenänderungen.

Definition

SE(3), die spezielle euklidische Gruppe in drei Dimensionen, enthält jede Starrkörpertransformation: eine Rotation R aus SO(3), der Gruppe der orthonormalen 3×3-Matrizen mit Determinante +1, zusammen mit einem Translationsvektor p. Als homogene 4×4-Matrix geschrieben, mit R links oben, p in der rechten Spalte und [0 0 0 1] als unterster Zeile, ist die Verkettung zweier Bewegungen eine Matrixmultiplikation, und die Inverse hat die Rotation Rᵀ und die Translation −Rᵀp. Ein Element von SE(3) kann eine Pose beschreiben, also Position und Orientierung eines Koordinatensystems relativ zu einem anderen, oder eine Bewegung, die Punkte von einem Koordinatensystem in ein anderes überführt. Es hat sechs Freiheitsgrade, drei rotatorische und drei translatorische; „speziell“ bedeutet, dass Spiegelungen ausgeschlossen sind.

SE(3) ist eine Lie-Gruppe, ein glatter gekrümmter Raum, der zugleich eine Gruppe ist, und kein Vektorraum: Zwei Posen zu addieren oder Matrizen elementweise zu mitteln ergibt keine gültige Pose. Ihr Tangentialraum am neutralen Element, die Lie-Algebra se(3), besteht aus sechsdimensionalen Twists, die Winkel- und Lineargeschwindigkeit kombinieren. Die Exponentialabbildung macht aus einem Twist eine Transformation, und der Logarithmus bildet zurück ab. Diese Abbildungen liegen der Produkt-der-Exponentiale-Formel der Kinematik zugrunde, der Optimierung auf der Mannigfaltigkeit in SLAM- und Posengraph-Lösern, bei der Aktualisierungen als kleine Twists angewendet werden, sowie korrekter Interpolation und Unsicherheit für Posen. Das ebene Gegenstück SE(2) hat drei Freiheitsgrade, x, y und Kurswinkel, und wird für mobile Roboter und für auf eine Ebene beschränkte Objekte verwendet, etwa ein Objekt, das zwischen den Parallelbacken eines Greifers eingeklemmt ist.

Posen in SE(3) lassen sich speichern als homogene Matrizen, als Rotation (Rotationsmatrix, Einheitsquaternion oder Achse-Winkel) plus Translationsvektor, als duale Quaternionen oder in Twist-Koordinaten. Beim Lernen müssen Netze, die Posen ausgeben, den Rotationsanteil sorgfältig behandeln, da Quaternionen jede Rotation doppelt abdecken und manche Parametrisierungen unstetig sind. SE(3)-äquivariante Netze bauen die Symmetrie der Gruppe in ihre Struktur ein, sodass sich ihre Ausgaben konsistent transformieren, wenn die Eingabeszene rotiert oder verschoben wird.

Warum es wichtig ist

Jedes Koordinatensystem, jede extrinsische Sensorkalibrierung, jedes Endeffektorziel und jede Objektpose in einem Roboter ist ein Element von SE(3). Sie als Gruppe statt als zwölf unabhängige Zahlen zu behandeln, vermeidet häufige Fehler wie driftende Rotationsmatrizen, falsche Verkettungsreihenfolge und ungültige Mittelwertbildung, und es macht Optimierung und Unsicherheitsschätzungen korrekt.

Wichtige Anwendungen

  • Vorwärtskinematik und Zielposen für den Endeffektor
  • SLAM, visuelle Odometrie und Posengraph-Optimierung
  • Objektposenschätzung für das Greifen
  • Interpolation von Trajektorien zwischen Posen
  • Kalibrierung der extrinsischen Sensorparameter
  • Äquivariantes Lernen für die Manipulation

In der Praxis

Bei einer Greifaufgabe liefert die Vorwärtskinematik die Greiferpose im Basiskoordinatensystem, die Hand-Auge-Kalibrierung die Kamerapose im Greiferkoordinatensystem und ein Posenschätzer die Objektpose im Kamerakoordinatensystem. Die Objektpose im Basiskoordinatensystem ist das Produkt der drei Transformationen in dieser Reihenfolge, und eine konsistente Benennungskonvention für Koordinatensysteme verhindert, dass die Reihenfolge vertauscht wird. Beim Fusionieren mehrerer Posenschätzungen mittelt das Team Rotationen auf SO(3), zum Beispiel mit Quaternionenmittelung oder einem iterativen Mittelwert im Tangentialraum, statt Matrixelemente zu mitteln. Bibliotheken wie Sophus, manif und tf2 in ROS übernehmen diese Operationen.

Häufige Missverständnisse

  • Posen lassen sich elementweise mitteln oder interpolieren — das Ergebnis ist im Allgemeinen keine gültige Rotation; Mittelung und Interpolation müssen die Gruppenstruktur respektieren
  • SE(3) ist einfach SO(3) und ein Translationsvektor nebeneinander — die Elemente sind dieselben, aber bei der Verkettung von Bewegungen wirkt die Rotation auf die Translation, daher unterscheidet sich die Verkettungsregel
  • Euler-Winkel plus Position sind eine sichere allgemeine Darstellung — sie decken SE(3) ab, haben aber Singularitäten; Quaternionen oder Rotationsmatrizen vermeiden diese

Wer das wissen sollte

  • Robotik-Softwareingenieure, die mit Koordinatensystemen arbeiten
  • Ingenieure für SLAM und Zustandsschätzung
  • Ingenieure für Kinematik und Manipulation
  • Machine-Learning-Forschende, die Posen vorhersagen

Verwandte Technologien

  • SO(3)
  • Lie-Algebra se(3) (Lie Algebra se(3))
  • Homogene Transformationsmatrix (Homogeneous Transformation Matrix)
  • Quaternionen (Quaternions)
  • Sophus
  • tf2

Verwandte Begriffe

  • Transform
  • Coordinate Frame
  • Screw Axis
  • Forward Kinematics
  • Pose Graph Optimization
  • Equivariance

Verwandte Projekte

  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • manif: Header-only C++ Lie theory library for robotics state estimation
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation

Wikipedia

  • Euklidische Gruppe

Diese Website benötigt JavaScript. Bitte aktivieren Sie JavaScript, um unsere Open-Source-Robotikprojekte zu erkunden.