Koordinatentransformation Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Vorwort Nachfolgend soll die Koordinatentransformation Koordinatentransformation nach Denavit-Hartenberg-Konvention am Beispiel eines realen Industrieroboters demonstriert werden. In der Kürze kann auf die nötigen Grundlagen nicht eingegangen werden. Aus diesem Grund sind Schlüsselworte markiert, um einerseits Begriffe einzuführen und andererseits Hinweise für weiteres Selbststudium zu geben. Literaturempfehlun L iteraturempfehlungg zum Einstieg: B. Heimann, W. Gerth, K. Popp: Mechatronik. Dritte, neu bearbeitete Auflage. Carl Hanser Verlag, München, 2007.
KUKA KR 16 Bei dem betrachteten Industrieroboter handelt es sich um einen KUKA KR16 mit einer zulässigen Traglast von 16 kg am Endeffektor. Die technischen Daten sind im Internet verfügbar, in den angebotenen Dokumenten findet sich unter anderem die rechts abgebildete Zeichnung. Ihr können die Abmessungen sowie – grau eingefärbt – der Arbeitsraum des Roboters entnommen werden.
Quelle: http://www.kuka.com Deutschland » Produkte » Niedrige Traglast » KR 16
Ebenso sind CAD-Modelle der Roboter verfügbar, aus denen man sich beispielsweise die links dargestellte Skizze erzeugen kann. . D A C o t u A d n u p m i G e h T , e p a c s k n I , g r o . e c i f f O n e p O t i m t l l e t s r E
Eingezeichnet sind neben den relevanten Abmessungen das für die nachfolgenden Betrachtungen herangezogene Grundgerüst (blau) sowie die Gelenkachsen (rot).
Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 1
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Ausgangssituation: Der Roboter als Mehrkörpersystem Ein Roboter stellt ein Mehrkörpersystem dar, in welchem eine Anzahl von Körpern durch Gelenke verbunden sind. Bei dem hier betrachteten Industrieroboter sind die Körper hintereinander angeordnet und durch rotatorische Gelenke verbunden. Dieses ist eine offene, kinematische Kette. Die Bewegung eines jeden Körpers des Roboters kann aus den Gelenkbewegungen und den Abmessungen der einzelnen Körper berechnet werden. Dafür wird jedem Körper ein eigenes, körperfestes Koordinatensystem zugeordnet – jeder Körper stellt somit ein (Teil-)System dar. Zusätzlich wird ein Körper als Basis ausgewählt, der im Gesamtsystem als beschleunigungsfrei angesehen werden kann. Im hier behandelten Beispiel ist dieses der Robotersockel, der mit dem Boden verschraubt ist. Das Koordinatensystem dieses ruhenden Körpers wird als Basis- oder Weltkoordinatensystem definiert und stellt die Referenz in diesem Mehrkörpersystem dar.
Orientierung im Mehrkörpersystem Für die weiteren Betrachtungen muss klar sein, welcher Körper und welches Gelenk gemeint ist. Die Numerierung der Körper wird an der Basis mit Null begonnen. Der erste bewegliche Körper erhält die 1, entsprechend wird das diese beiden Körper verbindende Gelenk mit der Nummer 1 versehen. Für die übrigen Körper wird ebenso verfahren. Hilfreich sind hierbei Analogien zur menschlichen Anatomie: Körper-Nr. 0 1 2 3 4 5 6
Trivialname Basis, Sockel, Fuß Schulter Oberarm Unterarm Hand Hand Endeffektor
5 4
6
3 2 1 0
Die Numerierung der Gelenke beginnt wie bereits erwähnt bei 1: Verbindung 01 12 23 34 45 56
Gelenk-Nr. 1 2 3 4 5 6
Dipl.-Ing. Frank Abelbeck, Januar 2008
Trivialname Hüftgelenk Schultergelenk Ellenbogengelenk Handgelenk Handgelenk Handgelenk
Blatt 2
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Wahl der Koordinatensysteme Nachdem nun die Teile des Systems klar bezeichnet sind, müssen ihnen ihre jeweiligen Koordinatensysteme zugeordnet werden. Die korrekte Festlegung von Lage und Ausrichtung der einzelnen Koordinatensysteme ist wichtig für die weiteren Schritte. Aus diesem Grund gibt es Regeln, mit denen die Wahl der Koordinatensysteme erleichtert wird: Regel 1: Lage
Der Ursprung des Koordinatensystems des Körpers i (nachfolgend KS i genannt) liegt im Schnittpunkt der Achse des Gelenks i+1 und der gemeinsamen Normalen der Achsen von Gelenk i und i+1. Beispiel im Bild rechts: Das KS 2 des senkrecht stehenden Oberarms soll festgelegt werden. Die Normale ist rot eingezeichnet , sie steht sowohl auf Achse 2 als auch auf Achse 3 senkrecht. Als Erinnerung: Die Achse 2 stellt den Übergang von Körper 1 auf Körper 2 dar. Der Übergang von Körper 2 auf Körper 3 erfolgt durch Achse 3. Entspreched ergibt sich der Urprung von KS 2 wie gezeigt als Schnittpunkt ( rot eingekreist) der Normalen und folgenden Achse 3. Regel 2: Ausrichtung Regel 2.1: Die z-Achse des KS 2 liegt in der Achse des Gelenks 3. Regel 2.2: Die x-Achse verläuft entlang der gemeinsamen Normalen der Gelenkachsen. Regel 2.3: Die y-Achse liegt derart, dass sich ein Rechtssystem ergibt ( Dreifingerregel ).
Beispiel im Bild rechts: Das KS 2 des senkrecht stehenden Oberarms liegt vom Ursprung her schon fest. Die Normale ist erneut rot eingezeichnet . Die Achse z 2 liegt gemäß Regel in der Achse des Gelenks 3, wobei die Richtung durch den Drehsinn des Gelenks festgelegt wird (Rechtsschraube, Rechte-Hand-Regel). Achse x2 verläuft entlang der gemeinsamen Normalen. Achse y2 vervollständigt das Rechtssystem.
Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 3
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Aufgabe: Koordinatentransformation Es sollen die Koordinaten eines Punktes von einem Körperkoordinatensystem in das Basiskoordinatensystem umgeformt werden, um die Position dieses Punktes in seiner Umwelt zu berechnen. Von zentraler Bedeutung ist dieses für Punkte am Endeffektor, um dessen Position im Raum zu bestimmen. Es ist bei Industrierobotern aber auch möglich, an Ober- oder Unterarm Lasten zu befestigen. Für die kinematische und kinetische Beschreibung dieser Zusatzlasten müssen unter anderem deren Schwerpunkte vom jeweiligen Körpersystem ins Weltsystem umgeformt werden.
Vorgehensweise nach Denavit-Hartenberg Entlang der kinematischen Kette wird von einem Koordinatensystem ins nachfolgende umgeformt. Hierzu wird vom Basissystem ausgehend jedes Koordinatensystem gedreht, verschoben und wieder gedreht, um Position und Ausrichtung des nachfolgenden Systems zu erreichen. Drehwinkel und Verschiebungswege ergeben die Denavit-Hartenberg-Parameter .
Die vier Schritte bei der Denavit-Hartenberg-Transformation Schritt 1 2 3 4
Beschreibung Drehung um z-Achse Verschiebung entlang z-Achse Verschiebung entlang neuer x-Achse Drehung um neue x-Achse
Parameter Winkel Weg d Weg a Winkel
Es ist ersichtlich, dass durch die Parameter und d die Gelenkstellung einbezogen wird. Denn wie bei der Wahl der Koordinatensysteme gezeigt fällt die z-Achse mit der Gelenkachse zusammen. In diesen Parametern tauchen somit die Aktorwinkel (rotatorisches Gelenk) oder Aktorwege (translatorische Gelenk) auf. Beispiel im Bild rechts: Bei der Denavit-HartenbergTransformation vom KS 1 ins KS 2 kann der Aktor von Achse 2 den Oberarm in einem beliebigen Winkel ausrichten. Der Parameter berücksichtigt dieses, indem dort der Gelenkwinkel eingetragen wird. Zusätzlich kann in diesem Fall auch noch ein konstanter Wert /2 abgezogen werden, damit sich für die weiteren Schritte die x-Achse in der richtigen Lage befindet. Die Parameter a und berücksichtigen die Dimensionen der Körper, im nebenstehenden Falle entspricht a der Länge des Oberarms. Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 4
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Die folgenden Seiten zeigen nun Schritt für Schritt, wie die Denavit-Hartenberg-Parameter von der Basis bis zum Endeffektor bestimmt werden. Das KS 0 der Basis kann mangels Vorgängergelenk frei gewählt werden, in diesem Fall wird es „auf den Boden“ gelegt. Die z-Achse liegt auf der Gelenkachse 1. Die x-Achse wird derart gewählt, dass sich der Übergang auf das nächste System einfach gestaltet. Die Gelenkwinkel seien nachfolgend durch die verallgemeinerten Koordinaten q bis q gegeben. 1
6
1 = q1 d 1 =
675
mm
a1 =
260
mm
1 = −
2
2 =
q2
−
d 2
= 0
a2
= 680
2
mm mm
2 = 0
Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 5
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Die Richtung der z-Achsen wurde in Übereinstimmung mit dem Drehsinn der Aktoren gemäß technischer Daten gewählt. Bei sich kreuzenden Achsen (beispielsweise 3 und 4) nimmt die Verschiebung a den Wert Null an. Senkrecht aufeinanderstehenden Achsen kennzeichnen sich dadurch aus, dass der Winkel einen Wert von + /2 oder -/2 einnimmt.
3 = q 3 d 3 =
0
mm
a3 =
0
mm
3 =
2
4 =
q4
d 4
= −670
a4
= 0
mm
mm
4 = − 2
Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 6
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Die kinematische Kette des KUKA KR16 endet in einem sphärischen Handgelenk . Dieses zeichnet sich dadurch aus, dass sich alle Achsen in einem Punkt schneiden. Mathematisch gesehen kann dadurch der Roboter an dieser Stelle in zwei Teilsysteme zerfallen. Dieses erleichtert bei komplexeren Fragestellungen der Robotik die Modellierung und Berechnung. Wie die Basis nimmt der Endeffektor als anderes Ende der Kette eine Sonderstellung ein. Er besitzt kein nachfolgendes Gelenk. Es ist üblich, die zAchse aus der „Handfläche“ weisen zu lassen und die anderen Achsen so anzuordnen, dass sich die Transformation einfach gestaltet.
5 = q5 d 5 =
0
mm
a5 =
0
mm
5 =
2
6 =
q6
d 6
= −158
a6
= 0
mm
mm
6 =
Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 7
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Diskussion der Ergebnisse i
d
a
1
q1
675 mm
260 mm
- /2
2
q2 - /2
0 mm
680 mm
0
3
q3
0 mm
0 mm
/2
4
q4
-670 mm
0 mm
- /2
5
q5
0 mm
0 mm
/2
6
q6
-158 mm
0 mm
In obiger Tabelle sind alle Parameter noch einmal zusammengefasst. Sie bilden die Grundlage, um das Mehrkörpersystem des Industrieroboters mathematisch abzubilden. Dabei repräsentiert ein Satz Parameterwerte den Roboter in einer bestimmten Stellung seiner Gelenke (Konfiguration des Roboters ). Durch Variation der verallgemeinerten Koordinaten q bis q können nun die Lage und Ausrichtung aller Roboterkörper in allen Roboterkonfigurationen berechnet werden. Es ist somit möglich, die Position des Endeffektors im Raum in Abhängigkeit von den Aktorstellungen zu berechnen oder die Bahn einer an den Unterarm angebrachten Last zu verfolgen. Diese Berechnung eines Ortsvektors als Funktion der Gelenkwinkel q bis q nennt man direkte Kinematik oder Vorwärtskinematik. 1
6
1
6
Zu beachten ist, dass bei der Bestimmung der Parameter die abgebildete Roboterkonfiguration zugrunde gelegt wurde. Bei Betrachtung der technischen Daten des Roboters zeigt sich, dass die verwendete Roboterkonfiguration nicht der Nullstellung (Arm horizontal ausgestreckt) entspricht. Im Falle der Nullstellung würden sich die DenavitHartenberg-Parameter wie folgt ergeben: i
d
a
1
q1
675 mm
260 mm
- /2
2
q2
0 mm
680 mm
0
3
q3 - /2
0 mm
0 mm
/2
4
q4
-670 mm
0 mm
- /2
5
q5
0 mm
0 mm
/2
6
q6
-158 mm
0 mm
Die Denavit-Hartenberg-Notation ist nicht immer eindeutig. Mit beiden Parametersätzen kann der Roboter korrekt beschrieben werden. Allenfalls die Nullstellungen der Achsen 2 und 3 sind verschieden, was bei der Ansteuerung der Aktoren berücksichtigt werden muss. Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 8
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Mathematische Umsetzung, knapp zusammengefasst Jeder der vier Transformationsschritte kann mathematisch durch Multiplikation der z u transformierenden Koordinaten mit einer Transformationsmatrix ausgedrückt werden. Nachfolgend seien die Transformationsmatrizen der für homogene Koordinaten gegeben:
ROT z i
=
TRANS x ai
cos i
0
0
sin i
−sin i cos i
0
0
0
0
1
0
0
0
0
1
=
TRANS z d i
1
0
0
ai
0
1
0
0
0
0
1
0
0
0
0
1
ROT x i
=
=
1
0
0
0
0
1
0
0
0
0
1
d I
0
0
0
1
1
0
0
0
0
cos i
0
0
sin I
−sin i cos i
0
0
0
1
0
Fasst man alle Transformationen zusammen, so ergibt sich die Gesamttransformationsmatrix: i −1
T i
i , d i , a i , i =
ROT z i
⋅
TRANS z d i
⋅
TRANS z ai
⋅
ROT z i
Sie ist von den vier Denavit-Hartenberg-Parametern abhängig und ändert sich mit diesen, beispielsweise wenn sich ein neues i in Folge einer Gelenkdrehung einstellt. Um zu kennzeichnen, dass der Ortsvektor r vom System i in das System i-1 transformiert werden soll, werden Indizes wie folgt verwendet: i − 1 r
=
i− 1
T i
⋅
i r
Die Transformationsmatrizen lassen sich durch Multiplikation aneinanderhängen. Ein Punkt r EE im Endeffektorsystem (6) lässt sich dann wie folgt in das Basissystem (0) umrechnen: 0 r EE
=
0
T 6 ⋅ 6 r EE
0
mit T 6
=
0
1
2
3
4
5
T 1 ⋅ T 2 ⋅ T 3 ⋅ T 4 ⋅ T 5 ⋅ T 6
Ferner lässt sich die Transformationsrichtung durch Invertieren der Matrix umkehren: i
T i −1
=
i− 1 −1 i
T
Anwendung: Simulation Mit Hilfe der aufgestellten Denavit-Hartenberg-Parameter und obiger mathematischer Operationen lassen sich nun verschiedener Körperpunkte in ihrer Darstellung in das Weltkoordinatensystem umwandeln. Neben der Berechnung von Bahnkurven ( Trajektorien ) kann dieses für Visualisierung genutzt werden, wie nachfolgende Seite verdeutlichen soll.
Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 9
Koordinatentransformation nach Denavit-Hartenberg am Beispiel eines KUKA KR16
Simulation in MATLAB MATLAB ist ein mächtiges Werkzeug für den Ingenieur, um Aufgaben zu modellieren und
Probleme zu lösen. Die Arbeit mit Matrizen und Vektoren ist sehr einfach, zusätzlich existieren umfangreiche Bibliotheken, um die Ergebnisse schnell und einfach graphisch zu präsentieren. Als Beispiel sind nebenstehend Eingaben und Ausgaben auf der Kommandozeile von MATLAB aufgeführt; Die Eingabeposition ist mit >> gekennzeichnet. Zunächst erfolgen Wertzuweisungen: ein Skalar alpha und eine Matrix rotmat werden definiert. Die Matrix lässt sich leicht als Rotationsmatrix für Drehungen um die x-Achse identifizieren. Abschließend wird die Rotationsmatrix mit dem Spaltenvektor multipliziert und das Ergebnis wird ausgegeben.
>> alpha = pi/2 alpha = 1.5708 >> rotmat = [1, 0, 0, 0;... 0, cos(alpha), -sin(alpha), 0;... 0, sin(alpha), cos(alpha), 0;... 0, 0, 0, 1]; >> rotmat*[0;1;0;1] ans = 0 0.0000 1.0000 1.0000
Auf diese Weise ist es ein leichtes, die gezeigten mathematischen Operationen für eine Darstellung zu nutzen. Rechts ist ein Bildschirmfoto eines selbstgeschriebenen Programms zu sehen, welches die „Knochen“ des Roboters zeichnet. Dazu werden die Ursprünge ( x = 0, y = 0, z = 0) aller Koordinatensysteme ins Basiskoordinatensystem transformiert und dann durch eine Linie miteinander verbunden. Ebenso kann ein Modell des Roboters gezeichnet werden. In jedem Körpersystem werden dazu passende 3D-Objekte (Quader, Zylinder, Kugeln) erstellt und ihre Punkte sodann ins Basissystem überführt, in welchem sie dann dargestellt werden können. Das linke Bild zeigt das Ergebnis. Durch Variation der Denavit-Hartenberg-Parameter (z.B. über die gezeigten Schieberegler) und anschließende Durchführung der Matrizenberechnung kann das Modell so jede Konfiguration des Originals einnehmen. Dipl.-Ing. Frank Abelbeck, Januar 2008
Blatt 10