Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Automatisierungssteuerung System

Euler-Winkel meistern für präzise 6-Achs-Robotersteuerung

Wie wird die Orientierung im Raum mit Euler-Winkeln dargestellt?

Wenn Sie einen 6-Achs-Roboterarm einsetzen – wie den Meca500 von Mecademic, der in diesem Tutorial als Beispiel dient –, möchten Sie vermutlich dessen Werkzeug (Endeffektor) in verschiedenen Orientierungen positionieren. Anders ausgedrückt: Sie müssen Ihren Roboter so programmieren können, dass er den Endeffektor sowohl an eine gewünschte Position als auch in eine gewünschte Orientierung bringt (also in eine gewünschte Pose). Natürlich können Sie den Endeffektor per Jogging oder Handführung approximativ in die Zielpose bringen, doch diese sogenannte Online-Programmierung ist mühsam und sehr ungenau. Deutlich effizienter ist es, die gewünschte Pose offline zu berechnen und zu definieren. Zudem benötigen Sie zur Definition des Werkzeug-Bezugssystems, das mit Ihrem Endeffektor verbunden ist (wie im gezeigten Bild), die Pose dieses Werkzeug-Bezugssystems relativ zum Flansch-Bezugssystems.

Im 3D-Raum benötigen Sie mindestens sechs Parameter, um eine Pose zu definieren. Die Position des Roboter-Endeffektors – genauer gesagt des TCP (Tool Center Point) – wird typischerweise durch die x-, y- und z-Koordinaten des Ursprungs des Werkzeug-Bezugssystems bezüglich des Welt-Bezugssystems angegeben. Aber wie definiert man dann die Orientierung im Raum?

Die Darstellung der Orientierung im Raum ist ein komplexes Thema. Der eulersche Drehsatz besagt, dass jede Verschiebung eines starren Körpers im (3D-)Raum, bei der ein Punkt des Körpers fest bleibt, äquivalent zu einer einzelnen Drehung um eine Achse ist, die durch diesen festen Punkt verläuft. Eine solche Drehung lässt sich durch drei unabhängige Parameter beschreiben: zwei für die Achse und einen für den Drehwinkel. Die Orientierung im Raum kann jedoch auf verschiedene Weisen dargestellt werden, jede mit eigenen Vor- und Nachteilen. Einige dieser Darstellungen verwenden mehr als die minimal notwendigen drei Parameter.

Die gängigste Methode zur Transformation von Positionskoordinaten von einem kartesischen (3D-)Bezugssystem F in ein anderes F' ist die Rotationsmatrix. Diese 3×3-Matrix kann daher die Orientierung des Bezugssystems F' bezüglich F repräsentieren. Diese Darstellung ist zwar oft notwendig – wie wir später sehen werden –, aber keine kompakte und intuitive Art, die Orientierung zu definieren.
Eine weitaus kompaktere Darstellungsform ist der Quaternion. Er besteht aus einem normierten Vektor aus vier Skalaren. Quaternionen werden in Robotersteuerungen häufig verwendet, da sie nicht nur kompakter als Rotationsmatrizen sind, sondern auch weniger anfällig für Approximationsfehler. Zudem ändern sich die Elemente des Quaternions bei einer Interpolation zwischen zwei Orientierungen kontinuierlich, was die bei dreidimensionalen Parameterisierungen wie Euler-Winkeln inhärenten Diskontinuitäten vermeidet. Dennoch werden Quaternionen selten als Kommunikationsmittel zwischen Anwender und Robotersteuerung genutzt, weil sie unintuitiv sind.

Detaillierte Definition der Euler-Winkel

Bei Weitem die häufigste Methode, um eine Orientierung im Raum einem Anwender mitzuteilen oder ihm die Definition einer Orientierung zu ermöglichen – sei es in einer CAD-Software oder in einer Robotersteuerung –, ist die Verwendung von Euler-Winkeln. Da der Begriff „Euler-Winkel“ oft missbräuchlich verwendet wird, haben wir dieses interaktive Tutorial erstellt.

Euler-Winkel sind eine Menge – genauer: eine Folge – von drei Winkeln, die beispielsweise mit α, β und γ bezeichnet werden. (Oft werden Euler-Winkel als Roll, Pitch und Yaw bezeichnet.) Euler-Winkel sind wie folgt definiert: Betrachten Sie zwei rechtshändige kartesische 3D-Bezugssysteme, von denen eines willkürlich als festes System und das andere als mobiles System bezeichnet wird. Die beiden Systeme fallen zunächst zusammen. Um die Orientierung eines dritten Systems zu definieren (alle drei Systeme haben denselben Ursprung), wird das mobile System in der unten gezeigten Reihenfolge so gedreht, dass es mit dem dritten System zusammenfällt:

  1. um die x-, y- oder z-Achse des festen Systems oder die x'-, y'- oder z'-Achse des mobilen Systems, um α Grad,
  2. dann um die x-, y- oder z-Achse des festen Systems oder die x'-, y'- oder z'-Achse des mobilen Systems, um β Grad,
  3. und schließlich um die x-, y- oder z-Achse des festen Systems oder die x'-, y'- oder z'-Achse des mobilen Systems, um γ Grad.

Die Reihenfolge der drei Rotationen ist entscheidend. Damit ergeben sich insgesamt 216 (6³) mögliche Sequenzen: x→y→z, y→y→z, z→y→z, x'→y→z, y'→y→z, z'→y→z usw. Eine Sequenz, bei der zwei aufeinanderfolgende Rotationen um dieselbe Achse erfolgen (z. B. y→y→z), kann jedoch keine allgemeine Orientierung beschreiben. Zudem fallen vor der ersten Rotation x mit x', y mit y' und z mit z' zusammen. Folglich existieren von allen 216 Kombinationen nur zwölf eindeutige, sinnvolle geordnete Rotationsfolgen – also zwölf Euler-Winkel-Konventionen: XYX, XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, ZYZ.
Jede dieser zwölf Kombinationen ist dabei äquivalent zu drei weiteren Sequenzen. Jede Euler-Winkel-Konvention lässt sich also auf vier verschiedene Weisen beschreiben. Beispielsweise ist die ZYX-Konvention äquivalent zu den Sequenzen z→y→x, x'→y'→z', y→z'→x und y→x→z'. Glücklicherweise beschreibt niemand Euler-Winkel mit Sequenzen, bei denen einige Rotationen um Achsen des mobilen und andere um Achsen des festen Systems erfolgen (z. B. y→z'→x und y→x→z').
Somit werden die zwölf verschiedenen Euler-Winkel-Konventionen typischerweise auf zwei Weisen beschrieben: entweder als Rotationsfolge um die Achsen des festen Systems oder als Rotationsfolge um die Achsen des mobilen Systems. Es kann daher praktischen sein, von „festen“ und „mobilen“ Konventionen zu sprechen, obwohl sie äquivalent sind. Beispielsweise wird die feste XYZ-Konvention durch die Folge x→y→z beschrieben, während die mobile ZYX-Konvention durch z'→y'→x' beschrieben wird – beide sind aber äquivalent, wie wir später sehen werden.
In der Robotik nutzen FANUC und KUKA die feste XYZ-Konvention, ABB die mobile ZYX-Konvention. Kawasaki, Omron Adept Technologies und Stäubli verwenden die mobile ZYZ-Konvention. In CATIA und SolidWorks wird ebenfalls die mobile ZYZ-Konvention verwendet.

Bei Mecademic verwenden wir die mobile XYZ-Konvention und beschreiben Euler-Winkel daher als Folge x'→y'→z'. Warum diese Abweichung? Der Grund: Wir boten früher einen mechanischen Greifer für rotationssymmetrische Werkstücke an (siehe Video), der vom Motor von Achse 6 angetrieben wurde. Ein 6-Achs-Roboter mit einem solchen Greifer kann nur zwei Drehfreiheitsgrade steuern – genauer: die Richtung der Achse 6, also die Symmetrieachse des Werkstücks. In der gewählten Euler-Winkel-Konvention definieren die Winkel α und β diese Richtung, während Winkel γ ignoriert wird, da er einer parasitären, nicht steuerbaren Rotation entspricht.
Unser untenstehendes Applet hilft Ihnen, Euler-Winkel zu verstehen. Sie können eine der zwölf möglichen Konventionen auswählen, indem Sie auf die x-, y- und z-Kästchen der ersten, zweiten und dritten Rotation klicken. (Die voreingestellte Folge entspricht der von Mecademic genutzten.) Um zwischen Rotationen um Achsen des festen bzw. mobilen Systems zu wechseln, doppelklicken Sie auf eines der neun Kästchen. Die Achsen des festen Systems sind grau, die des mobilen Systems schwarz gezeichnet. x und x' sind rot, y und y' grün, z und z' blau. Bewegen Sie die Maus entlang eines der drei blauen horizontalen Pfeile, um den entsprechenden Euler-Winkel zu ändern. Alternativ können Sie den Winkelwert (in Grad) direkt in das Textfeld unter dem Pfeil eingeben. Ziehen Sie die Maus über das Bezugssystem, um den Blickwinkel zu ändern.


α : β : γ :
R = Rx(0°) Ry(0°) Rz(0°) =
1.0000.0000.000
0.0001.0000.000
0.0000.0001.000

Euler-Winkel über Rotationsmatrizen berechnen

Mit dem obigen Applet sehen Sie die Orientierung des mobilen Systems bezüglich des festen Systems für eine gegebene Menge an Euler-Winkeln im rechten Teilbild. In der Praxis ist die Situation jedoch meist umgekehrt: Sie haben zwei Bezugssysteme und möchten die Euler-Winkel finden, die die Orientierung des einen Systems bezüglich des anderen beschreiben.
Bei Orientierungen, bei denen mindestens zwei Achsen parallel sind, könnten Sie versuchen, die Euler-Winkel durch Ausprobieren zu erraten. Sehen Sie sich noch einmal das Bild am Anfang dieses Tutorials an und versuchen Sie, die von Mecademic verwendeten Euler-Winkel zu finden, die die Orientierung des Werkzeug-Bezugssystems des Greifers bezüglich des Flansch-Bezugssystems definieren. Die Antwort lautet α = −90°, β = 0°, γ = −90°. Nicht so einfach zu finden, oder? Um effizienter zu arbeiten, müssen Sie sich daher mit Rotationsmatrizen beschäftigen.
Wie bereits erwähnt, lässt sich jede Orientierung im Raum durch eine 3×3-Rotationsmatrix darstellen. Eine Rotation um α um die x-Achse, um β um die y-Achse und um γ um die z-Achse entsprechen den folgenden drei Basis-Rotationsmatrizen:

Rx(α) =
100
0cos(α)−sin(α)
0sin(α)cos(α)
,
Ry(β) =
cos(β)0sin(β)
010
−sin(β)0cos(β)
,
Rz(γ) =
cos(γ)−sin(γ)0
sin(γ)cos(γ)0
001
.

Wir bezeichnen diese Matrizen als Basis-Rotationsmatrizen. Um das Produkt von Basis-Rotationsmatrizen zu erhalten, das einer Rotationsfolge entspricht, beginnen Sie mit der Basis-Rotationsmatrix der ersten Rotation. Ist die erste Rotation um die x- (bzw. x'-)Achse, schreiben Sie Rx(ψ), wobei ψ der Drehwinkel ist. Für jede weitere Rotation multiplizieren Sie das aktuelle Ergebnis von rechts (post-multiplizieren) mit der nächsten Rotationsmatrix, wenn die Rotation um eine Achse des mobilen Bezugssystems erfolgt, oder von links (pre-multiplizieren), wenn sie um eine Achse des festen Bezugssystems erfolgt. Nutzen Sie unser Applet, um das resultierende Produkt zu sehen. Die Folge x'→y'→z' entspricht beispielsweise dem Produkt R = Rx(α)Ry(β)Rz(γ). Die Rotationsmatrix für die von Mecademic verwendeten Euler-Winkel lautet somit:

R(α, β, γ) =
cos(β)cos(γ)−cos(β)sin(γ)sin(β)
cos(α)sin(γ) + sin(α)sin(β)cos(γ)cos(α)cos(γ) − sin(α)sin(β)sin(γ)−sin(α)cos(β)
sin(α)sin(γ) − cos(α)sin(β)cos(γ)sin(α)cos(γ) + cos(α)sin(β)sin(γ)cos(α)cos(β)
.

Für eine gegebene Orientierung müssen Sie also zwei Schritte ausführen: Erstens die Rotationsmatrix ermitteln, die Ihrer Orientierung entspricht. Zweitens die Euler-Winkel mithilfe weniger einfacher Gleichungen extrahieren. Zunächst zeigen wir Ihnen zwei Wege, Ihre Rotationsmatrix zu finden.
Betrachten Sie das unten gezeigte Beispiel, in dem wir die Rotationsmatrix suchen, die die Orientierung des Systems F' bezüglich F darstellt. (Erinnerung: x-Achse rot, y-Achse grün, z-Achse blau.)

Hier ist leicht zu erkennen: Wenn wir ein drittes Bezugssystem mit F ausrichten (es fungiert als mobiles System), es dann um seine z'-Achse um θ Grad und anschließend um seine y'-Achse um φ Grad drehen, erhalten wir die Orientierung von F. Die gesuchte Rotationsmatrix ist also:

Rdesired = Rz(θ)Ry(φ) =
cos(θ)cos(φ)−sin(θ)cos(θ)sin(φ)
sin(θ)cos(φ)cos(θ)sin(θ)sin(φ)
−sin(φ)0cos(φ)
.

Alternativ lässt sich die obige Rotationsmatrix direkt bestimmen: Ihre erste, zweite und dritte Spalte repräsentieren die Koordinaten der Einheitsvektoren entlang der x-, y- und z-Achse des Systems F' bezüglich F.
Nun, da Sie die Rotationsmatrix für Ihre gewünschte Orientierung haben, müssen Sie lediglich das System von neun skalaren trigonometrischen Gleichungen Rdesired = R(α, β, γ) nach α, β und γ auflösen. Glücklicherweise gibt es eine generische Lösung; wir geben Ihnen einfach die Gleichungen an die Hand.
Sei die gewünschte Orientierung eines Systems F' bezüglich F durch folgende Rotationsmatrix gegeben:

Rdesired =
r1,1r1,2r1,3
r2,1r2,2r2,3
r3,1r3,2r3,3
.

Die Euler-Winkel (in Grad) gemäß der von Mecademic verwendeten mobilen XYZ-Konvention ergeben sich dann nach zwei Fällen:
Fall 1: r1,3 ≠ ±1 (d. h., die z'-Achse von F' ist nicht parallel zur x-Achse von F).

β = asin(r1,3), γ = atan2(−r1,2, r1,1), α = atan2(−r2,3, r3,3).

Fall 2: r1,3 = ±1 (d. h., die z'-Achse von F' ist parallel zur x-Achse von F).

β = r1,3·90°, γ = atan2(r2,1, r2,2), α = 0.

Im allgemeinen Fall 1 gibt es tatsächlich zwei Lösungsmengen, bei denen alle Winkel im halb-offenen Intervall (−180°, 180°] liegen. Da die Berechnung beider Mengen überflüssig ist, wird nur die erste präsentiert, bei der −90° < β < 90° gilt. Beachten Sie, dass wir die Funktion atan2(y, x) verwenden. In manchen Programmiersprachen, wissenschaftlichen Taschenrechnern und den meisten Tabellenkalkulationen sind die Argumente dieser Funktion vertauscht.
Schließlich entspricht Fall 2 einer sogenannten Darstellungssingularität. Diese Singularität tritt in jeder Drei-Parameter-Darstellung der Orientierung im 3D-Raum auf (nicht nur bei Mecademics Wahl der Euler-Winkel). Sie ist analog zum Problem, Punkte auf einer Kugel nur mit zwei Parametern darzustellen. Beispielsweise ist die geografische Länge an den Polen der Erde nicht definiert. Anders ausgedrückt: Diese Singularität hat nichts mit Mechanismus-Singularitäten (z. B. Gimbal Lock) zu tun, die tatsächliche physikalische Probleme darstellen (z. B. Verlust eines Freiheitsgrads).

Übung

Betrachten Sie folgende reale Situation, die uns widerfuhr: Wir wollten ein FISNAR-Dosierventil am Endeffektor unseres Meca500-Roboterarms befestigen. Der Ingenieur, der den Adapter entwarf und fertigte, kümmerte sich nicht um Euler-Winkel, sondern nur um Zerspanbarkeit und Erreichbarkeit. Sein Design enthielt im Wesentlichen zwei Rotationen um 45°. Erstens nutzte er zwei diametral gegenüberliegende Gewindelöcher am Roboteflansch zur Adapterbefestigung, was die erste 45°-Drehung verursachte. Zweitens betrug der Winkel zwischen der Flansch-Ebenenschnittstelle und der Dosierventilachse 45°.

Die obige Abbildung zeigt die tatsächliche Montage (links) und das Werkzeug-Bezugssystem (rechts), das definiert werden musste. Bei achsensymmetrischen Werkzeugen ist es gängige Praxis, die Werkzeug-z-Achse mit der Werkzeugachse auszurichten. Dies ist besonders nützlich bei der mobilen XYZ-Konvention, da die redundante Rotation um das achsensymmetrische Werkzeug dem dritten Euler-Winkel γ entspricht. Die ersten beiden Euler-Winkel definieren somit die Werkzeugachse, während der dritte zur Wahl der optimalen Roboterkonfiguration (d. h. fern von Singularitäten) genutzt werden kann.

Zurück zu unserem Beispiel: Wir zeigen nun, dass es unmöglich ist, die Euler-Winkel gemäß der mobilen XYZ-Konvention durch Ausprobieren zu finden. Für diese Wahl des Werkzeug-Bezugssystems lässt sich die finale Orientierung als Folge zweier Rotationen darstellen: R = Rz(45°)Ry(45°). Daraus lassen sich mit den zuvor beschriebenen Gleichungen die Euler-Winkel gemäß der mobilen XYZ-Konvention extrahieren: α = −35,264°, β = 30,000°, γ = 54,735°. Sind Sie nun überzeugt, dass Sie Euler-Winkel für solche Situationen beherrschen müssen?

Darstellungssingularitäten und Orientierungsfehler

Bei der mobilen XYZ-Konvention gibt es, wenn die z'-Achse von F' parallel zur x-Achse von F ist, unendlich viele Paare von α und γ, die dieselbe Orientierung definieren. Da Sie nur eines benötigen, setzen wir α willkürlich auf null. Konkret: Wenn β = 90°, entspricht jede Kombination von α und γ mit α + γ = φ (φ beliebig) derselben Orientierung und wird vom Mecademic-Controller als {0, 90°, φ} ausgegeben. Entsprechend gilt für β = −90°: Jede Kombination mit α − γ = φ wird als {0, −90°, −φ} ausgegeben. Wenn die z'-Achse von F' jedoch fast parallel zur x-Achse von F ist (d. h., β nahe ±90°), reagieren die Euler-Winkel extrem empfindlich auf numerische Fehler. In solchen Fällen sollten Sie beim Definieren der Orientierung über Euler-Winkel so viele Nachkommastellen wie möglich angeben.
Betrachten Sie folgende Situation, die mehrere Meca500-Nutzer beunruhigte: Sie setzen die Orientierung des Werkzeug-Bezugssystems bezüglich des Welt-Bezugssystems auf {0°, 90°, 0°} – eine Darstellungssingularität. Dann bewegen Sie den Endeffektor bei beibehaltener Orientierung an mehrere Positionen. An manchen Positionen erkennt der Controller aufgrund numerischen Rauschens die Bedingung r1,3 = ±1 (Fall 2) nicht und berechnet die Euler-Winkel so, als läge keine Singularität vor. Der Controller gibt dann etwa {41,345°, 90,001°, −41,345°} zurück – was völlig falsch und weit von {0°, 90°, 0°} entfernt scheint. Das ist es aber nicht.
Im Gegensatz zu Positionsfehlern, die als √(Δx² + Δy² + Δz²) gemessen werden, hängen Orientierungsfehler nicht direkt mit den Variationen der Euler-Winkel zusammen – besonders nahe an Darstellungssingularitäten. Um diese sogenannte nicht-euklidische Natur der Euler-Winkel zu verstehen, betrachten Sie die Kugelkoordinaten zur Ortsbestimmung auf der Erde. Am Nordpol ist der Breitengrad 90° (Nord), aber was ist der Längengrad? Er ist am Nordpol nicht definiert oder kann jeden Wert annehmen. Bewegen Sie sich nun nur 1 mm vom NordPol in Richtung Greenwich. Der Breitengrad wird 89,99999999°, der Längengrad aber 0°. Kehren Sie zum Nordpol zurück und bewegen sich 1 mm Richtung Tokio. Der neue Längengrad beträgt ca. 140°. Der Längengrad-Fehler zwischen den beiden Positionen beträgt 140°! Der tatsächliche Winkelabstand beträgt jedoch nur ca. 0,00000002°.
Die beschriebene Situation tritt in allen anderen Euler-Winkel-Konventionen analog auf. Je nach Konvention tritt die Darstellungssingularität auf, wenn eine bestimmte Achse von F' parallel zu einer bestimmten Achse von F ist. In einer solchen Singularität werden die erste und dritte Rotation abhängig voneinander.
Fazit: Wenn Sie Euler-Winkel (bzw. die Konvention Ihrer Roboterprogrammierung) nicht beherrschen – oder keine anspruchsvolle Offline-Programmiersoftware nutzen –, werden Sie kaum mehr als einfache Pick-and-Place-Operationen programmieren können. Da Robotik nicht einfach ist, tun wir unser Bestes, um Ihnen die Grundlagen zu vermitteln.

Suchen Sie Industrielle Automatisierungsteile? Wir helfen gerne!
TEILE KAUFEN

Automatisierungssteuerung System

  1. Sepro erweitert Sechs-Achsen-Roboterlinie mit neuen kompakten Modellen für Spritzguss
  2. NPE 2018: Roboter, die schneller, intelligenter und kollaborativer sind
  3. Star Automations Pinsel-führender Roboter glänzt auf NPE 2018
  4. Effizienzmaximierung: Multi-Roboter-Spritzgießzelle fertigt kompletten Shaker-Becher in einem Zyklus
  5. igus Inc. stellt kostengünstigen High-Speed-Montageroboter mit ±0,5 mm Präzision vor
  6. Schunk erweitert US-Roboter-Greifer-Montage in Morrisville, NC, steigert lokale Produktion & Anpassung
  7. Automatisierung im Spritzgießen: Experteneinblicke & Trends
  8. Wittmann Battenfeld stellt WX153 vor: Fortgeschrittene Roboterlinie für Hochkraft-Spritzgießautomatisierung
  9. Universal Robots ernennt Kim Povlsen zum Präsidenten zur Stärkung dänischer Robotik-Führerschaft
  10. GP4: Yaskawas kompakter 6‑Achsen‑Roboter für ultraschnelle, präzise Automation