Zurück zu Learn

Koordinationsrahmen und Transformationen in der Robotik: Ein klarer Leitfaden

Verständnis von Koordinatrahmen und homogenen Transformationen für die Robotik-<unk> Welt, Roboterbasis, Werkzeug- und Kamerarahmen mit Konversionsbeispielen.

[← Lernen]

Fast jeder Fehler in einem Robotersystem, der den Arm in die falsche Richtung bewegt, ist ein Fehler im Koordinatenrahmen.

Warum Koordinationsrahmen wichtig sind

Jeder Sensor, jeder Roboterlink und jedes Objekt in der Umgebung hat sein eigenes Koordinatensystem seine eigene Definition von "vorwärts", "auf", und "rechts". Wenn Ihre Kamera ein Objekt in Position (0,1, -0,05, 0,3) im Rahmen der Kamera erkennt, kann der Roboter nicht direkt darauf handeln.

Die Position und die Orientierung zwischen den Frames zu verändern ist die Aufgabe der Koordinatentransformationen.

Homogene Transformationen

Eine homogene Transformation T0 ist eine 4×4-Matrix, die gleichzeitig Rotation und Übersetzung kodiert:

T = [[R, t], [0, 0, 0, 1]]

wo T2 eine 3×3-Rotationsmatrix (orthogonal, det(R) =1) und T3 ein 3×1-Übersetzungsvektor ist.

Die Kennzeichnung T4 bedeutet "die Posen des Rahmens B ausgedrückt in Rahmen A" oder gleichwertig, "die Transformation, die Koordinaten im Rahmen B in Koordinaten im Rahmen A umwandelt". Ein Punkt T5 im Rahmen B wird durch: T6 (mit homogenen Koordinaten T7) in Rahmen A umwandelt.

Rotationsrepräsentationen

Die Rotation ist eine 3-DOF-Quantität, aber es gibt mehrere Möglichkeiten, sie darzustellen.

  • Rotationsmatrix (3×3): Die geometrisch korrekteste Darstellung. Die Orthogonalitätsbeschränkung (9 Werte für 3 DOF) macht sie überparameteriert.
  • Euler-Winkel (Roll, Pitch, yaw): Intuitiv: "drehen Sie sich 45° um die Z-Achse. " Aber leiden Sie unter gimbal lock bei bestimmten Konfigurationen, zwei Achsen ausrichten sich und Sie verlieren einen Grad an Freiheit. Euler-Winkel nicht in Code verwenden, der kontinuierlich auf Hardware läuft. Nur für menschlich lesbare Logging verwendet.
  • Quaternion (qx, qy, qz, qw): 4 Werte (Einheitsbeschränkung gibt 3 DOF). Keine Schloss. Kompakt. Interpoliert reibungslos (SLERP). Standard für Robotersoftware. Verwenden Sie dies in Ihrem Code. Beachten Sie die doppelte Abdeckung: q und -q stellen die gleiche Drehung dar Überprüfen Sie beim Vergleich nach Zeichenflips.
  • 6D-Rotation (zwei Spalten von R): Am besten für Neuronen-Netzwerk-Ausgänge kontinuierliche Darstellung ohne Unterbrechungen. Vollständiges R über Gram-Schmidt rekonstruieren.

Gemeinsame Roboterrahmen

Eine typische Manipulationsanlage umfasst mindestens vier Koordinatenrahmen:

  • ** Weltrahmen:** Die feste globale Referenz. Normalerweise definiert an der Montage des Roboters oder an einem Kalibrierungsziele auf dem Tisch. Alle anderen Rahmen werden letztendlich in Bezug darauf ausgedrückt.
  • Basisrahmen: Ursprung in der Mitte der Roboter-Flanze. Die vorwärtsgehenden Kinematik des Arms wird relativ zu diesem Rahmen berechnet.
  • End-Effektor / Werkzeugrahmen: Ursprung an der Spitze des Griffers (der "Werkzeugzentrumpunkt" oder TCP).
  • Kamera-Rahmen: Ursprung im optischen Zentrum der Kamera. Die Z-Achse zeigt entlang der optischen Achse der Kamera (in die Szene).

Verwandeln der Ketten

Um eine im Kamera-Rahmen erkannte Objektposition in den Weltrahmen umzuwandeln, verfolgen Sie die Transformationen:

T_world_obj = T_world_robot × T_robot_ee × T_ee_camera × T_camera_obj

Lesen Sie diese Linke nach rechts: Verwandeln Sie zunächst das Objekt in den Kamerarahmen (Identität es ist bereits da), dann in den End-Effektorrahmen, dann in den Roboter-Basisrahmen, dann in den Weltrahmen.

Jede Transformation ist eine 4x4-Matrix; die Kette ist nur Matrix-Multiplikation. In ROS2 verwaltet die T9-Bibliothek alle diese Transformationen automatisch und lässt Sie jede Frame-to-Frame-Transformation mit einem einzigen Anruf suchen.

Kalibrierung von Hand-Augen

Um die Transformationskette oben zu verwenden, benötigen Sie T10 die Position der Kamera im Verhältnis zum Endefektor des Roboters.

Der Prozess: Bewegen Sie den Roboter in viele verschiedene gemeinsame Konfigurationen (mindestens 1520) während ein Kalibrierungsziele (ArUco-Marker oder Schachbrett) in der Szene sichtbar ist. Bei jeder Konfiguration erfassen Sie die FK-rechenschaftliche End-Effektor-Position des Robots und die Beobachtung des Ziels durch die Kamera. Dies gibt ein Gleichungssystem AX = XB, bei dem X die unbekannte T11 ist. Standardlösungen (OpenCV T12) lösen dies in Sekunden.

Neukalibrieren Sie, wenn: die Kamera physisch bewegt oder gestürzt wird, eine neue Kamera installiert wird oder Sie systematische Ofsetfehler feststellen.

Praktische Python-Tools

  • scipy.spacial.transform.Rotation: Konvertieren Sie zwischen Rotationsmatrix, Quaternion, Euler-Winkel und Achsenwinkel.
  • ROS2 tf2 (Python rclpy): Echtzeit-Transformationsbaummanagement.
  • pytransform3d: Pure Python-Bibliothek für alle SE(3)-Betriebsvorgänge mit ausgezeichneter Visualisierung zum Debugging.
  • Numpy: Matrixmultiplikation von 4x4 homogenen Transformationen ist nur T15.

Weitere Roboterressourcen und Tutorials finden Sie unter RCSV-Ressourcen.