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