ch.3, part. 2

UFR des Sciences, Département EEA
M1 EEAII
Parcours ViRob
Fabio MORBIDI
E-mail: [email protected]!
http://home.mis.u-picardie.fr/~fabio/Teaching.html
Année Universitaire 2014/2015
Plan du cours
Chapitre 1 : Généralités
1.1 Définitions
1.2 Constituants d’un robot
1.3 Classification des robots
1.4 Caractéristiques d’un robot
1.5 Les générations de robot
1.6 Programmation des robots
1.7 Utilisation des robots
Chapitre 2 : Degrés de liberté - Architecture
2.1 Positionnement
• Rotation et représentation de la rotation
• Attitude et matrices homogènes
2
Plan du cours
2.2 Cinématique
• Vitesse d’un solide
• Vecteur vitesse de rotation
• Mouvement rigide
• Torseur cinématique
Chapitre 3 : Modélisation d’un robot
3.1 Modèle géométrique
• Convention de Denavit-Hartenberg
• Modèle géométrique direct
• Modèle géométrique inverse
3.2 Modèle cinématique
• Jacobien direct d’un robot
• Jacobien inverse d’un robot
3.3 Modèle dynamique
• Equation d’Euler-Lagrange
3
Modèle géometrique direct
pour manipulateurs industriels
Exemples
4
2 - Manipulateur sphérique
θ2
θ1
Remarques:
• L’origine du repère 0 est située à l’intersection des axes z0 et z1 de façon que d1 = 0
• L’origine du repère 2 est située à l’intersection des axes z1 et z2
5
Manipulateur sphérique
Segment
ai
αi
di
θi
1
0
π/2
0
θ1
2
0
π/2
d2*
θ2
3
0
0
d3
0
_
Tableau des paramètres de DH (* pas une variable)
Nous avons deux articulations rotoïdes et une articulation prismatique, donc
il faut déterminer trois matrices de transformation
La 1ère transfomation est:
A01 (θ1 ) =
�
Rz (θ1 )Rx (−π/2)
01×3

cos θ1
�
 sin θ
03×1
1

=
 0
1
0
0 − sin θ1
0
cos θ1
−1
0
0
0

0
0


0
1
6
Transformation homogène de DH Ai−1
(qi )
i
artic.
artic.
i–1
i
artic.
i+1
segm.
segm.
ai
θi
ai−1
1ère étape
Ai−1
i�

cos θi
 sin θ
i

= 
 0
0
− sin θi
cos θi
0
0
2ème étape

0 0
0 0


1 di 
0 1
Aii
�

1
0
 0 cos α
i

= 
 0 sin αi
0
0
0
− sin αi
cos αi
0

ai
0


0
1
7
Manipulateur sphérique
Dans notre cas a1 = 0, α1 = _π/2, d1 = 0 et θ1 ≠ 0
A01 (θ1 )
=
�
Rz (θ1 )Rx (−π/2)
01×3
En effet, graphiquement:
03×1
1
�

cos θ1
 sin θ
1

=
 0
0
2ème étape
1ère étape
z0
0 − sin θ1
0
cos θ1
−1
0
0
0
x0
z1’
−π/2
1
y1’
z1
y0
x1
x1’
x1’
0
0


0
z1’
y1’
θ1

y1
8
Manipulateur sphérique
Maintenant, a2 = 0, α2 = π/2, d2 ≠ 0 et θ2 ≠ 0 (2ème ligne du tableau de DH):
A12 (θ2 )

Rz (θ2 )Rx (π/2)
= 

0
0
0
Graphiquement:

cos θ2
0
0 
sin θ2
=
d2  
 0
1
0
0
sin θ2
0 − cos θ2
1
0
0
0

0
0


d2 
1
z2
θ2
d2
x1

z1
π/2
y2
y1
x2
9
z3
Manipulateur sphérique
Enfin, a3 = 0, α3 = 0, d3 ≠ 0 et


0

0 
I3
2


A3 (d3 ) = 
d3 
0 0 0 1
θ3 = 0 (3ème ligne du tableau):


1 0 0 0
0 1 0 0 


= 

 0 0 1 d3 
x3
0 0 0
z2
1
d3
Évidemment, la 3ème articulation n’influence pas la
matrice de rotation

où


T03 (q) = A01 A12 A23 = 

T
y2
x2
Conclusion:
c1 c2
s1 c2
−s2
0
−s1
c1
0
0
c1 s2
s1 s2
c2
0
q = [ θ1 , θ2 , d3 ] et c1 = cos θ1 , s1 = sin θ1
y3

c 1 s 2 d3 − s 1 d2
s 1 s 2 d3 + c 1 d2 



c 2 d3
1
10
Manipulateur sphérique
y30
y3
θ2
θ1
Remarques:
0
• L’orientation du vecteur unitaire y3 est déterminée uniquement par la 1ère
articulation, parce que l’axe de la 2ème articulation z1 est parallel à l’axe y3
• Dans le manipulateur sphérique, le repère 3 peut représenter le repère d’un
effecteur, c’est-à-dire T3e = I4
11
3 - Manipulateur anthropomorphe
a3
θ3
θ2
θ1
Remarques:
• Le manipulateur anthropomorphe correspond à un manipulateur planaire
à 2 segments avec une rotation supplémentaire autour d’un axe du plan
• L’origine du repère 0 est située à l’intersection des axes z0 et z1 de façon que d1 = 0
• Les axes z1 et z2 sont parallèles et pour les axes x1 et x2 on peut faire le même
choix que pour le manipulateur planaire à 3 segments déjà étudié
12
Manipulateur anthropomorphe
Segment
ai
αi
di
θi
1
0
π/2
0
θ1
2
a2
0
0
θ2
3
a3
0
0
θ3
Paramètres de DH
Nous avons trois articulations rotoïdes
La 1ère transformation est:
A01 (θ1 )
=
�
Rz (θ1 )Rx (π/2)
01×3
03×1
1
�

cos θ1
 sin θ
1

=
 0
0
0
sin θ1
0 − cos θ1
1
0
0
0

0
0


0
1
13
Manipulateur anthropomorphe
Nous avons a1 = 0, α1 = π/2, d1 = 0 et θ1 ≠ 0 (1ère ligne du tableau de DH):
A01 (θ1 )
=
�
Rz (θ1 )Rx (π/2)
01×3
En effet, graphiquement:

cos θ1
�
 sin θ
03×1
1

=
 0
1
0
z0
0
sin θ1
0 − cos θ1
1
0
0
0

0
0


0
1
y1
π/2
x1
z1
θ1
14
Manipulateur anthropomorphe
Pour les deux articulations rotoïdes restantes (2 et 3):

cos θi
 sin θ
i

i−1
(θ
=

AAi−1
(θ
)
ii
i1
 0
0
Conclusion:
où

− sin θi
cos θi
0
0
c1 c23
s c
 1 23
0
0
1
2
T3 (q) = A1 A2 A3 = 
 s23
0

0 ai cos θi
0 ai sin θi 

 , i ∈ {2, 3}

1
0
0
1
−c1 s23
−s1 s23
c23
0
s1
−c1
0
0

c1 (a2 c2 + a3 c23 )
s1 (a2 c2 + a3 c23 ) 


a2 s2 + a3 s23 
1
q = [θ1 , θ2 , θ3 ]T et c23 = cos(θ2 + θ3 ), s23 = sin(θ2 + θ3 )
Remarque: Puisque z3 est aligné avec z2, le repère 3 ne coïncide pas
avec un repère admissible pour l’effecteur. Pour y rémedier, il faut définir
une transformation constante appropriée
15
4 - Poignet sphérique
θ6
θ5
θ4
• Les variables des articulations sont numérotées à partir de 4 puisque le
poignet est typiquement monté sur le bras à 3 DDL d’un manipulateur à 6 DDL
• Le poignet est sphérique puisque tous les axes des articulations rotoïdes
se croisaient en un seul point (bleu dans la figure ci-dessus)
• Si les axes z3, z4, z5 ont été fixes et l’axe x3 a été choisi, la direction de x4 et x5
reste indéterminée
16
Poignet sphérique
Segment
ai
4
0
5
0
6
0
αi
di
θi
π/2
0
θ4
π/2
0
θ5
0
d6*
θ6
_
Paramètres de DH
Nous avons trois articulations rotoïdes
La 1ère transformation est:
A34 (θ4 )
=
�
Rz (θ4 )Rx (−π/2)
01×3
03×1
1
�

cos θ4
 sin θ
4

=
 0
0
0 − sin θ4
0
cos θ4
−1
0
0
0

0
0


0
1
17
Poignet sphérique
A34 (θ4 )
=
�
Rz (θ4 )Rx (−π/2)
01×3
Graphiquement:

cos θ4
�
 sin θ
03×1
4

=
 0
1
0

0
0


0
0 − sin θ4
0
cos θ4
−1
0
0
0
1
z3
−π/2
x4
θ6
θ5
x3
θ4
z4
θ4
18
Poignet sphérique
La 2ème transformation est:
A45 (θ5 )
=
�
Rz (θ5 )Rx (π/2)
01×3
Graphiquement:

cos θ5
�
 sin θ
03×1
5

=
 0
1
0
0
sin θ5
0 − cos θ5
1
0
0
0

0
0


0
1
x5
x4
θ5
θ6
θ5
z5
z4
π/2
θ4
19
Poignet sphérique
Enfin:



cos θ6
0
 Rz (θ6 ) 0  
sin θ6
5
=
A6 (θ6 ) = 

d6  
 0
0 0 0 1
0
Graphiquement:

0 0
0 0 


1 d6 
0 1
− sin θ6
cos θ6
0
0
x5
d6
z5
θ6
θ5
θ4
y5
z6
θ6
x6
y6
20
Poignet sphérique
Conclusion:

c4 c5 c6 − s4 s6
s c c + c s
4 6
 4 5 6
3
3
4
5
T6 (q) = A4 A5 A6 = 

−s5 c6
0
où
q = [θ4 , θ5 , θ6 ]T
−c4 c5 s6 − s4 c6
−s4 c5 s6 + c4 c6
s5 s6
0
c4 s5
s4 s5
c5
0

c 4 s 5 d6
s 4 s 5 d6 


c 5 d6 
1
θ6
θ5
θ4
Remarque: les vecteurs unitaires du repère 6 coïncident avec les vecteurs
unitaires d’un repère admissible pour l’effecteur
21
5 - Manipulateur anthropomorphe avec poignet sphérique
a3
θ3
θ2
Manipulateur
anthropomorphe
T03
θ1
+
θ6
Problème: le repère 3 du bras
anthropomorphe ne peut pas coïncider
avec le repère 3 du poignet sphérique
T06 �= T03 T36
θ5
θ4
Poignet
sphérique
T36
22
Manipulateur anthropomorphe avec poignet sphérique
Deux solutions possibles pour determiner
T06 :
Solution 1: On interpose une matrice de transformation constante entre
T03 and T36 qui permet d’aligner les deux repères
Solution 2: On redéfinit les repères de toute la structure en utilisant
la convention de Denavit-Hartenberg
θ5
θ4
θ6
θ3
θ2
θ1
23
Manipulateur anthropomorphe avec poignet sphérique
On obtient le suivantes paramètres:
Segment
ai
αi
di
θi
1
0
π/2
0
θ1
2
a2
0
0
θ2
3
0
π/2
0
θ3
4
0
d4*
θ4
5
0
π/2
0
θ5
6
0
0
d6*
θ6
_
π/2
• Les lignes 3 et 4 du tableau sont différentes des lignes correspondantes
des tableaux de deux structures individuelles
• Il faut modifier les matrices de transformation relatives (pas toutes les autres):

cos θ3
 sin θ
3

2
A3 (θ3 ) = 
 0
0
0
sin θ3
0 − cos θ3
1
0
0
0


cos θ4
0
 sin θ
0
4


3
, A4 (θ4 ) = 
 0
0
0
1
0 − sin θ4
0
cos θ4
−1
0
0
0

0
0 


d4 
1
24
Manipulateur anthropomorphe avec poignet sphérique
Conclusion:
Vecteur de translation:
�
�
a2 c1 c2 + d4 c1 s23 + d6 c1 (c23 c4 s5 + s23 c5 ) + s1 s4 s5
�
�

p06 =  a2 s1 c2 + d4 s1 s23 + d6 s1 (c23 c4 s5 + s23 c5 ) − c1 s4 s5 
a2 s2 − d4 c23 + d6 (s23 c4 s5 − c23 c5 )

0
Colonnes de la matrice de rotation R6 :
 �

�
c1 c23 (c4 c5 c6 − s4 s6 ) − s23 s5 c6 + s1 (s4 c5 c6 + c4 s6 )
�
 �

0
R6 (: , 1) = s1 c23 (c4 c5 c6 − s4 s6 ) − s23 s5 c6 − c1 (s4 c5 c6 + c4 s6 )
s23 (c4 c5 c6 − s4 s6 ) + c23 s5 c6
 �

�
c1 − c23 (c4 c5 s6 + s4 c6 ) + s23 s5 s6 + s1 (−s4 c5 s6 + c4 c6 )
�
 �

0
R6 (: , 2) = s1 − c23 (c4 c5 s6 + s4 c6 ) + s23 s5 s6 − c1 (−s4 c5 s6 + c4 c6 )
−s23 (c4 c5 s6 + s4 c6 ) − c23 s5 s6

 �
�
c1 c23 c4 s5 + s23 c5 + s1 s4 s5
Note: si on met d6 = 0, on trouve
�

 �
R06 (: , 3) = s1 c23 c4 s5 + s23 c5 − c1 s4 s5 
le point d’intersection des axes
du poignet sphérique
s23 c4 s5 − c23 c5
25
6 - Manipulateur DLR
θ6
θ5
θ7
θ3
θ4
θ2
θ1
• Le développement du manipulateur DLR (le DLR est le centre aérospatial allemand)
est à la base de la réalisation du robot KUKA LBR (“Lightweight Robot”) iiwa
• Le manipulateur DLR a 7 DDL (comme la bras humain), donc il est intrinsèquement
redondant
• Comme pour le manipulateur sphérique, l’origine du repère 0 a été choisie pour
avoir d1 = 0
26
Manipulateur DLR
KUKA LBR
Paramètres de DH
Segment
ai
αi
di
θi
1
0
π/2
0
θ1
2
0
π/2
0
θ2
3
0
π/2
d3*
θ3
4
0
π/2
0
θ4
5
0
π/2
d5*
θ5
6
0
π/2
0
θ6
7
0
0
d7*
θ7
Paramètres de DH
27
Manipulateur DLR
On trouve que ( αi = π/2, i ∈ {1, . . . , 6} ):

cos θi
 sin θ
i

i−1
Ai (θi ) = 
 0
0
0
sin θi
0 − cos θi
1
0
0
0
En revanche, puisque α7 = 0 :

cos θ7
 sin θ
7

A67 (θ7 ) = 
 0
0
Conclusion:
− sin θ7
cos θ7
0
0

0
0

, i ∈ {1, . . . , 6}
di 
1

0 0
0 0 


1 d7 
0 1
T07 (q) = A01 (q1 ) A12 (q2 ) · · · A67 (q7 )
Remarque: comme pour le manipulateur anthropomorphe avec poignet
sphérique, le repère 4 ne peut pas coïncider avec le repère de la base du poignet
28
7 - Manipulateur humanoïde
Manipulateur humanoïde
Structure articulée avec une cinématique analogue à celle de la partie supérieure
du corps humain: il a un torse, bras, effecteurs semblables à des mains et une
« tête » qui, éventuellement, peut comprendre un système de vision artificielle
29
Manipulateur humanoïde
Manipulateur humanoïde Justin
(DLR, centre de robotique et mécatronique)
30
Manipulateur humanoïde
Rollin’ Justin – Justin avec une plateforme à 4 roues
31
Manipulateur humanoïde
Torse
• Deux effecteurs (“main droite” et “main gauche”)
• Deux manipulateurs DLR à 7 DDL (dernière articulation avec α7 = π/2)
• Torse: bras anthropomorphe à 3 DDL
32
Manipulateur humanoïde
θ4
art. 3
art. 2
On a aussi un dispositif de connexion entre l’effecteur du torse et les repères de base
des deux manipulateurs
• Il permet de mantenir la “poitrine” du manipulateur humanoïde toujours
perpendiculaire par rapport au sol
• On utilise une articulation rotoïde: le paramètre θ4 de l’articulation n’est pas un
DDL, mais il varie pour compenser la rotations des articulations 2 et 3 du torse
33
Manipulateur humanoïde
Determination du modèle geometric direct:
Solution 1:
• Définir le paramètres de DH pour les trois structures cinématiques
• Comme pour le manipulateur anthropomorphe avec poignet sphérique, il faut
modifier quelque ligne des tableaux de DH des structures individuelles
34
Manipulateur humanoïde
l : repère de base du bras gauche
r : repère de base du bras droit
drt
dlt
t : repère du torse
rh : repère de
la main droite
lh : repère de
la main gauche
Solution 2:
Definir des matrices de transformation intermédiaires entre les structures principales.
Par exemple:


c23 s23 0 0
Ttr , Ttl : matrices constantes

−s
(fonction de β et
 23 c23 0 0 
3
0
0 3 t
r
T
=


des distances drt, dlt)
t
Trh = T3 Tt Tr Trh
 0
0 1 0
où
Trrh , Tllh : il faut changer la 7ème
0
0 0 1
0
0 3 t l
Tlh = T3 Tt Tl Tlh
ligne du tableau des
0
paramètres de DH du
T3 : comme pour le manipulateur
antropomorphe
manipulateur DLR
35
8 - Manipulateur cylindrique
Exercice:
P
1. Utiliser la convention de DenavitHartenberg pour positioner les repères
attachés aux segments du robot
2. Déterminer les paramètres de DH
et le modèle géométrique direct du robot
3. Les coordonnées du point P dans
T
le repère de l’effecteur sont [0 0 1] .
Déterminer les coordonnées du même
point dans le repère de la base du robot
(conseil: utiliser la matrice T03 )
θ1
4. Ecriré une fonction MATLAB qui prend comme arguments les parametrès
des articulations du robot et les coordonnées du point P dans le repère de
l’effecteur. La fonction doit produire en sortie les coordonnées du point P
dans le repère de la base du robot
36
Espace articulaire et espace opérationnel
θ4
effecteur
d3
θ2
θ1
base
Objectif: spécifier une tâche pour l’effecteur d’un manipulateur à n articulations.
Cela est plutôt facile pour la position, mais pas banale pour l’orientation
On peut décrire la pose de l’effecteur du robot avec un vecteur m x 1 (m ≤ n):
xe =
�
pe
φe
�
Position de l’effecteur
Orientation de l’effecteur: on utilise
une représentation minimale
(par ex. angles d’Euler)
37
Espace articulaire et espace opérationnel
Le vecteur
xe
est défini dans l’espace où la tâche du manipulateur est specifiée
Cet espace est appelé espace opérationnel
En revanche, l’espace articulaire (ou espace de configuration) dénote l’espace
où le vecteur des variable d’articulation
q = [ q1 , . . . , q n ] T
est défini. On a
est prismatique
qi = θi
si l’articulation est rotoïde et
qi = di
si l’articulation
On peut écrire le modèle géométrique direct, de manière alternative, comme:
xe = f (q)
où la fonction f (·), non linéaire en général, permet de calculer les variables
dans l’espace opérationnel à partir des variables dans l’espace articulaire
Si m < n, c’est-à-dire la dimension de l’espace opérationnel est plus petite que
la dimension de l’espace articulaire, on dit que le robot est intrinsèquement
redondant. Par ex. pour un robot industriel standard à 6 DDL, m = n = 6
38