Rotation in kartesischen Koordinaten Rotation um die x-, y
Transcription
Rotation in kartesischen Koordinaten Rotation um die x-, y
Rotation in kartesischen Koordinaten Generell gibt es drei Freiheitsgrade für die Orientierung im Raum und es werden meist zwei Verfahren zur Beschreibung der Orientierung angewandt: • Euler-Winkel (Mechanik, …) • Roll, Pitch, Yaw (Rollen, Gieren, Nicken) (Schifffahrt, Luftfahrt) Ausgangssituation: Mit R = Rotationsmatrix oder Orientierungsmatrix (ui, vi, wi = x-y-z - Koordinaten der Einheitsvektoren): z ux R = uy u z w u v vx vy vz wx wy w z (allgemein) y 1 0 0 R = 0 1 0 0 0 1 x Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 (Ausgangssituation / Skizze) VLRob.ppt Folie 73 Robotertechnik Nur für Lehrzwecke Rotation um die x-, y- und z-Achse Rotation um x: z α w u Rotation um y: Rotation um z: z v z w w α y β u v u y x γ v y x x cos γ − sin γ 0 0 0 1 cos β 0 sin β 1 0 R( z,γ ) = sin γ cos γ 0 R( x,α ) = 0 cos α − sin α R( y,β) = 0 0 0 sin α cos α − sin β 0 cos β 0 1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 74 Nur für Lehrzwecke Kombinationen / Serien von Rotationen Rotationsmatrizen können miteinander multipliziert werden Ergebnis ist eine Serie von Rotationen um die Achsen des Koordinatensystems (Frames) Wichtig ist die Reihenfolge der Rotationen! R( z,90°) R( x,30°) z z Ausgangssituation w α w v u v α=30° z u y γ = 90° y x w u x v R( x,30°) R( z,90°) y z z w x w v v u u γ =90° y y x x Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 α =30° Robotertechnik VLRob.ppt Folie 75 Nur für Lehrzwecke Homogene Koordinaten x Es sei p = y ein Vektor im 3D-Koordinatensystem z dann sind die homogenen Koordinaten des Punktes (Vektors) P h • x h • y pH = h• z h mit h ≠ 0 Der Spaltenvektor h ist der Skalierungsvektor. In der Kinematik ist h = 1 Damit kann für die Beschreibung der Rotation und Translation eine so genannte homogene 4x4 Matrize aufgestellt werden: mit R T R = 3 x 3 Matrix: Rotation M= 000 1 T = 3 x 1 Vektor: Translation 1 = Skalierungsfaktor für Kinematik Vorteil: Rotation und Translation werden in einer Matrix zusammengefasst Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 76 Nur für Lehrzwecke Homogene Koordinaten in der Robotertechnik P p1P p2P 2 1 P p1P d1 p0P d2 1 Orte im Raum können vollständig beschrieben werden durch: d, p = Positionsvektor R = Rotationsmatrix 0 0 0 0 p0P = d1+ p1P =0 d1+0 R1 1p1P Hinweis: 0R1 = Rotationsmatrix für Frame 1 bezogen 0 auf Frame 0 0T 1 d1 In Vektorschreibweise: 0 In homogenen Koordinaten: 0 R 0 d 1p 0 1 1P p0P = 1 0 1 1 0r 0P = p0P p0P =0 d1+0 d2 +0 p2P =0 d1+0 R1 1d2 +0 R11R 2 2 p2P In homogenen Koordinaten: 1r 1P 0 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 r0P = 0 T1 1T2 2 r2P VLRob.ppt Folie 77 Robotertechnik Nur für Lehrzwecke Homogene Transformationen Trans(x,y,z) = Verschiebung eines Punktes um x,y,z entlang der jeweiligen Achse: 1 0 Trans(x, y, z ) = 0 0 cos β 0 R(y,β ) = − sin β 0 0 0 x 1 0 y 0 1 z 0 0 1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 sin β 0 1 0 0 0 cos β 0 0 0 1 0 Rotation um die z-Achse: Rotation um die x-Achse: 0 0 1 0 cos α − sin α R(x,α ) = 0 sin α cos α 0 0 0 Rotation um die y-Achse: 0 0 0 1 cos γ − sin γ sin γ cos γ R(z,γ ) = 0 0 0 0 Robotertechnik 0 0 0 0 1 0 0 1 VLRob.ppt Folie 78 Nur für Lehrzwecke Beschreibung nach Denavit - Hartenberg Begründung: • Bisher wurden die Koordinatensysteme intuitiv gewählt • Es ist aber zweckmäßig, nach einem einheitlichen Schema beziehungsweise Verfahren vorzugehen • Vorteil: Verschiedene Anwender kommen zu einer gleichen oder zumindest vergleichbaren Beschreibung der Aufgabe Bei einem Roboter bestehen im Normalfall folgende Möglichkeiten für zwei so genannte kinematische Paare: Gelenk i+1 Glied i Gelenk i Prinzip: Form und Masse der Glieder werden abstrahiert • Es geht darum, von einem i-ten Koordinatensystem zu einem (i+1)-ten Koordinatensystem zu kommen • Man beschränkt die Freiheitsgrade der Koordinatensysteme: - eine Drehachse - eine Linearachse (oft prismatische Achse genannt) Denavit, J., Hartenberg, R. S.: A kinematic notation for lower pair mechanisms based on Matrices. Journal of Applied Mechanics, vol. 77, pp. 215–221, June 1955. Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Gelenk i Gelenk i+1 Drehachse Drehachse Drehachse Linearachse Linearachse Drehachse Linearachse Linearachse Robotertechnik VLRob.ppt Folie 79 Nur für Lehrzwecke Bezeichnungen nach Denavit-Hartenberg Die Gelenkachsen von Gelenk (i) und Gelenk (i+1) fallen mit den z-Achsen der Koordinatensysteme (i-1) und (i) zusammen. Beispiel für Drehgelenke: qi Gelenk i+1 qi+1 Glied i Gelenk i yi zi-1 ai xi Ki αi zi yi-1 ai-1 di Ki-1 qi xi-1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Man erkennt: • ai und αi sind durch die Gelenkkonstruktionen festgelegt. • ai ist die gemeinsame Normale der Drehachsen (z-Achsen), also der kürzeste Abstand der Achsen. • ai ist ein Abstand, und daher > 0 • αi ist der Winkel, um den man die erste Achse zi drehen muss, damit sie parallel zur zweiten Achse zi+1 wird. • αi wird in der Ebene senkrecht zur gemeinsamen Normalen ai gemessen. • Schaut man von der Pfeilspitze von xi auf diese Ebene, erkennt man die positive Richtung von αi. • xi läuft kolinear zu ai, und seine Richtung geht von Ki-1 weg nach Ki. • Die y-Achsen ergänzen die Koordinatensysteme zum Rechtssystem. Robotertechnik VLRob.ppt Folie 80 Nur für Lehrzwecke Beschreibung der Drehungen und der Translationen - 1 yi zi-1 ai xi Ki αi zi yi-1 ai-1 di Ki-1 qi xi-1 1. Drehung um qi cos qi sin qi 0 0 Es sind drei Schritte abzuarbeiten: 1. Drehung um die Achse zi-1 um den Winkel qi 2. Translation Ki-1 Ki 3. Drehung um die Achse xi um den Winkel αi 3. Drehung um αi 2. Translation − sin qi 0 0 1 0 cos qi 0 0 0 1 , 0 0 0 1 0 0 0 1 0 0 0 ai 0 0 1 di 0 1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 und 0 1 0 cos αi 0 sin α i 0 0 Robotertechnik 0 0 − sin αi 0 cos αi 0 0 1 VLRob.ppt Folie 81 Nur für Lehrzwecke Beschreibung der Drehungen und der Translationen - 2 Die Koordinatentransformation von (i-1) zu (i) ist dann das Produkt der Matrizen: cos qi sin qi i−1 Ti = 0 0 − sin qi 0 0 1 0 cos qi 0 0 0 1 • 0 1 0 0 0 0 0 1 0 0 0 ai 1 0 0 0 0 cos αi • 1 di 0 sin αi 0 1 0 0 cos qi sin qi = 0 0 0 − sin qi 0 0 1 cos qi 0 0 0 cos αi • 0 1 0 0 sin αi 0 0 1 0 0 cos qi sin qi = 0 0 − sin qi cos αi cos qi cos αi sin αi 0 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 0 0 − sin αi 0 cos αi 0 0 1 0 ai − sin αi 0 cos αi di 0 1 sin qi sin αi ai cos qi − cos qi sin αi ai sin qi cos αi di 0 1 Robotertechnik VLRob.ppt Folie 82 Nur für Lehrzwecke Beschreibung der Drehungen und der Translationen - 3 Anmerkungen: • Die Koordinatentransformation hängt von vier Parametern ab: ai, αi, di, qi • Diese Parameter werden auch „link parameter“ genannt • ai und αi sind durch die maschinenbauliche Konstruktion des (i)-ten Gliedes gegeben • qi und di sind abhängig von der Verbindung der Glieder (i-1) und (i) über das Gelenk (i) Fallunterscheidungen: (Deutung von qi) Gelenk (i) ist eine Drehachse: di ist konstruktiv vorgegeben und konstant qi ist eine Gelenkkoordinate, d.h. im Beispiel der Winkel zwischen den Gliedern (i-1) und (i) Gelenk ist eine Linearachse (Translation): di ist variabel und wird dann als qi bezeichnet Der Winkel zwischen den Gliedern ist konstruktiv festgelegt, also konstant. Er wird dann ϑi genannt. Damit folgt die Schreibweise der vorherigen Koordinatentransformation für die Linearachse: sin ϑi sin αi ai cos ϑi cos ϑi − sin ϑi cos αi sin ϑi i−1 Ti = 0 0 cos ϑi cos αi − cos ϑi sin αi sin αi 0 cos αi 0 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 ai sin ϑi qi 1 VLRob.ppt Folie 83 Robotertechnik Nur für Lehrzwecke Verallgemeinerung der Beschreibung Die zuvor im Beispiel aufgestellten Koordinatentransformationen für die Drehungen und die Translationen kann man auch zusammenfassen (es handelt sich dabei nur um eine andere Sichtweise!): cos ϑi sin ϑi i−1 Ti = 0 0 − sin ϑi cos αi cos ϑi cos αi sin αi 0 sin ϑi sin αi ai cos ϑi − cos ϑi sin αi ai sin ϑi cos αi di 0 1 Und nun setzt man als Variable qi Für die Drehachse: ϑi = qi Für die Linearachse: di = qi Gelenk i Gelenk i+1 Damit lassen sich dann alle vier möglichen beziehungsweise zulässigen Fälle betrachten: Drehachse Drehachse Drehachse Linearachse Linearachse Drehachse Linearachse Linearachse Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 84 Nur für Lehrzwecke Denavit–Hartenberg Parameter am Drehgelenk i−1 Ti cos ϑi sin ϑ i = 0 0 cos ϑi cos αi sin αi sin ϑi sin αi − cos ϑi sin αi cos αi ai cos ϑi 0 0 1 − sin ϑi cos αi ai sin ϑi di Glied i+1 Glied i Gelenk i+1 Glied i-1 αi zi yi Gelenk i xi Ki ai Gelenk i-1 zi-1 ai-1 yi-1 di Ki-1 ϑi Der Winkel ϑi ist variabel di, ai, αi sind konstant xi-1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 VLRob.ppt Folie 85 Robotertechnik Nur für Lehrzwecke Denavit-Hartenberg Parameter am Translationsgelenk i−1 Ti cos ϑi sin ϑ i = 0 0 cos ϑi cos αi sin αi sin ϑi sin αi − cos ϑi sin αi cos αi ai cos ϑi 0 0 1 − sin ϑi cos αi ai sin ϑi di Glied i Glied i+1 Gelenk i+1 Glied i-1 yi αi zi Gelenk i ai Gelenk i-1 zi-1 ai-1 Ki yi-1 di Ki-1 ϑi Der Abstand di ist variabel xi-1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 xi ϑi, ai, αi sind konstant Robotertechnik VLRob.ppt Folie 86 Nur für Lehrzwecke Festlegen der Koordinatensysteme - 1 Die vorherige Koordinatentransformation kann unter folgenden Voraussetzungen auf Industrieroboter angewandt werden: Glied 0 beziehungsweise Koordinatensystem 0: • Der Sockel (Fuß) des Industrieroboters ist Glied 0 und ist mit dem (0)-ten Koordinatensystem fest verbunden und heißt: Bezugssystem (reference frame) oder Weltkoordinatensystem (da ist der Roboter „festgeschraubt“) • Der Ursprung von Koordinatensystem 0 wird auf die erste Gelenkachse gelegt. • z0 zeigt dann entlang der Gelenkachse • x0 und y0 sind dann frei wählbar, bilden aber ein Rechtssystem Koordinatensysteme Ki mit i = 1, 2, … n-1: • Der Ursprung von Ki liegt auf der Gelenkachse i+1 • Die Richtung von Zi geht entlang der Gelenkachse i+1; das Vorzeichen ist frei wählbar • … siehe nächste Folie! Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 87 Nur für Lehrzwecke Festlegen der Koordinatensysteme - 2 Es sind drei Fälle zu unterscheiden: • Parallele Gelenkachsen • xi läuft kolinear zu ai und zeigt von Ki-1 nach Ki • Sich schneidende Achsen • xi läuft parallel zur Richtung des Kreuzproduktes zi-1 X zi; die Richtung ist frei wählbar • ai ist der Abstand der beiden Systeme • Windschiefe Achsen • Die Achsen schneiden sich nicht und sind auch nicht parallel. Vorgehen wie bei parallelen Achsen. Der Fall ist bei realen Robotern eher selten! Festlegen des letzten Koordinatensystems Kn • Möglichst TCP als Ursprung wählen (oder fiktiven TCP) • zn geht in Richtung von zn-1 und durch TCP • Richtung von xn: • zn-1 und zn liegen auf einer Linie: xn wie xn-1 legen • Sonst: xn steht senkrecht auf zn-1 und zeigt von zn-1 in Richtung zn Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 88 Nur für Lehrzwecke Gesamttransformation, Position und Orientierung Jede der aufzustellenden Matrizen enthält dann genau eine der Gelenkkordinaten qi Die Multiplikation aller Matrizen führt dann zu T = 0 Tn = 0 T1 • 1T2 • 2 T3 • ... n−1 Tn Wobei, allgemein ausgedrückt, T so aussieht: a a13 a14 a 11 12 a21 a22 a23 a24 T= a a a33 a34 31 32 0 0 0 1 Für die Werkzeugspitze (Tooltip) im n-ten Koordinatensystem wird Die Position: X Tooltip a14 = a 24 a 34 Die Orientierung: a11 a12 a13 a21 a22 a23 a 31 a32 a33 Die Winkel nach Vukobratovic: (Drehung um z ) ψ = atan2(a21, a11) ϑ = atan2( −a31, (a11 cos ψ + a21 sin ψ )) ϕ = atan2(a32, a33 ) (Drehung um x ) Vukobratovic, M.: "Introduction to Robotics", Springer, Berlin Heidelberg New York 1989 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 89 Nur für Lehrzwecke Zusammenfassung Denavit-Hartenberg - Verfahren Folgende Schritte sind zur Lösung des direkten Problems erforderlich: 1. Roboter skizzieren und in günstige Grundstellung ausrichten 2. Bestimmung der Koordinatensysteme nach Denavit-Hartenberg 3. Ablesen der DH-Parameter (ai, ai, di, ϑi) und eintragen in eine Tabelle 4. Bestimmung der Matrizen i-1Ti, die jeweils von den gegebenen Gelenkkoordinaten abhängen 5. Berechnung von T beziehungsweise 0Tn durch Matrizenmultiplikation 6. Berechnung der externen Koordinaten (Tooltip) x, y, z (Position) 7. Berechnung der Orientierung, d.h. der Winkel Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 90 Nur für Lehrzwecke Übungsbeispiel: DH für den planaren SCARA Bestimmung der Koordinatensysteme nach DH: P β L1 L2 α Zur Erinnerung: • Der Sockel (Festpunkt) des Roboters ist Glied 0 • In Glied 0 ist das Weltkoordinatensystem Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 VLRob.ppt Folie 91 Robotertechnik Nur für Lehrzwecke Übungsbeispiel: DH für den planaren SCARA - Glied 1 Gewählt für SCARA: d1 = 0 (Fußpunkt) α1 = 0 (z0, z1 laufen parallel, keine Achsverdrehung) z1 y1 z0 a1 = L1 x1 1 Glied 1 y0 0 ϑ1 = α x0 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 cos ϑi sin ϑi i−1 Ti = 0 0 Die DH-Koordinatentransformation ist dann: − sin ϑi cos αi cos ϑi cos αi sin αi 0 sin ϑi sin αi − cos ϑi sin αi cos αi 0 ai cos ϑi ai sin ϑi di 1 Einsetzen der Parameter aus der Skizze: cos α − sin α sin α cos α 0 T1 = 0 0 0 0 Robotertechnik 0 L1 cos α 0 L1 sin α 1 0 0 1 VLRob.ppt Folie 92 Nur für Lehrzwecke Übungsbeispiel: DH für den planaren SCARA - Glied 2 Z2 y2 x2 a2 = L2 z1 2 Glied 2 y1 d2 = 0 z0 a1 = L1 x1 1 Glied 1 y0 0 Für SCARA gilt: d2 = 0 (Gelenke in einer Ebene) α2 = 0 (z-Achsen laufen parallel) Einsetzen der obrigen Werte in DH: ϑ2 = β cos β sin β 1 T2 = 0 0 ϑ1 = α − sin β cos β 0 0 L 2 cos β 0 L 2 sin β 1 0 0 1 0 x0 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 93 Nur für Lehrzwecke Übungsbeispiel: DH für SCARA - Gesamttransformation cos α − sin α 0 L1 cos α cos β − sin β 0 L 2 cos β α α α β β β sin cos 0 L sin sin cos 0 L sin 1 2 0 • T2 = 0 T1 1T2 = 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 cos α cos β − sin α sin β − cos α sin β − sin α cos β 0 cos α L 2 cos β − sin α L 2 sin β + L1 sin α sin α cos β + cos α sin β − sin α cos β + cos α cos β 0 sin α L cos β + cos α L sin β + L sin α 2 2 1 = 0 0 1 0 0 0 0 1 Es gilt: sin α cos β + cos α sin β = sin(α + β ) cos α cos β − sin α sin β = cos(α + β ) und man kann schreiben: cos(α + β) − sin(α + β) sin(α + β) cos(α + β) 0 T2 = 0 0 0 0 Orientierung in der Ebene Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 0 L 2 cos(α + β) + L1 cos α 0 L 2 sin(α + β) + L1 sin α 1 0 0 1 Position in der Ebene Robotertechnik VLRob.ppt Folie 94 Nur für Lehrzwecke Übungsbeispiel: DH für den planaren SCARA - Zahlenbeispiel Bei einem SCARA sei: L1 = 4 L2 = 3 α = 30° β = 30° (Es werden glatte, dimensionslose Zahlen angenommen, um den Rechenaufwand gering zu halten!) Damit ist − 0,866 0 3 • 0,5 + 4 • 0,866 = 4.964 0,5 • + • = 0 , 866 0 , 5 0 3 0 , 866 4 0 , 5 4 , 598 0 T2 = 0 0 1 0 0 0 0 1 Die allgemeine Form der Matrix ist: ψ = atan2(a21, a11) a11 a12 a13 a14 Euler-Winkel ϑ = atan2( −a31, (a11 cos ψ + a21 sin ψ )) a21 a22 a23 a24 ϕ = atan2(a32, a33 ) a 0,866 a a33 a34 ) = arctan 1,732 = 60° 31 32 ψ = atan2( 0,866 , 0,5 ) = arctan( 0 , 5 0 0 1 0 ϑ = atan2( 0 , ( 0,5 cos ψ + 0,866 sin ψ )) = atan2( 0, ( 0,433 + 0,433 ) = arctan 0 = 0° ϕ = atan2( 0,1) = arctan 0 = 0° Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 VLRob.ppt Folie 95 Robotertechnik Nur für Lehrzwecke Übung: DH-Verfahren für einen einfachen Roboter z Gelenk 2 (Rotation) d3 Gelenk 3 (Translation) P(xp, yp, zp) y d1 Gelenk 1 (Translation) yp α zp Lösung: cos q2 − sin q2 sin q2 cos q2 0 T3 = 0 0 0 0 0 d3 cos q2 0 d3 sin q2 1 d1 0 1 xp Festpunkt Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 96 Nur für Lehrzwecke Übungsbeispiel: Manutec h5 2 3 L1 y1 z1 z2 x1 L2 y2 z3 y3 x2 x3 T 1 z4 Z y4 4 x4 z0 y0 x0 DH-Parameter für die skizzierte Stellung i ai αi di ϑi 1 0 0 Z 0 2 L1 0 0 W2 3 L2 0 0 W3 4 0 0 -T W4 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 VLRob.ppt Folie 97 Robotertechnik Nur für Lehrzwecke Übungsbeispiel: Bosch SR800 1 L1 2 z1 L2 y1 α2 x1 x2 y2 3 z2 Z H x3 y3 4 z0 y0 x0 Wunschrichtung für Achse 3: Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 i 1 2 3 4 z3 x4 y4 z4 DH-Parameter für die skizzierte Stellung ai di αi ϑi L1 0 H W1 L2 180° 0 W2 0 0 Z 0 0 0 0 W4 Robotertechnik VLRob.ppt Folie 98 Nur für Lehrzwecke Übungsbeispiel: Manutec r 15 - 1 Hauptachsen Handachsen 4 5 Hand: 6 3 2 1 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 VLRob.ppt Folie 99 Robotertechnik Nur für Lehrzwecke Übungsbeispiel: Manutec r 15 - 2 L1 α1 z1 x1 y1 L3 L2 ϑ3 =W3-90° x 3 z2 y2 x2 α3 x4 x5 y4 z3 y3 z4 α4 x6 α5 z6 z5 y5 y6 DH-Parameter für die skizzierte Stellung H z0 y0 ϑ1 x0 i ai αi di ϑi 1 0 -90° H W1 2 L1 0 0 W2 3 0 -90° 0 W3 -90° 4 0 +90° L2 W4 5 0 -90° 0 W5 6 0 0 L3 W6 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 100 Nur für Lehrzwecke Inverses kinematisches Problem Fragestellung: Welche Gelenkstellungen führen den Endeffektor in eine vorgegebene Zielstellung? Direkte Kinematik (Hintransformation) Inverse Kinematik (Rücktransformation) • Die Berechnungen sind häufig sehr komplex Werkzeuge wie Mathematica, Maple V, Matlab werden eingesetzt • Die Lösungen sind häufig nicht eindeutig (vergl. SCARA-Beispiel) • Die Rückwärtsrechnung muss schritt haltend, also in Echtzeit, mit der Bewegung des Roboters erfolgen • Es existiert kein allgemein anwendbares Lösungsverfahren Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 101 Nur für Lehrzwecke Berechnungsmöglichkeiten • Analytische Verfahren • Meist nur für Roboter mit einfacher Gelenkanordnung praktikabel • Oft werden Matrizen verwendet • Roboterspezifische, spezielle (analytische) Verfahren • Gelenkachsen von Robotern liegen oft parallel oder rechtwinklig zueinander Rückrechnung wird wesentlich vereinfacht und ist manchmal einfacher als das Rechnen mit Matrizen • Numerische Verfahren • Die Gelenkparameter werden mit Hilfe eines Näherungsverfahrens berechnet Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 102 Nur für Lehrzwecke Analytisches Verfahren von Paul Vorgehen: 1. Aufstellen der Vorwärtstransformation nach DH 2. Aufstellen der homogenen Matrix für die Zielstellung (Lage) 3. Elementweises Gleichsetzen der Matrizen von Vorwärtstransformation und Zielstellung 4. Aus den entstehenden Gleichungen intuitiv die geeigneten zur Bestimmung der Gelenkvariablen heraussuchen Wenn die Gleichungen nicht ausreichen, kann versucht werden, zusätzliche Gleichungen aus folgenden Beziehungen zu finden: 0 T = 0 T • 1T • 2T • L • n−1T n n 1 2 3 0T n = 1T • 2T • L • n−1T n 3 2 0T 1 0T n = 2T3 • L • n−1Tn 0 T • 1T 2 1 usw Paul, R.: Robot Manipulators: Mathematics Programming and Control. MIT-Press: Cambridge (MA), 1981 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 103 Nur für Lehrzwecke Beispiel: Vereinfachter SCARA mit zwei Drehgelenken Vorwärtstransformation nach DH: cos(q1 + q2 ) − sin(q1 + q2 ) sin(q1 + q2 ) cos(q1 + q2 ) 0 T2 = 0 0 0 0 0 L 2 cos(q1 + q2 ) + L1 cos q1 0 L2 sin(q1 + q2 ) + L1 sin q1 1 0 0 1 Beschreibung der Zielstellung: cos ψ − sin ψ sin ψ cos ψ P(q1,q2 ) = 0 0 0 0 0 x 0 y 1 0 0 1 Gl.1 : cos ψ = cos( q1 + q2 ) Elementweises Gleichsetzen: Gl.2 : sin ψ = sin( q1 + q2 ) Gl.3 : − sin ψ = − sin(q1 + q2 ) Gl.4 : cos ψ = cos( q1 + q2 ) Gl.5 : x = L1 cos q1 + L 2 cos( q1 + q2 ) Gl.6 : y = L1 sin q1 + L 2 sin( q1 + q2 ) Gl1 und 4 sowie Gl 2 und 3 sind redundant Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 104 Nur für Lehrzwecke Fortsetzung Beispiel Bekannt sind: L1, L2, x, y und ψ und mit x = L1 cos q1 + L 2 cos ψ y = L1 sin q1 + L 2 sin ψ Gesucht werden: Gelenkwinkel q1 und q2 gilt Mit x − L2 cos ψ L1 y − L2 sin ψ sin q1 = L1 cos q1 = cos ψ = cos(q1 + q2 ) sin ψ = sin(q1 + q2 ) und sin(ψ ) ψ = arctan cos(ψ ) wird sin(q1 + q2 ) ψ = arctan + cos( q q ) 1 2 also ψ = q1 + q2 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 und sin(q1) q1 = arctan cos(q1) führt zu y − L 2 sin ψ x − L 2 cos ψ q1 = atan2 , L1 L1 q2 = ψ − q1 Robotertechnik VLRob.ppt Folie 105 Nur für Lehrzwecke Numerische Verfahren Für das inverse kinematische Problem lässt sich nicht immer eine analytische Lösung finden Dann kommen numerische Verfahren beziehungsweise Näherungsverfahren zum Einsatz Am Beispiel des einfachen SCARA mit zwei Drehgelenken soll eines der numerischen Verfahren vorgestellt werden: Es gilt: x = L1 cos ϑ1 + L 2 cos(ϑ1 + ϑ2 ) y = L1 sin ϑ1 + L 2 sin (ϑ1 + ϑ2 ) mit q1 = ϑ1 und q2 = ϑ2 kann man schreiben : f1 (q1,q2 ) = L1 cos q1 + L 2 cos(q1 + q2 ) f2 (q1,q2 ) = L1 sin q1 + L 2 sin(q1 + q2 ) Wenn man für einen Punkt die Lösung kennt, kann man für einen benachbarten Punkt die Lösung näherungsweise berechnen. P(x ,y ) → (q10 , q20 ) Also: bekannte Lösung : 0 0 gesuchte Lösung : P(x + dx, y + dy ) → (q1, q2 ) 0 0 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 106 Nur für Lehrzwecke Lösungsansatz für numerisches Verfahren Für Funktionen von mehreren Variablen gilt der Satz von Taylor: ∂f ∂f dx = x − x0 = f1 (q , q ) − f1 (q , q ) ≈ 1 dq1 + 1 dq2 1 2 10 20 ∂q2 ∂q1 (q1, q2 ) = (q10, q20 ) ∂f ∂f dy = y − y0 = f2 (q , q ) − f2 (q , q ) ≈ 2 dq1 + 2 dq2 1 2 10 20 ∂q2 ∂q1 (q1, q2 ) = (q10, q20 ) Das als Matrize geschrieben : In dem vorigen Ausdruck ∂f1 ∂f1 dx ∂q1 ∂q2 dq1 kann die sogenannte Jacobi - Matrix identifiziert • = werden (auf 2D reduziert) : dy ∂f2 ∂f2 dq2 ∂q1 ∂q2 und man kann dann schreiben : ∂f1 ∂f1 ∂q1 ∂q2 J= ∂f2 ∂f2 ∂q1 ∂q2 dP = J(q1, q2 ) • dQ wobei dq dx dP = und dQ = 1 sind dy dq2 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 107 Nur für Lehrzwecke Bestimmung der Gelenkkordinaten • Von einem Punkt (Startpunkt) P0 müssen bekannt sein: • Die externen Koordinaten (x,y) • Die Gelenkkoordinaten (q1, q2) • Mittels der Jacobi-Matrix J und ihrer Inversen J-1 können dann die Gelenkkoordinaten eines Punktes P berechnet werden • Voraussetzung: P und P0 dürfen nicht zu weit auseinander liegen, weil sonst die Näherungen nach Taylor zu ungenau werden Man zerlegt dann die Strecke von P0 nach P in Teilstrecken und wendet das Verfahren mehrfach an. Damit sich die einzelnen Fehler nicht addieren, wird nach jedem Schritt eine direkte Transformation durchgeführt. Von dieser exakten Position aus wird dann weiter gerechnet. mit dP = J(q1, q2 ) • dQ gilt dQ = J -1(q1, q2 ) • dP wobei dQ = Q - Q0 und dP = P - P0 ist, und in Teilstrecken zerlegt werden kann Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 108 Nur für Lehrzwecke Beispiel: Einfacher SCARA - 1 Für den einfachen SCARA mit zwei Drehgelenken sieht die Jacobi-Matrix wie folgt aus: − L sin q1 − L 2 sin(q1 + q2 ) − L 2 sin(q1 + q2 ) J = 1 L1 cos q1 + L 2 cos(q1 + q2 ) L 2 cos(q1 + q2 ) Die Inverse J-1 ist dann so zu gewinnen : 1. Adjunkte bilden 2. Transponie rte bilden L 2 cos(q1 + q2 ) L 2 sin(q1 + q2 ) T Jadj = − L1 cos q1 − L 2 cos(q1 + q2 ) − L1 sin q1 − L 2 sin(q1 + q2 ) und es gilt J-1 = 1 JD T • Jadj mit JD als Determinan te von J, und JD muss ≠ 0 sein JD = L1L 2 sin q2 d.h. sinq2 darf nicht 0 werden! (gestreckter Arm, degeneriert) Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 109 Nur für Lehrzwecke Beispiel: Einfacher SCARA - 2 Die obrige Gleichung für J-1 aufgeschrieben in homogener Form für 2D - Probleme : L 2 cos(q1 + q2 ) L 2 sin(q1 + q2 ) 0 1 J-1 = − L1 cos q1 − L 2 cos(q1 + q2 ) − L1 sin q1 − L 2 sin(q1 + q2 ) 0 JD 0 0 JD und Q = Q0 + J−1 • (P − P0 ) beziehungsweise q1 q10 ∆x −1 q2 = q20 + J • ∆y 0 0 0 ist für den einfachen SCARA mittels homogener Matrizen einfach mit Matlab zu implementi eren. Die folgende Folie zeigt die Ergebnisse einer mit Matlab durchgeführten Näherungsrechnung. Man sieht sehr gut, wie die Näherung zu Beginn etwas ungenau ist, aber zum Ende der Strecke schnell konvergiert. Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 110 Nur für Lehrzwecke Ergebnisse einer Näherungsrechnung mit Matlab Naeherungsrechnung fuer planaren SCARA 3 Ziel X-Soll X-Ist Y-Soll Y-Ist 6.2374 6.2374 2.6230 2.6230 6.0136 5.9806 2.6607 2.6384 5.7899 5.7801 2.6984 2.6887 5.5662 5.5571 2.7361 2.7255 5.3424 5.3361 2.7738 2.7643 5.1187 5.1140 2.8115 2.8025 4.8949 4.8915 2.8492 2.8405 4.6712 4.6687 2.8869 2.8784 4.4475 4.4458 2.9246 2.9162 4.2237 4.2227 2.9623 2.9539 2.95 2.9 Soll y-Achse 2.85 Ist 2.8 2.75 Start 2.7 2.65 2.6 3.5 4 4.5 5 5.5 6 6.5 x-Achse Mit L1 =4, L2 = 3, q1 = 10°, q2 = 30° folgt: 4.0000 3.9995 3.0000 2.9917 Startposition: x = 6,2374 4.0000 4.0000 3.0000 3.0000 y = 2,6230 Gewählte Zielposition: x = 4,0 L1 = 4, L2 = 3, q10 = 10°, q20 = 30° y = 3,0 Strecken entlang der Achsen in 10 gleiche Teilabschnitte zerlegt Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 111 Nur für Lehrzwecke Singularitäten Singularitäten sind spezielle Situationen, in denen die mathematische Ermittlung der Gelenkwinkel nicht möglich ist, beispielsweise bei einer Division durch Null. Diese Situationen entsprechen besonderen Stellungen des Roboterarmes. Singuläre Konfigurationen • Mehrere Achsen liegen in einer Linie. • Die Drehung einer Achse kann durch die Gegendrehung einer anderen Achse kompensiert werden. • Es existieren unendlich viele Lösungen für die Rücktransformation. • Ein Freiheitsgrad verloren, da für eine Drehachse zwei Gelenke verwendet werden. Singularität bei Bewegung • Ein Arm durchläuft eine Stellung, in der die Winkelgeschwindigkeit eines oder mehrerer Gelenke unendlich werden müsste, um den TCP mit der gewünschten Bahngeschwindigkeit weiterzubewegen. • Innere Singularitäten treten im Inneren des Arbeitsraumes auf. • Randsingularitäten treten am Rand des Arbeitsbereiches auf. • Ein Freiheitsgrad geht verloren. Gesperrte Richtung Abhilfe: Kurzzeitig beide Achsen zu einer zusammenfassen oder eine Achse „einfrieren“. Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Nicht-singuläre Stellung Randsingularität Robotertechnik Innere Singularität VLRob.ppt Folie 112 Nur für Lehrzwecke Singuläre Achsstellungen eines 6-Achsen-Knickarmrob. 6 6 5 4 3 2 5 6 5 6 6 4 4 3 3 5 5 3 1 4 4 3 2 2 2 2 1 1 1 1 Achsen 1, 4 Achsen 4, 6 Achsen 1, 4, 6 Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Achsen 1, 6 VLRob.ppt Folie 113 Robotertechnik Nur für Lehrzwecke Bahn mit Singularität zur Erreichung eines Ziels Singuläre Stellung Start Start Ziel Ziel (nicht erreichbar) Hindernis, Arbeitraumbegrenzung Hindernis, Arbeitraumbegrenzung Singularitäten treten im praktischen Betrieb häufig auf. Manche Roboter bleiben beim Auftreten einer Singularität einfach stehen. Oft bieten die Robotersprachen eine Lösung für die kritischen Bereiche an, z.B. werden durch einen Befehl „SingArea/Wrist“ die Handachsen von Bahnauf PTP-Steuerung geschaltet, womit die Singularität vermieden wird. Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Linnemann, WiSe 2016/2017 Robotertechnik VLRob.ppt Folie 114 Nur für Lehrzwecke