M1 EEAII
Parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception Robotique
E-mail: fabio.morbidi@u-picardie.fr
1.1 Définitions
2.1 Positionnement
• Matrices de rotation et représentations de l’orientation
• Matrices homogènes
2
Plan du cours
2.2 Cinématique
• Vitesse d’un solide
• Vecteur vitesse de rotation
• Mouvement rigide
• Torseur cinématique
4
2 – Manipulateur sphérique
O0
θ2
O2
θ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
segm. segm.
ai
θi
di
ai−1
Ai−1
i (qi ) = Ai−1 i
i A i
axe i
où ⎡ ⎤ ⎡ ⎤
cos θi − sin θi 0 0 1 0 0 ai
⎢ sin θ cos θi 0 0⎥ ⎢0 cos αi − sin αi 0⎥
⎢ i ⎥ i ⎢ ⎥
Ai−1
i = ⎢ ⎥ , Ai = ⎢ ⎥
⎣ 0 0 1 di ⎦ ⎣0 sin αi cos αi 0⎦
0 0 0 1 0 0 0 1
7
Manipulateur sphérique
Dans notre cas a1 = 0, α1 = −π/2, d1 = 0, θ1 = 0 (1ème ligne du tableau de DH)
⎡ ⎤
cos θ1 0 − sin θ1 0
Rz (θ1 )Rx (−π/2) 03×1 ⎢ sin θ 0 cos θ1 0⎥
0 ⎢ 1 ⎥
A1 (θ1 ) = =⎢ ⎥
01×3 1 ⎣ 0 −1 0 0⎦
0 0 0 1
En effet, graphiquement:
z1’
z0 z1’ α1 = −π/2
y1’
y1’ z1
y0
θ1
x0 x1
x1’
x1’ y1
8
Manipulateur sphérique
Maintenant, a2 = 0, α2 = π/2, d2 = 0, θ2 = 0 (2ème ligne du tableau de DH):
⎡ ⎤ ⎡ ⎤
0 cos θ2 0 sin θ2 0
⎢Rz (θ2 )Rx (π/2) 0⎥ ⎢ sin θ2 0 − cos θ2 0⎥
A12 (θ2 ) = ⎢ ⎥=⎢ ⎥
⎣ d2 ⎦ ⎢
⎣ 0 1 0
⎥
d2 ⎦
0 0 0 1 0 0 0 1
Graphiquement:
z2
θ2
z1
α2 = π/2 d2
x1
y2
y1 x2
9
z3
Manipulateur sphérique
Enfin, a3 = 0, α3 = 0, d3 = 0, θ3 = 0 (3ème ligne du tableau):
⎡ ⎤ ⎡ ⎤
0 1 0 0 0
⎢ I3 0 ⎥ ⎢ 0 1 0 0 ⎥ y3
A23 (d3 ) = ⎢ ⎥ = ⎢
⎢
⎥
⎥ z2
⎣ d3 ⎦ ⎣ 0 0 1 d3 ⎦ x3
0 0 0 1 0 0 0 1
d3
Évidemment, la 3ème articulation n’a aucune incidence
sur l’orientation de l’effecteur
y2
Conclusion:
x2
⎡ ⎤
c1 c2 −s1 c1 s2 c 1 s 2 d3 − s 1 d2
⎢ s 1 s 2 d3 + c 1 d2 ⎥
⎢ s1 c2 c1 s1 s2 ⎥
T03 (q) = A01 A12 A23 = ⎢ ⎥
⎣ −s2 0 c2 c 2 d3 ⎦
0 0 0 1
T
où q = [ θ1 , θ2 , d3 ] et c1 = cos θ1 , s1 = sin θ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, car l’axe z1 de la 2ème articulation est parallèle à l’axe y3
• Dans le manipulateur sphérique, le repère 3 peut représenter le repère
d’un effecteur (pince), à savoir T3e = I4
11
3 – Manipulateur cylindrique
d3
Exercice:
4. Écrire une fonction MATLAB qui prend en entrée les valeurs des variables
articulaires du robot et les coordonnées du point P dans le repère de
l’effecteur, et qui renvoie les coordonnées du point P dans le repère de la base
12
4 - Manipulateur anthropomorphe
a3
O0 a2
θ3
θ2
θ1
Remarques:
• Le manipulateur anthropomorphe correspond à un manipulateur planaire
à deux 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é
13
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
α1 = π/2
x1
z1
θ1
15
Manipulateur anthropomorphe
Pour les deux articulations rotoïdes restantes (articulation 2 et 3):
⎡ ⎤
cos θi − sin θi 0 ai cos θi
⎢ sin θ cos θi 0 ai sin θi ⎥
⎢ i ⎥
AAi−1
i−1
i1 (θ
(θii) = ⎢ ⎥ , i ∈ {2, 3}
⎣ 0 0 1 0 ⎦
0 0 0 1
Conclusion: ⎡ ⎤
c1 c23 −c1 s23 s1 c1 (a2 c2 + a3 c23 )
⎢s c −s1 s23 −c1 s1 (a2 c2 + a3 c23 ) ⎥
⎢ 1 23 ⎥
T03 (q) = A01 A12 A23 = ⎢ ⎥
⎣ s23 c23 0 a2 s2 + a3 s23 ⎦
0 0 0 1
où q = [θ1 , θ2 , θ3 ]T et c23 = cos(θ2 + θ3 ), s23 = sin(θ2 + θ3 )
θ6
θ5
θ4
• Les variables des articulations sont numérotées à partir de “4” car le poignet
est typiquement monté sur un porteur à 3 DDL d’un robot à 6 DDL
• Les 3 axes des articulations rotoïdes sont concourants (c'est-à-dire, les axes
se coupent en un même point Q, le point bleu en figure)
• Si les axes z3, z4, z5 ont été fixés et l’axe x3 a été choisi, la direction de x4
et de x5 reste indéterminée
17
Poignet de type rotule
Segment ai αi di θi
4 0 _π/2 0 θ4
5 0 π/2 0 θ5
6 0 0 d6* θ6
Paramètres de DH
z3
α4 = −π/2
x4
θ6
θ5 x3
z4 θ4
θ4
19
Poignet de type rotule
La 2ème transformation est (cf. la 1ère transformation du manip. anthropomorphe):
⎡ ⎤
cos θ5 0 sin θ5 0
Rz (θ5 )Rx (π/2) 03×1 ⎢ sin θ 0 − cos θ5 0⎥
⎢ 5 ⎥
A45 (θ5 ) = =⎢ ⎥
01×3 1 ⎣ 0 1 0 0⎦
0 0 0 1
Graphiquement:
x5
x4
θ5
θ6
z5
θ5
z4
α5 = π/2
θ4
20
Poignet de type rotule
Enfin: ⎡ ⎤
⎡ ⎤ cos θ6 − sin θ6 0 0
0
⎢ Rz (θ6 ) 0⎥ ⎢ sin θ6 cos θ6 0 0 ⎥
A56 (θ6 ) = ⎢ ⎥=⎢ ⎥
⎣ d6 ⎦ ⎢
⎣ 0 0
⎥
1 d6 ⎦
0 0 0 1 0 0 0 1
Graphiquement:
x5
d6
z5
z6
θ6 θ6
θ5 y5
x6
θ4 y6
21
Poignet de type rotule
Conclusion:
⎡ ⎤
c4 c5 c6 − s4 s6 −c4 c5 s6 − s4 c6 c4 s5 c 4 s 5 d6
⎢s c c + c s −s4 c5 s6 + c4 c6 s 4 s 5 d6 ⎥
3 3 4 5 ⎢ 4 5 6 4 6 s4 s5 ⎥
T6 (q) = A4 A5 A6 = ⎢ ⎥
⎣ −s5 c6 s5 s6 c5 c 5 d6 ⎦
0 0 0 1
où q = [θ4 , θ5 , θ6 ]T
θ6
θ5
θ4
a3
Manipulateur
anthropomorphe
θ3
θ2
T03
θ1
Porteur +
θ6
θ5
Problème: Le repère 3 du porteur Poignet de
ne peut pas coïncider avec le repère 3 type rotule
du poignet de type rotule θ4
T36
T06 = T03 T36
23
Manipulateur anthropomorphe avec poignet de type rotule
θ5
θ4 θ6
θ3
θ2
θ1
24
Manipulateur anthropomorphe avec poignet de type rotule
Segment ai αi di θi
1 0 π/2 0 θ1
2 a2 0 0 θ2
3 0 π/2 0 θ3
4 0 _π/2
d4* θ4
5 0 π/2 0 θ5
6 0 0 d6* θ6
θ5 θ7
θ3
θ4
θ2
θ1
Robot LBR
de KUKA
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
Paramètres de DH
7 0 0 d7* θ7
28
Manipulateur DLR
Conclusion ( q = [θ1 , θ2 , . . . , θ7 ]T ):
effecteur
θ4
d3
θ2
θ1
base
q = [ q1 , . . . , q n ] T
est défini. On a qi = θi si l’articulation est rotoïde et qi = di si l’articulation
est prismatique
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
31
Génération de mouvement
La tâche de déplacement d'un robot est spécifiée en définissant un chemin
que le robot doit suivre
Un chemin est une séquence de points définis soit dans l'espace opérationnel
(afin de situer l’effecteur), soit dans l'espace articulaire du robot (afin d'indiquer
les valeurs des paramètres des articulations)
• Dans les cas 3 et 4, la trajectoire étant fixée à tout instant dans l'espace
opérationnel, il est préférable de raisonner dans cet espace
qf Génération de qr (t)
mouvement Commande
dans l’espace
Robot
articulaire
q(t)
33
Génération de mouvement
En revanche :
• La géométrie de la trajectoire dans l'espace articulaire ne peut être imposée.
Entre deux points donnés, l’effecteur se déplace de façon imprévisible mais
répétitive (ce qui peut occasionner des collisions lorsque le robot évolue dans
un environnement encombré)
34
Génération de mouvement
xe (t) q(t)
MGD
Génération de mouvement dans l'espace opérationnel