SlideShare une entreprise Scribd logo
1  sur  107
Télécharger pour lire hors ligne
Eléments de Robotique 
Université Blaise Pascal 
T. Chateau 
2012/2013 
C0 
C1 
C2 
Ck+1 
Cn-2 
Cn-1 
Cn 
Ck+L 
Cm-1 
Cm 
Ck 
z0,z1 
zk 
zk+1 
zk+L 
zm 
zn
Table des matières 
Liste des figures iii 
Liste des tableaux vi 
Introduction 1 
1 Géométrie et cinématique du déplacement 3 
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 
1.2 Géométrie du déplacement . . . . . . . . . . . . . . . . . . . . . . . . 3 
1.2.1 Transformations homogènes . . . . . . . . . . . . . . . . . . . 3 
1.2.1.1 Matrice de transformations homogènes de transla-tion 
pure . . . . . . . . . . . . . . . . . . . . . . . . 4 
1.2.1.2 Matrice de transformation homogène de rotation pure 5 
1.2.1.3 Propriétés des matrices de transformation homogène 7 
1.2.1.4 Rotation autour d’un axe u quelconque . . . . . . . . 12 
1.2.2 Situation d’un solide dans l’espace . . . . . . . . . . . . . . . . 16 
1.2.2.1 Description de la position d’un solide . . . . . . . . . 16 
1.2.2.2 Description de l’orientation d’un solide . . . . . . . . 19 
1.3 Cinématique du déplacement . . . . . . . . . . . . . . . . . . . . . . . 24 
1.3.1 Mouvement circulaire . . . . . . . . . . . . . . . . . . . . . . . 24 
1.3.2 Systèmes d’axes tournants . . . . . . . . . . . . . . . . . . . . 24 
1.3.3 Systèmes d’axes mobiles dans le cas général . . . . . . . . . . 25 
1.3.4 Lois de composition des vitesses . . . . . . . . . . . . . . . . . 26 
2 Modélisation géométrique des robots - Commande en position des 
robots 29 
2.1 Introduction à la modélisation . . . . . . . . . . . . . . . . . . . . . . 29 
2.2 Description de la structure géométrique d’un robot . . . . . . . . . . 30 
2.2.1 Notations et règles générales . . . . . . . . . . . . . . . . . . . 30 
2.2.2 Description des robots à chaîne ouverte simple . . . . . . . . . 30
ii Table des matières 
2.2.2.1 Cadre général . . . . . . . . . . . . . . . . . . . . . . 30 
2.2.2.2 Paramétrage de Denavit-Hartenberg modifié (Khalil 
86) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 
2.2.2.3 Exemples de description . . . . . . . . . . . . . . . . 33 
2.2.3 Extensions aux chaînes fermées et arborescentes . . . . . . . . 36 
2.2.3.1 Cas des chaînes arborescentes . . . . . . . . . . . . . 37 
2.2.3.2 Cas des chaînes fermées . . . . . . . . . . . . . . . . 39 
2.2.3.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . 40 
2.3 Modélisation géométrique directe d’un robot . . . . . . . . . . . . . . 45 
2.3.1 Matrice de transformation de l’organe terminal dans le repère 
atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 
2.3.2 Calcul du modèle géométrique direct d’un robot (MGD) . . . 46 
2.3.3 Exemples de modèles géométriques directs . . . . . . . . . . . 47 
2.3.3.1 MGD du robot AID-5 . . . . . . . . . . . . . . . . . 47 
2.3.3.2 MGD du robot H-80 . . . . . . . . . . . . . . . . . . 51 
2.3.3.3 MGD du robot AFMA . . . . . . . . . . . . . . . . . 55 
2.4 Modélisation géométrique inverse d’un robot . . . . . . . . . . . . . . 55 
2.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 
2.4.2 Position du problème . . . . . . . . . . . . . . . . . . . . . . . 56 
2.4.3 Résolubilité d’un robot manipulateur (introduit par Pieper 68) 56 
2.4.4 Nombre de solutions au problème inverse . . . . . . . . . . . . 57 
2.4.5 Calcul du modèle géométrique inverse (MGI) . . . . . . . . . . 58 
2.4.5.1 Présentation de la méthode . . . . . . . . . . . . . . 58 
2.4.5.2 Solutions aux types d’équations rencontrés . . . . . . 59 
2.4.6 MGI pour des robots à 6 ddl comportant un poignet rotule 
(d’axes concourants) . . . . . . . . . . . . . . . . . . . . . . . 66 
2.4.7 Exemples de calcul de MGI . . . . . . . . . . . . . . . . . . . 68 
2.4.7.1 Calcul du MGI pour le robot AID-5 . . . . . . . . . 68 
2.4.7.2 MGI du robot ACMA H-80 . . . . . . . . . . . . . . 74 
2.5 Commande en position d’un robot . . . . . . . . . . . . . . . . . . . . 75 
2.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 
2.5.2 Génération de mouvement dans l’espace articulaire . . . . . . 76 
2.5.2.1 Interpolation polynomiale . . . . . . . . . . . . . . . 77 
2.5.2.2 Loi bang-bang . . . . . . . . . . . . . . . . . . . . . 83 
2.5.2.3 Loi trapèze : loi bang-bang avec palier de vitesse . . 86 
2.5.3 Génération de mouvement rectiligne dans l’espace opérationnel 94 
Conclusion 97
Table des matières iii 
Bibliographie 97
Table des figures 
1.1 Passage d’un repère Ri à un repère Rf . . . . . . . . . . . . . . . . . 4 
1.2 Translation pure d’un repère Rf par rapport à un repère Ri . . . . . 5 
1.3 Rotation pure autour de l’axe x d’un repère Rf par rapport à un 
repère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
1.4 Rotation pure autour de l’axe y d’un repère Rf par rapport à un 
repère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
1.5 Rotation pure autour de l’axe z d’un repère Rf par rapport à un 
repère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
1.6 Passage direct et inverse d’un repère Ri à un repère Rj . . . . . . . . 9 
1.7 Transformations consécutives . . . . . . . . . . . . . . . . . . . . . . 10 
1.8 Composition à droite et à gauche d’une transformation . . . . . . . . 12 
1.9 Composition à droite d’une translation le long de l’axe y . . . . . . . 12 
1.10 Composition à droite d’une translation le long de l’axe y . . . . . . . 13 
1.11 Rotation autour d’un axe quelconque y . . . . . . . . . . . . . . . . 14 
1.12 Coordonnées cartésiennes . . . . . . . . . . . . . . . . . . . . . . . . . 17 
1.13 Coordonnées cylindriques . . . . . . . . . . . . . . . . . . . . . . . . . 17 
1.14 Coordonnées sphériques . . . . . . . . . . . . . . . . . . . . . . . . . 18 
1.15 Les angles d’Euler (convention z, x, z) . . . . . . . . . . . . . . . . . . 20 
1.16 Les angles de Bryant (convention x, y, z) . . . . . . . . . . . . . . . . 21 
1.17 Les angles de roulis-tangage-lacet (convention z, y, x) . . . . . . . . . 22 
1.18 Les quaternions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 
1.19 Mouvement circulaire. . . . . . . . . . . . . . . . . . . . . . . . . . . 24 
1.20 Système d’axes tournants. . . . . . . . . . . . . . . . . . . . . . . . . 25 
1.21 Système d’axes mobiles : cas général. . . . . . . . . . . . . . . . . . . 25 
1.22 Système d’axes mobiles : cas d’une chaîne articulaire simple. . . . . . 26 
2.1 Robot à structure ouverte simple. . . . . . . . . . . . . . . . . . . . . 31 
2.2 Paramètres géométriques dans le cas d’une structure ouverte simple. 32 
2.3 Structure du robot AID-5. . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4 Structure du robot ACMA H-80. . . . . . . . . . . . . . . . . . . . . 36 
2.5 Robot à structure ouverte arborescente. . . . . . . . . . . . . . . . . . 37 
2.6 Paramétrage nécessaire à un corps à plus de 2 articulations . . . . . 38 
2.7 Repères nécessaires pour décrire une chaîne fermée . . . . . . . . . . 41 
2.8 Synoptique du robot HITACHI-HPR . . . . . . . . . . . . . . . . . . 42 
2.9 Synoptique du robot ASEA-IRB5 . . . . . . . . . . . . . . . . . . . . 43 
2.10 Synoptique équivalent du robot ASEA-IRB5 . . . . . . . . . . . . . . 44 
2.11 Repères nécessaires pour décrire un robot dans un atelier. . . . . . . 46 
2.12 Boucles de génération de mouvement. (a) : dans l’espace articulaire - 
(b) : dans l’espace opérationnel. . . . . . . . . . . . . . . . . . . . . . 75 
2.13 Degré 1 : Evolution de la position, de la vitesse et de l’accélération . 78 
2.14 Degré 3 : Evolution de la position, de la vitesse et de l’accélération . 80 
2.15 Degré 5 : Evolution de la position, de la vitesse et de l’accélération . 82 
2.16 Loi bang-bang : Evolution de la position, de la vitesse et de l’accélé-ration 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 
2.17 Loi trapèze et bang-bang : Evolution de de la vitesse et de l’accéléra-tion 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 
2.18 Loi trapèze : Evolution de la position, de la vitesse et de l’accélération 88 
2.19 Loi trapèze : Evolution de la vitesse . . . . . . . . . . . . . . . . . . 89 
2.20 Loi trapèze : Evolution de la vitesse . . . . . . . . . . . . . . . . . . 90 
2.21 Loi trapèze : Evolution de la vitesse . . . . . . . . . . . . . . . . . . 91 
2.22 Loi trapèze : cas où la vitesse n’est pas saturée . . . . . . . . . . . . 93
Liste des tableaux 
2.1 Systèmes d’equations possibles . . . . . . . . . . . . . . . . . . . . . . 60
Introduction 1 
Introduction
2 Introduction
Chapitre 1 
Géométrie et cinématique du 
déplacement 
1.1 Introduction 
L’étude de la robotique nécessite des connaissances de base en Géométrie et en 
cinématique. Lorsque l’on désire commander un robot, il est nécessaire de situer ses 
différentes parties mobiles les unes par rapport aux autres. Pour ce faire, on associe 
un repère à chaque partie du robot (socle, effecteur, articulations). Le passage d’un 
repère à un autre (position, orientation) s’exprime sous la forme d’une matrice de 
passage. 
La géométrie, et plus particulièrement les coordonnées et transformations ho-mogènes 
sont des outils indispensables et très utilisés en robotique, qui font l’objet 
d’une grande partie de ce chapitre. 
La cinématique du déplacement, à travers la loi de composition des vitesses, fait 
également partie des bases de la robotique. Elle est abordée dans la deuxième partie 
du chapitre 
1.2 Géométrie du déplacement 
1.2.1 Transformations homogènes 
Dans le cas d’une transformation homogène, le type de représentation est matri-ciel. 
Le passage d’un repère initial Ri à un repère final Rf s’exprime par l’intermé-diaire 
d’une matrice M, appelée matrice de changement de repère, matrice de 
passage ou matrice de transformation homogène (cf fig. 1.1). En robotique,
4 Géométrie et cinématique du déplacement 
yi 
xi 
zi 
Ri 
zf yf 
Rf 
xf 
M 
Figure 1.1 – Passage d’un repère Ri à un repère Rf 
. 
cette matrice de dimension (4 × 4), notée iMf s’exprime sous la forme : 
iTf = iMf = (isj 
inj 
iaj 
iPj) = 
 
 
sx nx ax Px 
sy ny ay Py 
sz nz az Pz 
0 0 0 1 
 
 
= 
 
iRf 
iPf 
0 1 
 
(1.1) 
où isj , inj et iaj sont les vecteurs unitaires, suivant les axes xj , yj et zj du repère 
Rj exprimés dans le repère Ri, où iPj est le vecteur exprimant l’origine du repère 
Rj dans le repère Ri, et avec : 
– iRf : matrice (3×3) des rotations donnant l’orientation notée iAf (de Rf dans 
Ri) 
– iPf : matrice (3 × 1) des translations donnant la position 
iMf = 
 
iRf 
iPf 
0 1 
 
= 
 
iAf 
iPf 
0 1 
 
= 
 
I3 
iPf 
0 1 
 
× 
 
iAf 0 
0 1 
 
(1.2) 
A l’aide de la matrice iMf , il est possible d’exprimer les coordonnées d’un point 
quelconque P de l’espace dans le repère Ri à partir de ces coordonnées homogènes 
exprimées dans le repère Rf par la relation : 
 
 
x′ 
y′ 
z′ 
1 
 
 
Ri 
=i Mf . 
 
 
x 
y 
z 
1 
 
 
Rf 
= 
 
iRf 
iPf 
0 1 
 
. 
 
 
x 
y 
z 
1 
 
 
Rf 
(1.3) 
1.2.1.1 Matrice de transformations homogènes de translation pure 
Lorsque deux repères sont uniquement liés par une translation, il est possible 
de passer de l’un à l’autre en utilisant une matrice de transformation homogène de
1.2 Géométrie du déplacement 5 
yi 
xi 
zi 
Ri 
xf 
yf 
zf 
Rf 
M 
c 
b a 
Figure 1.2 – Translation pure d’un repère Rf par rapport à un repère Ri 
. 
translation pure. Nous utiliserons les notations suivantes : 
– Trans(a, b, c) pour indiquer une translation (a selon l’axe x, b selon l’axe y et 
c selon l’axe z) 
– Trans(x, a) pour indiquer une translation a selon l’axe x 
– Trans(y, b) pour indiquer une translation b selon l’axe y 
– Trans(z, c) pour indiquer une translation c selon l’axe z 
Considérons une translation T composée de : 
– d’une translation a selon l’axe x → Trans(a, 0, 0) = Trans(x, a) 
– d’une translation b selon l’axe y → Trans(0, b, 0) = Trans(y, b) 
– d’une translation c selon l’axe z → Trans(0, 0, c) = Trans(z, c) 
La figure (1.2) montre un exemple de cette translation, associée à la matrice de 
transformation homogène de translation pure iMf . Les matrices de translation sont 
liées par la relation suivante : 
Trans(a, b, c) = Trans(a, 0, 0).Trans(0, b, 0).Trans(0, 0, c) 
= Trans(x, a).Trans(y, b).Trans(z, c) 
(1.4) 
La matrice de transformation homogène de translation pure iMf associée à cette 
translation s’exprime alors : 
M = 
 
 
a 
I3 b 
c 
0 0 0 1 
 
 
= 
 
 
a 
I3 0 
0 
0 0 0 1 
 
 
. 
 
 
0 
I3 b 
0 
0 0 0 1 
 
 
. 
 
 
0 
I3 0 
c 
0 0 0 1 
 
 
(1.5) 
1.2.1.2 Matrice de transformation homogène de rotation pure 
Lorsque deux repères sont uniquement liés par une rotation, il est possible de 
passer de l’un à l’autre en utilisant une matrice de transformation homogène de 
rotation pure. Nous utiliserons les notations suivantes :
6 Géométrie et cinématique du déplacement 
yi 
xi 
zi 
cos θx 
Ri 
xf 
yf 
zf 
Rf 
cos θx 
sin θx 
−sin θx 
θx 
θx 
θx 
Figure 1.3 – Rotation pure autour de l’axe x d’un repère Rf par rapport à un 
repère Ri 
. 
– Rot(x, θx) pour indiquer une rotation (θx autour de l’axe x) 
– Rot(y, θy) pour indiquer une rotation (θy autour de l’axe y) 
– Rot(z, θz) pour indiquer une rotation (θz autour de l’axe z) 
Dans la matrice de transformation homogène, la rotation est décrite par la matrice 
R présentée dans l’équation (1.1) page 4. Lorsque la rotation est nulle autour des 
trois axes, R devient la matrice identité (c’est le cas pour les rotations pures) : 
R = I3 = 
 
 
1 0 0 
0 1 0 
0 0 1 
 
 (1.6) 
Exemple 1 : Une rotation θx autour de l’axe x (cf fig. 1.3). 
R = 
 
 
1 0 0 
0 cos θx −sin θx 
0 sin θx cos θx 
 
 = 
 
 
1 0 0 
0 cθx −sθx 
0 sθx cθx 
 
 (autre notation) 
(1.7) 
Notons (iRf , jRf , kRf ) la base associée au repère Rf et (iRi , jRi , kRi) la 
base associée au repère Ri. La matrice de rotation R est obtenue en 
décrivant (iRf , jRf , kRf ) en fonction de (iRi , jRi , kRi) : 
iRf = 1.iRi + 0.jRi + 0.kRi = isf 
jRf = 0.iRi + cos θx.jRi + sin θx.kRi = inf 
kRf = 0.iRi − sin θx.jRi + cos θx.kRi = iaf 
(1.8)
1.2 Géométrie du déplacement 7 
yi 
xi 
zi 
Ri 
xf 
yf 
zf 
Rf 
θy 
θy 
θy 
Figure 1.4 – Rotation pure autour de l’axe y d’un repère Rf par rapport à un 
repère Ri 
. 
Exemple 2 : Une rotation θy autour de l’axe y (cf fig. 1.4). 
R = 
 
 
cos θy 0 sin θy 
0 1 0 
−sin θy 0 cos θy 
 
 = 
 
 
cθy 0 sθy 
0 1 0 
−sθy 0 cθy 
 
 (autre notation) 
(1.9) 
Exemple 3 : Une rotation θz autour de l’axe z (cf fig. 1.5). 
R = 
 
 
cos θz −sin θz 0 
sin θz cos θz 0 
0 0 1 
 
 = 
 
 
cθz −sθz 0 
sθz cθz 0 
0 0 1 
 
 (autre notation) 
(1.10) 
Rq. : Une rotation autour d’un axe principal x, y ou z laisse 
inchangé l’axe de rotation considéré. 
1.2.1.3 Propriétés des matrices de transformation homogène 
Nous avons vu (eq. 1.1 page 4) qu’une matrice de transformation homogène T 
peut se mettre sous la forme : 
T = 
 
 
sx nx ax Px 
sy ny ay Py 
sz nz az Pz 
0 0 0 1 
 
 
= 
 
A P 
0 1 
 
(1.11)
8 Géométrie et cinématique du déplacement 
yi 
xi 
zi 
Ri 
xf 
yf 
zf 
Rf 
θz 
θz 
θz 
Figure 1.5 – Rotation pure autour de l’axe z d’un repère Rf par rapport à un 
repère Ri 
. 
avec 
– A : matrice (3 × 3) des rotations donnant l’orientation (de Rf dans Ri) 
– P : matrice (3 × 1) des translations donnant la position (de Rf dans Ri) 
Lorsque la tranformation, entre le repère de départ et la repère d’arrivée est une 
translation pure, on a A = I3. Dans le cas d’une rotation pure, on a P = O3 = 
(0, 0, 0)T 
Propriété 1 La matrice de rotation A est orthogonale : 
A−1 = AT (1.12) 
Les éléments de la matrice A de rotation représentent les cosinus directeurs d’orien-tation 
(s, n, a). Elle ne contient que trois paramètres indépendants sur les 9 qui la 
constituent (trois angles de rotations). Un des vecteurs s, n ou a se déduit du produit 
vectoriel des deux autres, car ils constituent une base orthonormée. Par exemple : 
s = na 
n.a = 0 
||n|| = ||a|| = 1 
(1.13) 
Propriété 2 Soit la matrice iTj de transformation homogène prenant le repère Ri 
pour l’amener sur le repère Rj . Si jTi est la matrice de transformation homogène 
prenant le repère Rj pour l’amener sur le repère Ri, alors iTj et jTi sont liés par la 
relation :  
iTj 
−1 
= jTi (1.14)
1.2 Géométrie du déplacement 9 
yi 
xi 
zi 
Ri 
zj yj 
Rj 
xj 
iTj 
jTi = (iTj)−1 
Figure 1.6 – Passage direct et inverse d’un repère Ri à un repère Rj 
. 
La figure 1.6 illustre cette propriété. Soit le point P1 de coordonnées homogènes 
iv1 = (ivx,i vy,i vz, 1)T dans Ri et jv1 = (jvx,j vy,j vz, 1)T dans Rj .On a : 
jv1 = jTi.iv1 (a) 
iv1 = iTj .jv1 (b) 
(1.15) 
En multipliant par (iTj)−1 la relation (b) de l’équation (1.15), on obtient : 
(iTj)−1.iv1 = (iTj)−1.iTj .jv1 (1.16) 
En utilisant la relation (a) de (1.15), on en déduit : 
jTi = 
iTj 
 
−1 
(1.17) 
Propriété 3 Soit la matrice T de transformation homogène effectuant une rotation 
d’angle θu autour de l’axe u (indifférement x, y ou z). La matrice inverse T−1 est 
également une matrice de transformation homogène effectuant une rotation autour 
de l’axe u, mais d’angle −θu : 
(T)−1 = (Rot(u, θu))−1 = Rot(u,−θu) = Rot(−u, θu) (1.18) 
Par convention sur le sens de rotation, on a : 
Rot(u,−θu) = Rot(−u, θu) (1.19) 
Exemple : rotation autour de l’axe x. 
Rot(x,−θx) = 
 
 
1 0 0 0 
0 c(−θx) −s(−θx) 0 
0 s(−θx) c(−θx) 0 
0 0 0 1 
 
 
= 
 
 
1 0 0 0 
0 cθx sθx 0 
0 −sθx cθx 0 
0 0 0 1 
 
 
= (Rot(x, θx))T 
(1.20)
10 Géométrie et cinématique du déplacement 
y0 
x0 
z0 
R0 x1 
y1 
z1 
R1 
xk−1 
zk−1 
Rk−1 
yk−1 
xk 
yk 
zk 
Rk 
0T1 
k−1Tk 
0Tk 
Figure 1.7 – Transformations consécutives 
. 
En utilisant la propriété 1, on en déduit : 
Rot(x,−θx) = (Rot(x, θx))T = (Rot(x, θx))−1 (1.21) 
Cette propriété est également vraie pour les matrices de transformation homogène 
de translation pure : 
Trans(u, d) = Trans(−u, d) = Trans(u,−d) (1.22) 
Propriété 4 L’inverse d’une matrice de transformation homogène peut être mis 
sous la forme : 
T−1 = 
 
 
−sT .P 
AT −nT .P 
−aT .P 
0 1 
 
= 
 
AT −AT .P 
0 1 
 
(1.23) 
Propriété 5 Si un repère R0 a subit K transformations consécutives, et si la ieme 
(i = 1, 2, .., k) est définie par rapport au repère Ri−1, alors : 
0Tk =0 T1.1T2.2T3.3T4...k−1Tk (1.24) 
La figure 1.7 illustre cette propriété. 
Propriété 6 La composition de deux matrices n’est pas commutative 
T1.T2 = 
 
A1 P1 
0 1 
 
. 
 
A2 P2 
0 1 
 
= 
 
A1.A2 A1.P2 + P1 
0 1 
 
(1.25)
1.2 Géométrie du déplacement 11 
T2.T1 = 
 
A2 P2 
0 1 
 
. 
 
A1 P1 
0 1 
 
= 
 
A2.A1 A2.P1 + P2 
0 1 
 
(1.26) 
Le produit des matrices de rotation n’étant pas commutatif, on en déduit : 
T1.T26= T2.T1 (1.27) 
Propriété 7 Dans le cas de transformations consécutives autour du même axe u, 
ce dernier reste inchangé par la transformation : 
Rot(u, θ1).Rot(u, θ2) = Rot(u, θ1 + θ2) (1.28) 
et, 
Trans(u, d).Rot(u, θ1) = Rot(u, θ1).Trans(u, d) (1.29) 
Propriété 8 Soit un repère Rj , défini par une tansformation iTj du repère Ri. Si 
Rj subit une transformation T (définie par rapport au repère Ri), alors la transfor-mation 
totale amenant au repère final Rf s’exprime sous la forme : 
iTf = T.iTj (1.30) 
Si cette même transformation, amenant Rj sur Rf , est définie dans Rj par T′, alors 
on a également : 
iTf =i Tj .T′ (1.31) 
On en déduit la relation suivante : 
T.iTj =i Tj .T′ (1.32) 
Cette relation est illustrée par la figure 1.8. 
Lorsqu’un repère Rj , défini par rapport à un repère Ri, subit une transformation 
exprimée par rapport à ce même repère Rj , alors la transformation totale est 
déduite par la composition à gauche de cette transformation. 
Remarque sur la composition des transformations 
Une composition à droite s’applique au repère final. (iTj = 
Rot(x, θx)R0 .Trans(y, d)R1). La figure 1.9 illustre ce propos. 
Une composition à gauche s’applique au repère initial. 
(iTj =Rot(x, θx)R0 .Trans(y, d)R0). La figure 1.10 illustre ce propos.
12 Géométrie et cinématique du déplacement 
iTj Rf 
yi 
xi 
zi 
Ri xj 
yj 
zj 
Rj 
xf 
zf 
yf 
T′ 
T.iTj 
Figure 1.8 – Composition à droite et à gauche d’une transformation 
. 
y0 
z1 
x0 
z0 
R0 
y1 
x1 
R1 
x2 
y2 
z2 
R2 
Trans(y, d) 
Rot(x, θx) 
θx 
θx 
Figure 1.9 – Composition à droite d’une translation le long de l’axe y 
. 
1.2.1.4 Rotation autour d’un axe u quelconque 
Soit un vecteur unitaire u quelconque. Soit Ri, un repère tel que son origine 
coïncide avec celle du vecteur u. Les coordonnées de u sont alors, dans Rj : 
u = (ux, uy, uz)T . 
Soit Rj , un repère tel que : 
– son origine coïncide avec celle du vecteur u, 
– son axe zj se confonde avec le vecteur u. 
La transformation homogène permettant le passage du repère Ri au repère Rj peut 
être décomposée en : 
– Rot(z, α) : une rotation autour de l’axe z d’un angle α tel que u ∈ 
au plan (zf , yf ), 
– Rot(x, β) : une rotation autour de l’axe x d’un angle β.
1.2 Géométrie du déplacement 13 
y0 
x0 
z0 
R0 y1 
x1 
z1 
R1 
x2 
y2 
z2 
R2 
Trans(y, d) 
Rot(x, θx) 
θx 
Figure 1.10 – Composition à droite d’une translation le long de l’axe y 
. 
On obtient la relation suivante : 
iTj = Rot(z, α).Rot(x, β) (1.33) 
Cette relation est illustrée sur la figure 1.11 Le repère Ri subit donc deux transfor-mations 
successives : 
Ri == Rot(z, α) == Rf == Rot(x, β) == Rj (1.34) 
En développant la relation iTj =Rot(z, α).Rot(x, β), on obtient : 
 
 
cα −sα 0 0 
sα cα 0 0 
0 0 1 0 
0 0 0 1 
 
 
. 
 
 
1 0 0 0 
0 cβ −sβ 0 
0 sβ cβ 0 
0 0 0 1 
 
 
= 
 
 
cα −sα.cβ sα.sβ 0 
sα cα.cβ −cα.sβ 0 
0 sβ cβ 0 
0 0 0 1 
 
 
(1.35) 
A partir de la troisième colonne de la matrice iTj , on peut donc extraire les 
coordonnées du vecteur u, exprimées dans le repère Ri : 
u = 
 
 
ux 
uy 
uz 
 
 = 
 
 
sα.sβ 
−cα.sβ 
cβ 
 
 = iaj (1.36) 
Tourner autour de l’axe u (défini par le vecteur unitaire u) d’un angle θ, revient 
donc à tourner autour de l’axe zj . D’où, d’après la propriété 8, définie page 11, on 
en déduit que : 
Rot(u, θ).iTj =i Tj .Rot(z, θ) (1.37) 
soit : 
Rot(u, θ) =i Tj .Rot(z, θ).(iTj)−1 (1.38)
14 Géométrie et cinématique du déplacement 
yi 
xi 
zi 
Ri 
yj 
xj 
zj 
Rj 
xf 
yf 
zf 
Rf 
α 
α 
α 
β 
β 
β 
u 
Figure 1.11 – Rotation autour d’un axe quelconque y 
. 
d’où : 
Rot(u, θ) = Rot(z, α).Rot(x, β).Rot(z, θ).Rot(z,−α).Rot(x,−β) (1.39) 
En développant cette relation, on obtient : 
Rot(u, θ) = 
 
A(u, θ) 0 
0 1 
 
(1.40) 
avec : 
A(u, θ) = 
 
 
u2 
x.(1 − cθ) + cθ uxuy.(1 − cθ) − uz.sθ uxuz.(1 − cθ) + uy.sθ 
2z 
uxuy.(1 − cθ) + uz.sθ u.(1 − cθ) + cθ uyuz.(1 − cθ) − ux.sθ 
uxuz.(1 − cθ) − uy.sθ uyuz.(1 − cθ) + ux.sθ u.(1 − cθ) + cθ 
2y 
 
(1.41) 
On préfère utiliser la relation suivante (formule de Rodrigues) : 
A(u, θ) = u.uT .(1 − cθ) + I3.cθ + ˆu.sθ (1.42) 
avec : 
ˆu = 
 
 
0 −uz uy 
uz 0 −ux 
−uy ux 0 
 
 (1.43) 
ˆu est appelée matrice de pré produit vectoriel. En effet, on a la relation : 
u ∧ V = ˆu.V (1.44)
1.2 Géométrie du déplacement 15 
pour tout vecteur V . 
 
 
ux 
uy 
uz 
 
 ∧ 
 
 
Vx 
Vy 
Vz 
 
 = 
 
 
uy.Vz − uz.Vy 
uz.Vx − ux.Vz 
ux.Vy − uy.Vx 
 
 = 
 
 
0 −uz uy 
uz 0 −ux 
−uy ux 0 
 
. 
 
 
Vx 
Vy 
Vz 
 
 
(1.45) 
Remarque représentation exponentielle eˆu. 
Nous avons vu que A(u, θ) = u.uT .(1 − cθ) + I3.cθ + ˆu.sθ avec : 
ˆu = 
 
 
0 −uz uy 
uz 0 −ux 
−uy ux 0 
 
 (1.46) 
De plus, on a : 
u.uT = 
 
 
ux 
uy 
uz 
 
.(ux uy uz) = 
 
 
2y 
u2 
x uxuy uxuz 
uxuy uuyuz 
uxuz uyuz u2z 
 
 (1.47) 
et ux 
2 + ut 
2 + uz 
2 = 1 
ˆu2 = ˆu.ˆu = u.uT − I3 = 
 
 
u2 
x − 1 uxuy uxuz 
uxuy u2y − 1 uyuz 
uxuz uyuz u2z 
− 1 
 
 (1.48) 
Il est donc possible de réécrire la matrice de rotation sous la forme (autre forme de 
la formule de Rodrigues) : 
A(u, θ) = I3 + ˆu.sθ + ˆu2.(1 − cθ) (1.49) 
En développant en série de Mac Laurin les fonctions sinus et cosinus, on a : 
A(u, θ) = I3 + ˆu. 
 
θ − 
θ3 
3! 
+ 
θ5 
5! − 
θ7 
7! 
 
+ ˆu2. 
+ ... 
 
θ2 
2! − 
θ4 
4! 
+ 
 
θ6 
6! − ... 
(1.50) 
Comme on a ˆu3 = −ˆu, ˆu4 = −ˆu2, ˆu5 = ˆu et ˆu6 = ˆu2, 
on a donc : 
A(u, θ) = I3 + ˆu.θ + 
(ˆu.θ)2 
2! 
+ 
(ˆu.θ)3 
3! 
+ 
(ˆu.θ)4 
4! 
+ 
(ˆu.θ)5 
5! 
+ ... (1.51) 
Ce qui représente le développement en séries de Mac Laurin de la fonction exponen-tielle. 
Il vient que : 
A(u, θ) = exp(ˆu, θ) = eˆu. (1.52)
16 Géométrie et cinématique du déplacement 
Exemple : Rotation autour de l’axe x 
A(x, θ) = eˆu. = I3 + ˆu.sθ + ˆu2.(1 − cθ) (1.53) 
avec u = (1, 0, 0)T 
A(x, θ) = 
 
 
1 0 0 
0 1 0 
0 0 1 
 
+ 
 
 
0 0 0 
0 0 −1 
0 1 0 
 
.sθ+ 
 
 
0 0 0 
0 −1 0 
0 0 −1 
 
.(1−cθ) 
(1.54) 
A(x, θ) = 
 
 
1 0 0 
0 cθ −sθ 
0 sθ cθ 
 
 (1.55) 
1.2.2 Situation d’un solide dans l’espace 
La situation d’un solide dans l’expace est exprimée par une matrice de transfor-mation 
homogène de la forme : 
T = 
 
 
sx nx ax Px 
sy ny ay Py 
sz nz az Pz 
0 0 0 1 
 
 
= 
 
A P 
0 1 
 
(1.56) 
avec : 
– A matrice (3×3) des rotations donnant l’oriantation du solide dans un repère 
fixe R0 
– P matrice (3×1) des translations donnant la position du solide dans un repère 
fixe R0 
Nous allons présenter quelques méthodes de description usuelles en robotique, pour 
décrire la situation d’un repère Rn, associé à un solide quelconque, dans un repère 
de référence R0. Nous aborderons d’abord les différentes méthodes permettant de 
représenter la position du solide, puis celles permettant de paramétrer l’orientation 
de ce même solide. 
1.2.2.1 Description de la position d’un solide 
La position de l’origine d’un repère lié à un solide Rn, par rapport à un repère 
de référence R0, peut être définie par différents types de coordonnées : 
– cartésiennes, 
– cylindriques, 
– sphériques. 
Le choix d’une description est guidé par les caractéristiques du manipulateur (forme 
du volume de travail) d’une part, et par la tâche à réaliser d’autre part.
1.2 Géométrie du déplacement 17 
y0 
x0 
z0 
R0 
xn 
yn 
zn 
Rn 
T 
Pz 
P Px y 
Figure 1.12 – Coordonnées cartésiennes 
. 
y0 
x0 
z0 
R0 
xn 
yn 
zn 
Rn 
T 
α 
r 
z 
Figure 1.13 – Coordonnées cylindriques 
. 
Coordonnées cartésiennes C’est la méthode la plus générale. Elle donne direc-tement 
les composantes du vecteur de position P. Cette représentation est utilisée 
lorsque la structure du robot est cartésienne (par exemple : robot cartésien Afma, 
Acma-p80, Ibm-7565,...). La figure 1.12 illustre cette représentation. La matrice 
de position est la suivante : 
Pcar = 
 
 
Px 
Py 
Pz 
 
 (1.57) 
Coordonnées cylindriques Cette représentation est utilisée lorsque la structure 
du robot est cylindrique (par exemple : robot Acma th8, Cincinnati-t3-363,...). 
La figure 1.13 illustre cette représentation La matrice de position est la suivante : 
Pcyl = 
 
 
r.cα 
rsα 
z 
 
 (1.58)
18 Géométrie et cinématique du déplacement 
y0 
x0 
z0 
R0 
xn 
yn 
zn 
Rn 
T 
α 
β 
r 
Figure 1.14 – Coordonnées sphériques 
. 
On peut exprimer les coordonnées cylindriques en fonction des coordonnées caté-siennes 
par les relations suivantes : 
r = 
p 
P2 
x + P2 
y 
α = atan2(Py, Px) 
z = Pz 
(1.59) 
où la fonction atan2 permet le calcul de l’arc-tangente à partir de deux arguments. 
Le résultat α ∈ [−180; 180], le quadrant étant fixé par l’analyse du signe de Px et 
de Py. Seul les cas Px = 0 et Py = 0 constitue une singularité (impossibilité de 
solution). 
Coordonnées sphériques Cette représentation est utilisée lorsque la structure 
du robot est spérique (par exemple : robot Unimation-1000/2000/4000, Psa-barnabé, 
Stanford,...). La figure 1.14 illustre cette représentation. La matrice 
de position est la suivante : 
Psph = 
 
 
r.cα.sβ 
r.sα.sβ 
r.cβ 
 
 (1.60) 
On peut exprimer les coordonnées spériques en fonction des coordonnées carté-siennes, 
par les relations qui suivent : 
r = 
p 
P2 
x + P2 
y + P2 
z 
α = atan2(Py, Px) si β6= 0 ou α = 0 si β = 0 
α = atan2 
  
Py 
sα 
, Pz 
! 
si α6= 0 ou β = atan2(Px, Pz) si α = 0 
(1.61)
1.2 Géométrie du déplacement 19 
1.2.2.2 Description de l’orientation d’un solide 
Pour décrire d’orientation d’un solide, le choix de trois paramètres se révèle 
parfois difficile. Aussi, on se ramène à des représentations redondantes. Les méthodes 
les plus utilisées sont les suivantes : 
– les cosinus directeurs, 
– les angles d’Euler, 
– les angles de Bryant, 
– les angles Roulis-Tangage-Lacet, 
– les paramètres d’Euler (ou Olingue-Rodrigues, quaternions). 
Les cosinus directeurs La description de l’orientation d’un solide par les cosinus 
directeurs est donnée par les trois vecteurs s, n et a constituant 9 éléments appelés 
cosinus directeurs. La matrice d’orientation  est la suivante : 
 
sx nx ax 
sy ny ay 
sz nz az 
 
 (1.62) 
La connaissance de deux vecteurs choisis parmi les 3 est suffissante (le troisième 
est obtenu par le produit vectoriel des deux autres). 3 composantes seulement sont 
indépendantes, mais dans le cas général, il est difficile de les fixer. La description de 
l’orientation d’un solide par les cosinus directeurs est une méthode redondante. 
Les angles d’Euler Dans ce cas, l’orientation d’un repère Rn associé à un solide 
quelconque, dans un repère référence R0, est déterminée par la spécification de 3 
angles correspondants à trois rotations successives (z, x, z). La figure 1.15 illustre 
cette méthode de desciption de l’orientation. Le plan (xn, yn) coupe le plan (x0, y0) 
suivant une droite ON appelée ligne modale, perpendiculaire aux axes z0 et zn. Son 
sens positif est donné par le produit vectoriel zn ∧ z0. Comme le montre la figure 
1.15, les angles d’Euler sont définis comme suit : 
– φ (précession) : angle entre x0 et ON tel que 0 ≤ φ ≤ 3600 
– θ (nutation) : angle entre z0 et zn tel que 0 ≤ θ ≤ 1800 
– ψ (rotation propre) : angle entre ON et xn tel que 0 ≤ ψ ≤ 3600 
φ et ψ sont mesurés dans le sens donné par la règle du ‘“tire-bouchon” respectivement 
autour des axes Z0 et Zn. 
La composition de ces trois rotations permet de calculer la matrice d’orientation. 
En effet, on a : 
AEul = E(z, φ).A(x, θ).A(z, ψ) (1.63) 
d’où 
AEul = 
 
 
cφ.cψ − sφ.cθ.sψ −cφ.sψ − sφ.cθ.cψ sφ.sθ 
sφ.cψ + cφ.cθ.sψ −sφ.sψ + cφ.cθ.cψ −cφ.sθ 
sθ.sψ sθ.cψ cθ 
 
 (1.64)
20 Géométrie et cinématique du déplacement 
y0 
x0 
z0 
R0 
xn 
yn 
zn 
Rn 
N 
O 
ψ 
ψ 
θ 
θ 
φ 
φ 
pl(x0, y0) 
pl(xn, yn) 
Figure 1.15 – Les angles d’Euler (convention z, x, z) 
. 
Remarque : Au lieu de prendre par convention l’ordre (z, x, z), cer-tains 
auteurs prennent l’ordre (z, y, z), ce qui donne : 
AEul = A(z, φ).A(y, θ).A(z, ψ) (1.65) 
On peut montrer, que pour passer des cosinus directeurs aux angle d’Euler, les 
relations suivantes sont utilisables : 
φ = atan2(−ax, ay) à 1800 près (φ = atan2(ax,−ay) + 1800) (3éme colonne) 
θ = atan2(sφ.ax − cφ.ay, az) (3éme colonne) 
ψ = atan2(−cφ.nx − sφ.ny, cφ.sx + sφ.sy) (1/2éme colonne) 
(1.66) 
Dans le cas où ax et ay sont nuls, les axes z0 et zn sont confondus ; donc θ est nul ou 
égal à 1800. Cette situation correspond à un cas singulier, dans lequel, les rotations 
φ et psi s’effectuent autour du même axe et c’est la quantité φ + ψ qui intervient. 
Lorsque θ = 0, on a alors : 
AEul = A(z, φ + ψ) (1.67) 
on en déduit que φ + ψ =antan2(−nx, ny) (2ème colonne de la matrice de rotation 
autour de z) et φ = 0 
Les angles de Bryant Comme pour les angles d’Euler, l’orientation d’un repère 
Rn, associé à un solide quelconque, dans un repère de référence R0, est déterminée
1.2 Géométrie du déplacement 21 
y0 
x0 
z0 
φ2 
zn yn 
R0 
xn 
Rn 
y1 
x1 
z1 
y2 
x2 
z2 
φ1 
φ1 
φ1 φ2 
φ2 
φ3 
φ3 
φ3 
Figure 1.16 – Les angles de Bryant (convention x, y, z) 
. 
par la spécification de 3 angles correspondants à 3 rotations successives (x, y, z). La 
figure 1.16 illustre cette description de l’orientation. 
La composition de ces trois notations permet de calculer la matrice d’orientation. 
En effet, on a : 
ABry = A(x, φ1).A(y, φ2).A(z, φ3) (1.68) 
d’où 
ABry = 
 
 
cφ2.cφ3 cφ1.sφ3 + sφ1.sφ2.cφ3 sφ1.sφ3 − cφ1.sφ2.cφ3 
−cφ2.sφ3 cφ1.cφ3 − sφ1.sφ2.sφ3 sφ1.cφ3 + cφ1.sφ2.sφ3 
sφ2 −sφ1.cφ2 cφ1.cφ2 
 
 (1.69) 
On peut montrer, que le passage des cosinus directeurs aux angles de Bryant est 
obtenu par les relations suivantes : 
φ1 = atan2(−nz, az) à 1800 près (φ1 = atan2(nz,−az) + 1800) (3/4éme colonne) 
φ2 = atan2(sz, cφ1.az − sφ1.nz) (3éme ligne) 
φ3 = atan2(cφ1.nx + sφ1.ax, cφ1.ny + sφ1.ay) (3/4éme colonne) 
(1.70) 
Les roulis-tangage-lacet Comme pour les deux représentations précédentes, 
l’orientation d’un repère Rn, associé à un solide quelconque, dans un repère de 
référence R0, est déterminée par la spécification de 3 angles correspondants à 3 ro-tations 
successives (z, y, x). La figure 1.17 illustre cette description de l’orientation. 
La composition de ces trois rotations permet de calculer la matrice d’orientation : 
ARTL = A(z, φ).A(y, θ).A(x, ψ) (1.71)
22 Géométrie et cinématique du déplacement 
y0 
x0 
z0 
R0 
xn 
yn 
zn 
Rn 
y1 
x1 
z1 
x2 
z2 
φ 
φ 
φ 
θ 
θ 
θ 
ψ 
ψ 
ψ 
Figure 1.17 – Les angles de roulis-tangage-lacet (convention z, y, x) 
. 
d’où 
ARTL = 
 
 
cφ.cθ cφ.sθ.sψ − sφ.cψ cφ.sθ.cψ + sφ.sψ 
sφ.cθ sφ.sθ.sψ + cφ.cψ sφ.sθ.cψ − cφ.sψ 
−sθ cθ.sψ cθ.cψ 
 
 (1.72) 
On peut montrer, que le passage des cosinus directeurs aux angles RTL est obtenu 
par les relations suivantes : 
φ = atan2(sy, sx) à 1800 près (φ = atan2(−sy,−sx) + 1800) (1ère colonne) 
θ = atan2(−sz, cφ.sx + sφ.sy) (1ère colonne) 
ψ = atan2(sφ.ax − cφ.ay,−sφ.nx + cφ.ny) (3/4éme colonne) 
(1.73) 
IL y a une singularité si sy = sx = 0 
Les paramètres d’Euler (les quaternions) Dans ce cas, l’orientation d’un re-père 
Rn, associé à un solide quelconque, dans un repère de référence R0, est déter-minée 
par la spécification des 4 paramètres (λ1, λ2, λ3, λ4) qui décrivent une rotation 
unique équivalente θ ∈ [−180; 180] autour d’un axe de vecteur unitaire ~u, tels que : 
λ1 = cos 
 
 
2 
 
λ2 = ux. sin 
 
 
2 
 
λ3 = uy. sin 
 
2 
 
λ4 = uz. sin 
 
2 
 
(1.74)
1.2 Géométrie du déplacement 23 
y0 
x0 
z0 
R0 
θ ~u 
xn 
yn 
zn 
Rn 
Figure 1.18 – Les quaternions. 
. 
Ces paramètres ont les propriétés suivantes : 
2λ21 
− 1 = cos θ (a) et λ21 
+ λ22 
+ λ23 
+ λ24 
= 1 (b) (1.75) 
La figure 1.18 illustre cette description de l’orientation La matrice d’orientation est 
la suivante : 
AQuat = 
 
 
2.(λ21 
+ λ22 
) − 1 2.(λ2.λ3 − λ1.λ4) 2.(λ2.λ4 + λ1.λ3) 
2.(λ2.λ3 + λ1.λ4) 2.(λ21 
+ λ23 
) − 1 2.(λ3.λ4 − λ1.λ2) 
2.(λ2.λ4 − λ1.λ3) 2.(λ3.λ4 + λ1λ2) 2.(λ21 
+ λ24 
) − 1 
 
 (1.76) 
Pour démontrer cette relation, il suffit de remplacer les expressions des paramètres 
(λ1, λ2, λ3, λ4) dans la matrice et de comparer avec celle obtenue pour une rotation 
autour d’un axe ~u quelconque. 
On peut montrer, que le passage des cosinus directeurs aux quaternions (para-mètres 
d’Euler) est obtenu par les relations suivantes : 
λ1 = 1 
p 
sx + ny + az + 1 
2 . 
λ2 = 1 
p 
sx − ny − az + 1 
2 .sign(nx − ay). 
λ3 = 1 
p 
−sx + ny − az + 1 
2 .sign(ax − sz). 
λ4 = 1 
p 
−sx − ny + az + 1 
2 .sign(sy − nx). 
(1.77) 
La fonction sign(A) donne le signe d’un réel A
24 Géométrie et cinématique du déplacement 
yf 
xf 
zf 
Rf 
P 
R s 
A 
θ 
Figure 1.19 – Mouvement circulaire. 
. 
1.3 Cinématique du déplacement 
Dans cette partie, nous aborderons les principales relations utilisables lorsqu’il 
s’agit de décrire le mouvement d’un corps solide. 
1.3.1 Mouvement circulaire 
Soit un point P qui se déplace sur un cercle de rayon R (cf fig. 1.19) : 
– s représente la longueur de l’arc AP donc s = R.θ 
– θ est l’angle au centre du cercle correspondant 
La vitesse tangentielle ν peut s’exprimer en fonction de la vitesse angulaire de ro-tation 
ω par la relation suivante : 
ν = 
ds 
dt 
= R. 
dθ 
dt 
= R.ω (1.78) 
1.3.2 Systèmes d’axes tournants 
Considérons un système d’axes tournants représenté par la figure 1.20 Soit Rf 
(xz, yf , zf ) un repère absolu d’origine O que nous considérons fixe. 
Soit Rm (xm, ym, zm) un repère tournant par rapport à Rf de même origine O. 
Soit A = (A1,A2,A3)T (vecteur position de A exprimé dans Rm), un point variable 
dans l’espace. 
Alors, on a :   
! 
dA 
dt 
Rf 
= 
  
dA 
dt 
! 
Rm 
+ ω ∧ A (1.79) 
où 
V (A)Rf = V (A)Rm + ω ∧ A (1.80) 
où ω représente la vitesse angulaire de rotation du repère Rm par rapport au repère 
Rf .
1.3 Cinématique du déplacement 25 
yf 
xf 
zf 
Rf ym 
xm 
zm 
Rm 
A 
Figure 1.20 – Système d’axes tournants. 
. 
ym 
xm 
zm 
Rm 
yf 
xf 
zf 
Rf 
P 
O 
r 
R Q 
Figure 1.21 – Système d’axes mobiles : cas général. 
. 
1.3.3 Systèmes d’axes mobiles dans le cas général 
Soit Rf (xf , yf , zf ) un repère absolu d’origine O que nous considérons fixe. 
Soit Rm (xm, ym, zm) un repère mobile par rapport à Rf d’origine Q. 
Supposons que R soit le vecteur position de l’origine Q par rapport à O. 
Supposons que 
.R 
soit la vitesse du point Q par rapport à O. 
Supposons que r soit le vecteur position d’un point P quelconque par rapport à Q. 
Soit 
.r 
la vitesse du point P par rapport à Q. 
La figure 1.21 représente la scène. On a alors : 
V (P)Rf = V (Q)Rf + V (P)Rm + ω ∧ r (1.81) 
soit :   
dr 
dt 
! 
Rf 
= 
.R 
+ 
  
dr 
dt 
! 
Rm 
+ ω ∧ r (1.82) 
où : 
– 
.R 
exprime la vitesse du point Q par rapport à O,
26 Géométrie et cinématique du déplacement 
zf 
y0 
x0 
z0 
R0 
C1 
y1 
x1 
z1 
R1 
yi 
xi 
zi 
Ri 
yi+1 
xi+1 
zi+1 
Ci 
R C i+1 0 
Ci+1 
Figure 1.22 – Système d’axes mobiles : cas d’une chaîne articulaire simple. 
. 
– 
  
dr 
dt 
! 
Rm 
exprime le mouvement du aux translations, 
– ω ∧ r exprime le mouvement du aux rotations, 
– ω exprime la vitesse angulaire de rotation de Rm par rapport à Rf . 
Remarque 1 : Si Q est confondu avec O, alors : 
.R 
= 0. Il s’en suit 
que :   
dr 
dt 
! 
Rf 
= 
  
dr 
dt 
! 
Rm 
+ ω ∧ r (1.83) 
qui s’écrit également : 
.r 
Rf= 
.r 
Rm +ω ∧ r (1.84) 
Ce qui permet de vérifier les relations précédentes. 
Remarque 2 : Si, de plus, P ne varie par en amplitude (c’est à dire 
en position), alors 
.r 
Rm= 0. Il s’en suit que : 
.r 
Rf= ω ∧ r = −r ∧ ω = ˆω.r (1.85) 
avec 
– ω exprime la vitesse angulaire de rotation de Rm par rapport à Rf , 
– ˆω exprime la matrice de pré produit vectoriel (tenseur ˜ω). 
1.3.4 Lois de composition des vitesses 
Le but de cette partie est d’établir une relation de récurrence pour une chaine 
articulaire formée par les corps successifs d’un robot. A chacun des corps Ci, on 
associe un repère Ri. De plus, on considère R0 comme repère fixe. La figure 1.22 
décrit le cas d’une chaîne articulaire. Dans ce cas, on peut exprimer la vitesse de
1.3 Cinématique du déplacement 27 
translation associée au corps Ci+1 par la relation suivante : 
V (Oi+1)(R0) 
(Ri) = V (Oi)(R0) 
(Ri) + V (Oi+1)(Ri) 
(Ri) + 
i 
(R0) 
(Ri) ∧ OiOi+1 (1.86) 
où : 
– V (Oi+1)(R0) 
(Ri) représente la vitesse de translation de translation de Oi+1 par 
rapport à O0 exprimée dans le repère Ri, 
– V (Oi)(R0) 
(Ri) représente la vitesse de translation de Oi par rapport à O0 exprimée 
dans le repère Ri, 
– V (Oi+1)(Ri) 
(Ri) représente la vitesse de translation de Oi+1 par rapport à Oi ex-primée 
dans le repère Ri, 
– 
(R0) 
i 
représente la vitesse angulaire de rotation du repère Ri par rapport au 
(Ri) repère R0 exprimée dans le repère Ri, 
– Oi+1Oi représente le vecteur position de l’origine Oi+1 dans le repère Ri. 
De même, on peut écrire : 
V (Oi+1)(R0) 
(Ri) = iAi+1.V (Oi+1)(R0) 
(Ri+1) (1.87) 
et 
V (Oi)(R0) 
(Ri) = iAi−1.V (Oi)(R0) 
(Ri−1) (1.88) 
iAi+1 représente la matrice rotation de la matrice de transformation homogène 
iTi+1 permettant le passage du repère Ri à Ri+1. 
Pour les vitesses angulaires de rotation, nous utiliserons la relation suivante : 

i 
(R0) 
(Ri) = 
i 
(Ri−1) 
(Ri−1) + iAi−1.
i−1 
(R0) 
(Ri−1) (1.89) 
avec : 
– 
(R0) 
i 
représente la vitesse angulaire de rotation du repère Ri par rapport à 
(Ri) R0 exprimée dans le repère Ri, 
– 
i 
(Ri−1) 
(Ri−1) représente la vitesse angulaire de rotation du repère Ri par rapport à 
Ri−1 exprimée dans le repère Ri−1, 
– iAi−1 représente la matrice de rotation (cosinus directeur) de la matrice de 
transformation homogène permettant le passage du repère Ri au repère Ri−1, 
– 
i−1 
(R0) 
(Ri−1) représente la vitesse angulaire de rotation du repère Ri−1 par rapport 
à R0 exprimée dans le repère Ri−1. 
Ces trois relations permettent de calculer les vitesses de rotation et de translation 
de n’importe quel segment du robot, en particulier celles de l’organe terminal.
Chapitre 2 
Modélisation géométrique des robots 
- Commande en position des robots 
2.1 Introduction à la modélisation 
La conception et la commande des robots manipulateurs nécessitent le calcul de 
certains modèles mathématiques, tels que les 
– modèles de transformation entre : 
– l’espace opérationnel X (dans lequel on définit la situation de l’organe ter-minal) 
– l’espace articulaire q (dans lequel on définit la configuration du robot) 
X ←→ q (2.1) 
– modèles dynamiques définissant les équations du mouvement du robot, qui 
permettent d’établir les relations entre les couples et les forces exercés par les 
actionneurs et, les positions, vitesses et accélérations articulaires : 
 = f(q, 
.q 
, 
.. 
q, F) (2.2) 
Parmi les modèles de transformation, on distingue : 
– les modèles géométriques direct et inverse qui expriment la situation de l’or-gane 
terminal en fonction de la configuration du mécanisme articulaire et in-versement. 
X ←→ q (2.3) 
– les modèles différentiels direct et inverse qui expriment la différentielle de la 
situation de l’organe terminal en fonction de la configuration du mécanisme 
articulaire et inversement. 
.X 
←→ 
.q 
(2.4) 
La plupart de ces modèles sont établis par calcul symbolique. Dans cet objectif, un 
logiciel de calcul symbolique est un outil essentiel.
30 
Modélisation géométrique des robots - Commande en position des 
robots 
L’Ecole Centrale de Nantes a mis sur le marché un logiciel appelé SYMORO+ 
[KC] qui permet l’étude, le développement et le test de tous ces modèles. 
Il existe des méthodes et notations utilisées pour la modélisation des robots. La 
plus répandue est celle de Denavit-Hartenberg [DH55]. Elle est bien adaptée pour des 
structures ouvertes simples, mais présente des ambiguïtés lorsqu’elle est appliquée 
sur des robots à structures fermées ou arborescentes. Dans les années 80, Wisama 
Khalil propose une modification de cette méthode : méthode de Denavit-Hartenberg 
modifiée (dîte méthode de Khalil). Cette méthode permet la description homogène 
en un nombre minimum de paramètres pour la représentation des différentes struc-tures 
de robots généralement rencontrés. 
2.2 Description de la structure géométrique d’un 
robot 
2.2.1 Notations et règles générales 
La méthode générale est basée sur les règles et conventions suivantes : 
– la variable de l’articulation j est notée qj 
– le corps j est noté Cj 
– les corps sont supposés parfaitement rigides. Ils sont connectés par des articu-lations 
considérées comme idéales. 
– le repère Rj est lié au corps Cj 
– l’axe du zj repère Rj , est porté par l’axe articulaire j 
– les paramètres qui permettent de définir le repère Rj , par rapport au repère 
antécédent sont munis de l’indice j 
2.2.2 Description des robots à chaîne ouverte simple 
2.2.2.1 Cadre général 
Le système est composé de n+1 corps C0, C1, C2...Cn et de n articulations (voir 
figure 2.1). 
Le corps C0 désigne la base du robot. Le corps Cn est celui qui porte l’organe 
terminal. 
L’articulation j connecte le corps Cj au corps Cj−1. 
2.2.2.2 Paramétrage de Denavit-Hartenberg modifié (Khalil 86) 
Le repère Rj fixé au corps Cj est défini de telle sorte que : 
– zj est porté par l’axe articulaire j 
– xj est porté par la perpendiculaire commune aux axes zj et zj+1 Si zj et zj+1 
sont parallèles ou colinéaires, le choix de xj n’est pas unique. Dans ce cas, des
2.2 Description de la structure géométrique d’un robot 31 
C0 
C1 
C2 
C3 
C4 
Cn−2 
Cn−1 
Cn 
Figure 2.1 – Robot à structure ouverte simple. 
. 
considérations de symétrie ou de simplicité permettent alors un choix rationnel. 
– yj est l’axe qui forme un trièdre direct : yj = zj ∧ xj 
Le passage du repère Rj−1 au repère Rj , s’exprime en fonction de 4 paramètres 
suivants : 
– αj est l’angle entre les axes zj−1 et zj correspondant à une rotation autour de 
xj−1 
– dj est la distance entre les axes zj−1 et zj le long de xj−1 
– θj est l’angle entre les axes xj−1 et xj correspondant à une rotation autour de 
zj 
– rj est la distance entre les axes xj−1 et xj correspondant à une rotation autour 
de zj 
La figure 2.2 représente la définition des paramètres de Denavit-Hartenberg mo-difié. 
La variable articulaire qj (associée à la jeme articulation ) est soit : 
– θj si l’articulation est de type rotoïde (σj = 0) 
– rj si l’articulation est de type prismatique (σj = 1) 
On a donc : qj = σj .θj + σj .rj 
La matrice de transformation homogène définissant le repère Rj dans le repère 
Rj−1 est donnée par : 
j−1Tj = Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj) (2.5) 
Soit : 
j−1Tj = 
 
 
Cθj −Sθj 0 dj 
Cαj .Sθj Cαj .Cθj −Sαj −rj .Sαj 
Sαj .Sθj Sαj .Cθj Cαj rj .Cαj 
0 0 0 1 
 
 
(2.6)
32 
Modélisation géométrique des robots - Commande en position des 
robots 
zj−1 
Oj−1 
xj−1 
αj 
zj 
Oj 
xj 
rj 
θj 
dj 
Figure 2.2 – Paramètres géométriques dans le cas d’une structure ouverte simple. 
. 
On remarque que : j−1Aj = Rot(x, αj).Rot(z, θj) car les opérations de rota-tions/ 
translations successives sur un même axe sont commutatives. 
On en déduit la matrice de transformation homogène inverse permettant le pas-sage 
du repère Rj au repère Rj−1. 
jTj−1 = Trans(z,−rj).Rot(z,−θj).Trans(x,−dj).Rot(x,−αj) (2.7) 
dont l’expression littérale est la suivante (jAj−1 = (j−1Aj)T ) : 
jTj−1 = 
 
 
Cθj Cαj .Sθj Sαj .Sθj −dj .Cθj 
−Sθj Cαj .Cθj Sαj .Cθj dj .Sθj 
0 −Sαj Cαj −rj 
0 0 0 1 
 
 
(2.8) 
Remarques : 
1. Pour la définition de R0, le choix le plus simple consiste à confondre R0 avec 
R1 pour la valeur particulière de l’articulation q1 = 0. Cela implique que z0 et 
z1 sont confondus, et que x0 = x1 pour q1 = 0. 
2. De même, en définissant l’axe xn du repère Rn comme étant colinéaire à xn−1 
lorsque qn = 0, on rend les paramètres rn = θn = 0. 
3. Pour une articulation j prismatique, l’axe zj est parallèle à l’axe de l’articula-tion, 
mais la position sur cet axe peut être quelconque. 
4. Cette méthode de description fixe la configuration zéro du robot tel que 
q = q = qi0 = 0. On peut choisir une autre configuration (quelconque), en 
procédant au changement de variable suivant : q 
c 
= q − q 
i0 
avec
2.2 Description de la structure géométrique d’un robot 33 
– q 
c 
= nouveau vecteur des variables articulaires 
– q 
i0 
= configuration à zéro choisie 
5. De même, si la convention axe positif est changée au montage du robot, il 
suffit d’effectuer le changement de variable : q 
c 
= −q. 
6. Lorsqu’une cinématique est constituée par 2 ou plusieurs axes parallèles consé-cutifs, 
on peut se ramener à une seule matrice de transformation équivalente en 
faisant intervenir la somme des variables articulaires. Par exemple, si αj+1 = 0, 
les axes zj et zj+1 sont parallèles. Dans ce cas, on a : 
j−1Tj+1 =j−1 Tj .jTj+1 = 
Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj).Rot(x, αj+1).Trans(x, dj+1). 
Rot(z, θj+1).Trans(z, rj+1) = 
Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj). 
Trans(x, dj+1).Rot(z, θj+1).Trans(z, rj+1) = 
Rot(x, αj).Trans(x, dj).Trans(z, rj).Rot(z, θj + θj+1).Trans(x, dj+1).Trans(z, rj+1) = 
Rot(x, αj).Trans(x, dj).Rot(z, θj + θj+1).Trans(z, rj + rj+1).Trans(x, dj+1) 
(2.9) 
Ce qui peut se réécrire sous la forme suivante : 
j−1Tj+1 = 
 
 
C(θj + θj+1) −S(θj + θj+1) 0 dj + dj+1.Cθj 
Cαj .S(θj + θj+1) Cαj .C(θj + θj+1) −Sαj dj+1.Cαj .Sθj − (rj + rj+1).Sαj 
Sαj .S(θj + θj+1) Sαj .C(θj + θj+1) Cαj dj+1.Sαj .Sθj + (rj + rj+1).Cαj 
0 0 0 1 
 
 
(2.10) 
La transformation inverse a pour expression : 
j+1Tj−1 = 
 
 
C(j + j+1) Cj .S(j + j+1) Sj .S(j + j+1) −dj .C(j + j+1) − dj+1.Cj+1 
−S(j + j+1) Cj .C(j + j+1) Sj .C(j + j+1) dj .S(j + j+1) + dj+1.Sj+1 
0 −Sj . Cj −(rj + rj+1) 
0 0 0 1 
 
 
(2.11) 
Dans ces deux expressions, on voit apparaître les sommes θj + θj+1 et rj + rj+1 (cf 
(2.9)). 
2.2.2.3 Exemples de description 
Robot manipulateur AID-5 (RRR,RRR) La figure 2.3 montre le synoptique 
du robot AID-5. 
Le robot AID-5 est constitué : 
– d’un porteur muni de 3 degrés de liberté (RRR) 
– d’un poignet muni de 3 degrés de liberté (RRR) : une rotule d’axes concourants 
Pour déterminer les paramètres de Denavit-Hartenberg, il faut procéder par étapes : 
1. disposer les axes zj sur les axes articulaires 
2. disposer R0 tel que R0 = R1 pour q1 = 0
34 
Modélisation géométrique des robots - Commande en position des 
robots 
+ 
+ 
+ 
+ 
+ 
+ 
D3 
RL4 
x0, x1 
z0, z1 
x2 
z2 
x4, x5, x6 
z3 
z4 
x3 
z5 
z6 
Figure 2.3 – Structure du robot AID-5. 
.
2.2 Description de la structure géométrique d’un robot 35 
3. disposer les axes xj en prenant la convention xj = zj ∧ zj+1 (trièdre direct). 
Il se peut que pour des raisons de simplicité, qu’il soit préférable de prendre 
la convention trièdre indirect. 
Dans le cas du robot AID-5, les axes zj sont posés de manière automatique en 
fonction des conventions de signes sur les axes articulaires (angle positif selon la 
règle du vissage selon l’axe). 
Le tableau des paramètres de Denavit-Hartenberg relatif au robot AID-5 est le 
suivant : 
J σj αj dj θj rj Trièdre 
R0 =⇒ R1 0 0 0 q1 0 D/I 
R1 =⇒ R2 0 90 0 q2 0 D 
R2 =⇒ R3 0 0 D3 q3 0 D/I 
R3 =⇒ R4 0 90 0 q4 RL4 D 
R4 =⇒ R5 0 −90 0 q5 0 I 
R5 =⇒ R6 0 −90 0 q6 0 I 
Plusieurs problèmes sont mis à jour par cet exemple. 
Tout d’abord, le choix des vecteurs xj n’est pas unique. En effet, si l’on regarde les 
liaisons R0 =⇒ R1 et R2 =⇒ R3, les axes zj sont soit colinéaires, soit parallèles. Pour 
simplifier la représentation, dans les deux cas on choisit l’axe xj correspondant de 
tel sorte que le passage à l’axe xj+1 soit simple (même direction). Dans certains cas, 
on regarde également la liaison précédente, de manière à simplifier la représentation 
du passage de l’axe xj−1 à l’axe xj . 
Pour le choix de x6, il serait nécessaire de connaître la direction de l’axe xe du 
repère outil. En l’abscence de celle-ci, le choix est arbitraire mais doit être simple. 
Par conséquent, seul deux choix sont retenus en général. Ces deux choix diffèrent 
par une direction opposée. Dans notre exemple, nous avons retenu la simplification 
du passage R5 =⇒ R6 qui conduit à avoir x5 = x6 pour q6 = 0. 
Dans la dernière colonne de ce tableau figure la convention prise (pour chaque 
liaison), pour fixer la direction de l’axe xj . Il est clair que cela revient au même 
en définitif, si l’on considère que les repères R0 et Rn sont les mêmes selon les 
conventions prises. La seule différence porte sur la présence et non présence dans le 
tableau de rotations supplémentaires de valeur 180o = π (qui marchent par paire). 
Robot manipulateur ACMA H-80 (PRR, RRR) La figure 2.4 montre le 
synoptique de ce robot. 
On considère le robot ACMA H-80 constitué : 
– d’un porteur muni de 3 degrés de liberté (PRR) 
– d’un poignet muni de 3 degrés de liberté (RRR) : une rotule d’axes concourants 
Dans le cas du robot ACMA H-80, les axes zj sont posés de manière automatique 
en fonction des conventions de signes sur les axes articulaires (angle positif selon la 
règle du vissage selon l’axe).
36 
Modélisation géométrique des robots - Commande en position des 
robots 
z2 
+ + 
+ 
+ 
+ 
x0, x1 x4, x5, x6 
+ 
D3 D4 
z0, z1 
x2 
z3 
z4 
x3 
z5 
z6 
Figure 2.4 – Structure du robot ACMA H-80. 
. 
Le tableau des paramètres de Denavit-Hartenberg relatif au robot ACMA H-80 
est le suivant : 
J σj αj dj θj rj Trièdre 
R0 =⇒ R1 1 0 0 0 q1 D/I 
R1 =⇒ R2 0 0 0 q2 0 D/I 
R2 =⇒ R3 0 0 D3 q3 0 D/I 
R3 =⇒ R4 0 0 D4 q4 0 I 
R4 =⇒ R5 0 −90 0 q5 0 I 
R5 =⇒ R6 0 −90 0 q6 0 D/I 
Robot cartésien AFMA (PPP, RRR) (Voir td) 
2.2.3 Extensions aux chaînes fermées et arborescentes 
En dehors des chaînes ouvertes simples, il est possible de rencontrer : 
– des chaînes ouvertes arborescentes 
– des chaînes fermées 
– des chaînes composées de chaînes simples, arborescentes ou non, et de chaînes 
fermées
2.2 Description de la structure géométrique d’un robot 37 
C0 
C1 
C2 
Cn 
Cn−1 
Cn−2 
Ck Ck+1 
Ck+L 
Cm 
Cm−1 
z0, z1 
zk 
zk+L 
zk+1 
zm 
zn 
Figure 2.5 – Robot à structure ouverte arborescente. 
. 
2.2.3.1 Cas des chaînes arborescentes 
Une structure (ou chaîne) est constituée par n + 1 corps, n articulations et r 
organes terminaux. 
Par convention, les corps et articulations sont numérotés de la manière suivante : 
– la base est fixe et constitue le corps C0 
– les numéros des corps et articulations sont croissants sur chaque branche en 
partant de la base (corps C0), vers un organe terminal 
– le corps Cj est articulé autour de l’articulation j par rapport au corps Ca(j), 
qui représente le corps antécédent sur la chaîne menant au corps Cj en partant 
de la base. 
La topologie du système est complètement définie par la donnée des indices 
a(j) pour j = 1, 2, ..n 
La figure 2.5 représente un exemple de chaîne arborescente avec deux organes ter-minaux. 
Les différents repères sont placés de la manière suivante : 
– Rj est fixe par rapport au corps Cj 
– zj est porté par l’axe articulaire j 
Jusque là, ces notations sont les mêmes que celles employées pour une chaîne ouverte 
simple.
38 
Modélisation géométrique des robots - Commande en position des 
robots 
Figure 2.6 – Paramétrage nécessaire à un corps à plus de 2 articulations 
. 
Si le corps Ci′ , avec i = a(j), n’a pas d’arborescence, l’axe xi est choisi comme 
la perpendiculaire commune aux axes zi, zj . En effet, le repère Rj est successeur au 
repère Ri. On retient les 4 paramètres de Denavit-Hartenberg pour paramétrer la 
liaison. 
Si le corps Ci porte plus d’un corps, Cj et Ck par exemple, il faut alors choisir 
l’axe xi sur l’une des deux perpendiculaires communes à zi, zj ou à zi, zk. Le bon 
sens est de retenir la préférence à la chaîne menant à l’organe terminal principal, 
ou bien à la chaîne qui possède le plus grand nombre de corps articulés. Deux cas 
doivent être envisagés pour définir un repère lié à Cj successeur de Ci. 
– si l’axe xi est la perpendiculaire commune à zi, zj alors la matrice de passage 
iTj (du repère Ri au repère Rj) s’écrit comme dans le cas des chaînes simples 
à partir des 4 paramètres (αj , dj , θj , rj). 
– Si l’axe xi est la perpendiculaire commune à zi, zk, 2 paramètres supplémen-taires 
doivent être introduit. 
– γj = l’angle entre l’axe xi et la perpendiculaire commune aux axes zi, zj 
notées xi′ , autour de l’axe zi 
– εj = distance entre l’axe xi et l’axe xi′ , le long de l’axe zi. 
La figure 2.6 montre les différents repères et paramètres mis en oeuvre pour traiter 
ce cas particulier. 
Ces deux paramètres permettent de construire la matrice de passage iTi′ , per-mettant 
le passage du repère Ri au repère Ri′ . Le repère R′i 
est identique au repère 
Ri, mais il est construit sur l’autre perpendiculaire commune. 
iTi′ = Rot(z, γj).Trans(z, εj) (2.12)
2.2 Description de la structure géométrique d’un robot 39 
iTi′ = 
 
 
C
j −S
j 0 0 
S
j C
j 0 0 
0 0 1 εj 
0 0 0 1 
 
 
(2.13) 
D’où on en tire : 
iTj ,=i Ti′ .i′ 
Tjaveci′ 
Tj = Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj) (2.14) 
Après développement, on obtient la matrice globale suivante : 
iTj = 
 
 
Cγj .Cθj − Sγj .Cαj .Sθj −Cγj .Sθj − Sγj .Cαj .Cθj Sγj .Sαj dj .Cγj + rj .Sγj .Sαj 
Sγj .Cθj + Cγj .Cαj .Sθj −Sγj .Sθj + Cγj .Cαj .Cθj −Cγj .Sαj dj .Sγj − rj .Cγj .Sαj 
Sαj .Sθj Sαj .Cθj Cαj rj .Cαj + εj 
0 0 0 1 
 
 
(2.15) 
Son inverse est : 
jTi = 
 
 
Cγj .Cθj − Sγj .Cαj .Sθj Sγj .Cθj + Cγj .Cαj .Sθj Sαj .Sθj −εj .Sαj .Sθj − dj .Cθj 
−Cγj .Sθj − Sγj .Cαj .Cθj −Sγj .Sθj + Cγj .Cαj .Cθj Sαj .Cθj −εj .Sαj .Cθj + dj .Sθj 
Sγj .Sαj −Cγj .Sαj Cαj −rj − εj .Cαj 
0 0 0 1 
 
 
(2.16) 
Remarque : Si γj et εj = 0, la matrice de transformation homogène iTi′ est unitaire. 
C’est le cas fréquent où les axes xi et xi′ sont confondus. Dans ce cas, on se ramène 
au cas des chaînes simples. 
2.2.3.2 Cas des chaînes fermées 
Dans ce cas, le système est constitué de n+1 corps et éventuellement de r organes 
terminaux. De plus, il dispose de L  n articulations. 
Le nombre de boucles fermées est donné par la relation : b = L − n 
Pour décrire ce style de robot, on détermine une structure arborescente équiva-lente 
en coupant virtuellement chacune des boucles fermées sur l’une de ses articu-lations. 
On choisit une articulation non motorisée de préférence, qui est telle que le 
nombre de corps qui la sépare de la racine ait le même ordre de grandeur que l’on 
parcourt la boucle d’un côté ou de l’autre. 
On procède comme au paragraphe précédent pour la numérotation des corps et 
des articulations. 
Les articulations coupées sont notées à partir de n + 1 jusqu’à L. 
On place ensuite les repères sur les corps en suivant les règles déjà énoncées. 
Pour chaque articulation coupée k, on définit un repère Rk, fixe par rapport à l’un 
des corps supportant cette articulation.
40 
Modélisation géométrique des robots - Commande en position des 
robots 
Soit Cj ce corps. Conformément aux règles précédentes, l’axe zk est porté par 
l’axe articulaire k. L’axe xk est porté par la perpendiculaire commune à zk et zj . 
A partir des 4 ou 6 paramètres usuels indicés k, on peut construire la matrice 
de transformation homogène iTk permettant le passage du repère Ri au repère Rk, 
avec i = a(k) désignant l’autre corps lié à l’articulation k. 
D’autre part, Rk étant fixe par rapport au repère Rj , on peut définir une matrice 
constante jTk permettant le passage du repère Rj au repère Rk. 
Pour éviter une confusion de notations, les paramètres géométriques de cette 
dernière transformation sont indicés k + b. On a donc jTk →j Tk+b et j = a(k + b). 
Cela revient à introduire un repère Rk+b confondu avec le repère Rk tel que : 
k+bTk = I4. 
Dans ces conditions, on peut écrire une relation de fermeture de la boucle : 
k+bTk =k+b Tj .jTj+1..iTk = I4 (2.17) 
Ainsi la description d’un système comportant des boucles fermées se ramène à celle 
d’un système arborescent obtenu en coupant chaque boucle sur une de ses articula-tions, 
et en rajoutant des repères supplémentaires. Du fait que la coupure se fait sur 
une articulation non motorisée, on remarque que les paramètres rk+b et θk+b sont 
nuls. 
La figure 2.7 montre les différents repères mis en oeuvre pour traiter le cas 
particulier des chaînes fermées. 
2.2.3.3 Exemples 
Robot manipulateur Hitachi HPR (RRR, RR) On considère le robot 
HITACHI-HPR constitué de 5 degrés de liberté, 7 corps mobiles et 8 articulations 
rotoïdes. Il comporte une boucle fermée de type parallélogramme. Les articulations 
2, 5 et 8 ne sont pas motorisées. La boucle est ouverte sur l’articulation 8 entre les 
corps 4 et 5. 
La figure 2.8 montre le synoptique de ce robot. 
Dans le cas du robot HITACHI-HPR, les axes zj sont posés de manière auto-matique 
en fonction des conventions de signes sur les axes articulaires (angle positif 
selon la règle du vissage selon l’axe). 
Le tableau des paramètres de Denavit-Hartenberg relatif au robot HITACHI-HPR 
est le suivant :
2.2 Description de la structure géométrique d’un robot 41 
Figure 2.7 – Repères nécessaires pour décrire une chaîne fermée 
. 
J a(j) σj γj εj αj dj θj rj Trièdre 
R0 =⇒ R1 0 0 0 0 0 0 q1 0 D/I 
R1 =⇒ R2 1 0 0 0 −90 0 θ2 0 I 
R1 =⇒ R3 1 0 0 0 −90 0 q3 0 I 
R2 =⇒ R4 2 0 0 0 0 D4 q4 0 D/I 
R3 =⇒ R5 3 0 0 0 0 D5 θ5 0 D/I 
R5 =⇒ R6 5 0 0 0 0 D6 q6 0 D/I 
R6 =⇒ R7 6 0 0 0 90 0 q7 0 D 
R4 =⇒ R8 4 0 0 0 0 D8 = D5 θ8 0 D/I 
R5 =⇒ R9 5 0 0 0 0 D9 = −D4 0 0 D/I 
Robot manipulateur ASEA IRB5 (RPP, RR) On considère le robot ASEA 
IRB5 constitué de 5 degrés de liberté, 7 corps mobiles et 6 articulations rotoïdes 
et 2 prismatiques. Il comporte une boucle fermée de type parallélogramme. Les 
articulations 4, 5, 8 et 9 ne sont pas motorisées. 
La figure 2.9 montre le synoptique de ce robot. 
Dans le cas du robot ASEA IRB5, on préfère simplifier le schéma synoptique 
en faisant apparaître deux liaisons rotoïdes à la place du parallélogramme et des 
deux liaisons prismatiques. Cela nous permet d’aboutir à la nouvelle représentation 
équivalente (cf. figure 2.10). 
En considérant cette nouvelle représentation, le tableau des paramètres de
42 
Modélisation géométrique des robots - Commande en position des 
robots 
Figure 2.8 – Synoptique du robot HITACHI-HPR 
.
2.2 Description de la structure géométrique d’un robot 43 
Figure 2.9 – Synoptique du robot ASEA-IRB5 
.
44 
Modélisation géométrique des robots - Commande en position des 
robots 
Figure 2.10 – Synoptique équivalent du robot ASEA-IRB5 
.
2.3 Modélisation géométrique directe d’un robot 45 
Denavit-Hartenberg relatif au robot ASEA IRB5 est le suivant : 
J a(j) σj γj εj αj dj θj rj Trièdre 
R0 =⇒ R1 0 0 0 0 0 0 q1 L1 D/I 
R1 =⇒ R2 1 0 0 0 90 0 q2 0 D/I 
R2 =⇒ R3 1 0 0 0 0 L2 q3 0 D/I 
R3 =⇒ R4 2 0 0 0 0 L3 q4 0 D/I 
R4 =⇒ R5 5 0 0 0 90 0 q5 0 D/I 
Robot arborescent (TBD) 
2.3 Modélisation géométrique directe d’un robot 
2.3.1 Matrice de transformation de l’organe terminal dans le 
repère atelier 
Un robot n’est qu’un constituant d’un poste de travail. Généralement, on lui 
adjoint des systèmes d’alimentation et d’évacuation de pièces, des dispositifs de 
bridage, des capteurs extéroceptifs... 
Il est donc nécessaire de situer dans l’espace de travail à la fois le robot mais 
également tous ce qui peut être amené à intéragir avec ce robot. Pour cela, nous 
définissons un repère atelier que nous noterons Rf , différent dans la plupart des cas 
du repère R0 lié à la base fixe du robot (évident dans le cas où il y a plusieurs 
robots). 
La figure 2.11 présente les différents repères et les différentes matrices de trans-formation 
homogène mis en jeu pour la modélisation de robot dans un atelier. 
On adopte les notations suivantes : 
– Z =f T0 la matrice de transformation homogène permettant d’exprimer la 
situation du repère de base du robot R0 dans le repère atelier Rf 
– 0Tn la matrice de transformation homogène permettant d’exprimer la situation 
du repère de terminal Rn du robot dans le repère de base R0 du robot 
– E =n TE la matrice de transformation homogène permettant d’exprimer la 
situation du repère outil du robot RE dans le repère terminal du robot Rn 
– fTE la matrice de transformation homogène globale permettant d’exprimer la 
situation du repère outil du robot RE dans le repère atelier Rf 
La présence du repère RE permet de prendre en compte le fait qu’un robot peut 
avoir plusieurs tâches robotiques à effectuer, et de ce fait plusieurs outils. 
Ces repères outils sont choisis pour faciliter la description de la tâche robotique 
associée. Des directions peuvent être privilégiées : comme par exemple un axe d’usi-nage, 
un axe de vissage, une orientation pour soudure ou peinture, .... 
On appelle matrice de passage du robot la composition des matrices de transfor-mation 
exprimant le repère du corps terminal Rn dans le repère de base du robot
46 
Modélisation géométrique des robots - Commande en position des 
robots 
R0 
Rn 
z = fT0 
0Tn 
Rf RE 
E = nTE 
fTE 
Figure 2.11 – Repères nécessaires pour décrire un robot dans un atelier. 
. 
R0. Pour une chaîne ouverte simple, on a : 
0Tn =o T1.1T2...n−1Tn (2.18) 
La matrice de transformation globale fTE s’écrit alors : 
fTE = Z.0Tn.E (2.19) 
Pour établir les modèles géométriques d’un robot, il sera nécessaire auparavant de 
mesurer la situation du robot dans le repère atelier Z, et de calibrer la situation E 
du repère outil RE dans le repère terminal du robot Rn. 
2.3.2 Calcul du modèle géométrique direct d’un robot 
(MGD) 
Définition : Le modèle géométrique direct est l’ensemble des relations permet-tant 
d’exprimer la situation de l’organe terminal du robot en fonction des variables 
articulaires. 
La situation de l’organe terminal X est définie par m coordonnées opérationnelles 
X = [x1x2...xm−1xm]T (2.20) 
Les variables articulaires sont définies par le vecteur q de dimension n : 
q = [q1q2...qn−1qn]T (2.21) 
Le modèle géométrique s’écrit alors : X = f(q) 
Plusieurs possibilités sont offertes pour définir le contenu du vecteur X. Nous 
avons vu dans la première partie de ce cours, qu’il existait plusieurs façons de coder 
la position et l’orientation d’un corps solide. 
Par exemple, si l’on choisit :
2.3 Modélisation géométrique directe d’un robot 47 
– la position cartésienne et les cosinus directeurs pour l’orientation, on obtient 
X = [PxPyPzSxSySznxnynzaxayaz]T (2.22) 
– la position cartésienne et les angles RTL pour l’orientation, on obtient 
X = [PxPyPzφθψ]T (2.23) 
2.3.3 Exemples de modèles géométriques directs 
2.3.3.1 MGD du robot AID-5 
Le synoptique de ce robot est donné figure 2.3, page 34. On rapelle le tableau 
des paramètres de Devavit-Hartenberg de ce robot ci-dessous : 
J σj αj dj θj rj Trièdre 
R0 =⇒ R1 0 0 0 q1 0 D/I 
R1 =⇒ R2 0 90 0 q2 0 D 
R2 =⇒ R3 0 0 D3 q3 0 D/I 
R3 =⇒ R4 0 90 0 q4 −RL4 D 
R4 =⇒ R5 0 −90 0 q5 0 I 
R5 =⇒ R6 0 −90 0 q6 0 I 
D3 et RL4 sont les caractéristiques géométriques du robot. On rappelle l’expression 
de la matrice de transformation homogène associée au paramètrage de Denhavit- 
Hartenberg. 
j−1Tj = 
 
 
Cθj −Sθj 0 dj 
Cαj .Sθj Cαj .Cθj −Sαj −rj .Sαj 
Sαj .Sθj Sαj .Cθj Cαj rj .Cαj 
0 0 0 1 
 
 
(2.24) 
On en déduit les matrices 0T1,1 T2,2 T3,3 T4,4 T5 et 5T6. Pour ce faire une solution 
consiste à utiliser un logiciel de calcul formel. Parmis les plus connus, nous pouvons 
citer matlab qui dispose d’une boite à outils dédiée au calcul symbolique, Maple, 
Maxima. Dans ce cour, nous avons utilisé Maxima, car il posséde une licence Libre 
d’utilisation. 
Nous avons tout d’abord modélisé le tableau de DH sous une forme matricielle : 
Modélisation du MGD : 
DH : 
 
 
0 0 0 q1 0 
0  
2 0 q2 0 
0 0 D3 q3 0 
0  
2 0 q4 −RL4 
0 − 
2 0 q5 0 
0 − 
2 0 q6 0 
 

48 
Modélisation géométrique des robots - Commande en position des 
robots 
Calcul des matrices de passage : 
T01 : DenHart (DH, 1) 
 
Cq1 −Sq1 0 0 
Sq1 Cq1 0 0 
0 0 1 0 
0 0 0 1 
 
 
(C37) T12 : DenHart2 (DH, 2) 
(D37) 
 
 
C(q3 + q2) −S (q3 + q2) 0 D3Cq2 
0 0 −1 0 
S (q3 + q2) C(q3 + q2) 0 D3Sq2 
0 0 0 1 
 
 
Ceci est une astuce de programmation 
(C38) T23 : IDENT(4) 
(D38) 
 
 
1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 
 
 
(C39) T34 : DenHart (DH, 4) 
(D39) 
 
 
Cq4 −Sq4 0 0 
0 0 −1 RL4 
Sq4 Cq4 0 0 
0 0 0 1 
 
 
(C40) T45 : DenHart (DH, 5) 
(D40) 
 
 
Cq5 −Sq5 0 0 
0 0 1 0 
−Sq5 −Cq5 0 0 
0 0 0 1 
 
 
(C41) T56 : DenHart (DH, 6) 
(D41) 
 
 
Cq6 −Sq6 0 0 
0 0 1 0 
−Sq6 −Cq6 0 0 
0 0 0 1 
 
 
Pour obtenir le MGD d’un robot, il faut déterminer la matrice de passage du 
robot : soit 0T6 dans le cas présent. Pour l’obtenir, on multipliera les matrices j−1Tj 
en partant de la dernière afin de déninir des matrices intermédiaires Uj utiles pour 
l’élaboration du modèle géométrique inverse (MGI). On a : 
Uj =j Tj+1.Uj+1 (2.25)
2.3 Modélisation géométrique directe d’un robot 49 
Appliquer à notre cas, on définit successivement : 
U6 = I6 (2.26) 
U5 = 5T6.U6 = 5T6 (2.27) 
U4 = 4T5.U5 = 4T5.5T6 = 4T6 (2.28) 
U3 = 3T4.U4 = 3T4.4T5.5T6 = 3T6 (2.29) 
U2 = 2T3.U3 = 2T3.3T4.4T5.5T6 = 2T6 (2.30) 
U1 = 1T2.U2 = 1T2.2T3.3T4.4T5.5T6 = 1T6 (2.31) 
U0 = 0T1.U1 = 0T1.1T2.2T3.3T4.4T5.5T6 = 0T6 (2.32) 
Les expression des matrices Uj peuvent être assez longues. Lorsque c’est le cas, 
nous les présentons sous la forme : 
Uj = 
 
sxj nxj axj Pxj 
syj nyj ayj Pyj 
szj nzj azj Pzj 
0 0 0 1 
 
 
 
(2.33) 
(C42) U5 : T56 
(D42) 
 
 
Cq6 −Sq6 0 0 
0 0 1 0 
−Sq6 −Cq6 0 0 
0 0 0 1 
 
 
(C44) U4 : T45 · U5 
(D44) 
 
 
Cq5Cq6 −Cq5Sq6 −Sq5 0 
−Sq6 −Cq6 0 0 
−Sq5Cq6 Sq5Sq6 −Cq5 0 
0 0 0 1 
 
 
(C46) U3 : T34 · U4 
(D46) 
 
 
Sq4Sq6 + Cq4Cq5 Cq6 Sq4Cq6 − Cq4 Cq5Sq6 −Cq4Sq5 0 
Sq5Cq6 −Sq5Sq6 Cq5 RL4 
Sq4Cq5Cq6 − Cq4 Sq6 −Sq4Cq5Sq6 − Cq4Cq6 −Sq4S q5 0 
0 0 0 1 
 
 
(C48) U2 : T23 · U3 
(D48) 
 
 
Sq4Sq6 + Cq4Cq5 Cq6 Sq4Cq6 − Cq4 Cq5Sq6 −Cq4Sq5 0 
Sq5Cq6 −Sq5Sq6 Cq5 RL4 
Sq4Cq5Cq6 − Cq4 Sq6 −Sq4Cq5Sq6 − Cq4Cq6 −Sq4S q5 0 
0 0 0 1 
 
 
(C49) s2 : Extrait (U2, 1) 
(D49) 
 
 
Sq4Sq6 + Cq4Cq5 Cq6 
Sq5Cq6 
Sq4Cq5Cq6 − Cq4 Sq6 
 
 
(C50) n2 : Extrait (U2, 2)
50 
Modélisation géométrique des robots - Commande en position des 
robots 
(D50) 
 
 
Sq4Cq6 − Cq4Cq5 Sq6 
−Sq5Sq6 
−Sq4Cq5Sq6 − Cq4 Cq6 
 
 
(C51) a2 : Extrait (U2, 3) 
(D51) 
 
 −Cq4Sq5 
Cq5 
−Sq4Sq5 
 
 
(C52) P2 : Extrait (U2, 4) 
(D52) 
 
 
0 
RL4 
0 
 
 
(C53) U1 : T12 · U2 
(D53) 
 
 
C(q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) − S (q3 + q2) Sq5 Cq6 C(q3 + q2) ( Sq4Cq6 − Cq4 
Cq4Sq6 − Sq4Cq5 Cq6 Sq4Cq5Sq 
S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 S (q3 + q2) ( Sq4Cq6 − Cq4C 
0 
(C54) s1 : Extrait (U1, 1) 
(D54) 
 
 
C(q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) − S (q3 + q2) Sq5 Cq6 
Cq4Sq6 − Sq4Cq5 Cq6 
S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 
 
 
(C55) n1 : Extrait (U1, 2) 
(D55) 
 
 
C(q3 + q2) (Sq4 Cq6 − Cq4Cq5Sq6 ) + S (q3 + q2) Sq5 Sq6 
Sq4Cq5Sq6 + Cq4 Cq6 
S (q3 + q2) (Sq4 Cq6 − Cq4Cq5Sq6 ) − C(q3 + q2) Sq5 Sq6 
 
 
(C56) a1 : Extrait (U1, 3) 
(D56) 
 
 −C(q3 + q2)Cq4S q5 − S (q3 + q2)C q5 
Sq4Sq5 
C(q3 + q2)Cq5 − S (q3 + q2)Cq4S q5 
 
 
(C57) P1 : Extrait (U1, 4) 
(D57) 
 
 
D3Cq2 − S (q3 + q2 ) RL4 
0 
C(q3 + q2) RL4 + D3Sq2 
 
 
On en déduit le MGD par le calcul de U0 : 
(C58) U0 : T01 · U1 
(D58) 
0BB@ 
Cq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) − S q1 (Cq4Sq6 − Sq4 Cq5Cq6) Cq1 (C (q3 + q2) (Sq4C q6 − Cq4Cq5Sq6 
Sq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) + C q1 (Cq4Sq6 − Sq4 Cq5Cq6) Sq1 (C (q3 + q2) (Sq4C q6 − Cq4Cq5Sq6) 
S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 S (q3 + q2) ( Sq4Cq6 − 
0 
(C59) s0 : Extrait (U0, 1) 
(D59) 0@ 
Cq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) − S q1 (Cq4Sq6 − Sq4 Cq5Cq6) 
Sq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) + C q1 (Cq4Sq6 − Sq4 Cq5Cq6) 
S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 
1A 
(C60) n0 : Extrait (U0, 2) 
(D60) 0@ 
Cq1 (C(q3 + q2) (Sq4Cq6 − Cq4C q5Sq6) + S (q3 + q2) Sq5Sq6) − S q1 (Sq4Cq5Sq6 + Cq4Cq6) 
Sq1 (C(q3 + q2) (Sq4Cq6 − Cq4C q5Sq6) + S (q3 + q2) Sq5Sq6) + C q1 (Sq4Cq5Sq6 + Cq4Cq6) 
S (q3 + q2) (Sq4 Cq6 − Cq4Cq5Sq6 ) − C(q3 + q2) Sq5 Sq6 
1A 
(C61) a0 : Extrait (U0, 3)
2.3 Modélisation géométrique directe d’un robot 51 
(D61) 0@ 
Cq1 (−C(q3 + q2) Cq4Sq5 − S (q3 + q2) Cq5) − Sq1S q4Sq5 
Sq1 (−C(q3 + q2) Cq4Sq5 − S (q3 + q2) Cq5) + Cq1S q4Sq5 
C(q3 + q2) Cq5 − S (q3 + q2) Cq4S q5 
1A 
(C62) P0 : Extrait (U0, 4) 
(D62) 0@ 
Cq1 (D3Cq2 − S ( q3 + q2) RL4) 
Sq1 (D3Cq2 − S ( q3 + q2) RL4) 
C(q3 + q2) RL4 + D3Sq2 
1A 
A partir de la matrice de passage U0, il est possible de choisir comme vecteur de 
coordonnées opérationnelles : 
X = [PxPyPzSxSySznxnynzaxayaz]T (2.34) 
Dans ce cas, le modèle géométrique direct du robot est donné par les 12 relations 
issues de U0. On peut noter que dans ce cas, la descrition est redondante car 6 
paramètres suffisent pour décrire la position et l’orientation de l’organe terminal 
dans le repère atelier. Si on veut réduire le nombre de paramètres, alors, il faudra 
choisir un système de descrition d’angles. Dans ce cas, le MGD sera décrit pas le 
vecteur de position P et trois angles. 
2.3.3.2 MGD du robot H-80 
On rapelle le tableau des paramètres de Denavit-Hartenberg relatif au robot 
ACMA H-80 : 
J σj αj dj θj rj Trièdre 
R0 =⇒ R1 1 0 0 0 q1 D/I 
R1 =⇒ R2 0 0 0 q2 0 D/I 
R2 =⇒ R3 0 0 D3 q3 0 D/I 
R3 =⇒ R4 0 0 D4 q4 0 I 
R4 =⇒ R5 0 −90 0 q5 0 I 
R5 =⇒ R6 0 −90 0 q6 0 D/I 
Le synoptique de ce robot est donné figure 2.4 page 36 
GCL (GNU Common Lisp) Version(2.4.0) Wed May 9 12 :02 :00 CDT 2001 
Licensed under GNU Library General Public License 
Contains Enhancements by W. Schelter 
Maxima 5.6 Wed May 9 12 :01 :49 CDT 2001 (with enhancements by W. 
Schelter). 
Licensed under the GNU Public License (see file COPYING) 
batch(MGDH80) ; 
batching MGDH80.mac 
PRINT( Calcul du MGD) 
Calcul du MGD 
Calcul du MGD
52 
Modélisation géométrique des robots - Commande en position des 
robots 
DH : 
 
 
1 0 0 0 q1 
0 0 0 q2 0 
0 0 D3 q3 0 
0 0 D4 q4 0 
0 − 
2 0 q5 0 
0 − 
2 0 q6 0 
 
 
 
 
1 0 0 0 q1 
0 0 0 q2 0 
0 0 D3 q3 0 
0 0 D4 q4 0 
0 − 
0 q5 0 
2 0 − 
2 0 q6 0 
 
 
DenHart ( DH, l) :=  
 
C DHl,4 −S DHl,4 0 DHl,3 
C DHl,2S DHl,4 C DHl,2C DHl,4 −S DHl,2 − DHl,5S DHl,2 
S DHl,2S DHl,4 S DHl,2C DHl,4 C DHl,2 DHl,5C DHl,2 
0 0 0 1 
 
 Extrait (m, l) := 
 
 
m1,l 
m2,l 
m3,l 
 
 
T01 : DenHart ( DH, 1)  
 
1 0 0 0 
0 1 0 0 
0 0 1 q1 
0 0 0 1 
 
 
T12 : DenHart ( DH, 2)  
 
Cq2 −Sq2 0 0 
Sq2 Cq2 0 0 
0 0 1 0 
0 0 0 1 
 
 
T23 : DenHart ( DH, 3)  
 
Cq3 −Sq3 0 D3 
Sq3 Cq3 0 0 
0 0 1 0 
0 0 0 1 
 
 
T34 : DenHart ( DH, 4)  
 
Cq4 −Sq4 0 D4 
Sq4 Cq4 0 0 
0 0 1 0 
0 0 0 1 
 
 
T45 : DenHart ( DH, 5)
2.3 Modélisation géométrique directe d’un robot 53 
 
 
Cq5 −Sq5 0 0 
0 0 1 0 
−Sq5 −Cq5 0 0 
0 0 0 1 
 
 
T56 : DenHart ( DH, 6)  
 
Cq6 −Sq6 0 0 
0 0 1 0 
−Sq6 −Cq6 0 0 
0 0 0 1 
 
 
U5 : T56 
 
Cq6 −Sq6 0 0 
0 0 1 0 
−Sq6 −Cq6 0 0 
0 0 0 1 
 
 
TRIGREDUCE (U5) 
 
Cq6 −Sq6 0 0 
0 0 1 0 
−Sq6 −Cq6 0 0 
0 0 0 1 
 
 
U4 : T45 · U5 
 
Cq5Cq6 −Cq5Sq6 −Sq5 0 
−Sq6 −Cq6 0 0 
−Sq5Cq6 Sq5Sq6 −Cq5 0 
0 0 0 1 
 
 
U3 : T34 · U4 
 
Sq4Sq6 + Cq4Cq5Cq6 Sq4Cq6 − Cq4Cq5Sq6 −Cq4Sq5 D4 
Sq4Cq5Cq6 − Cq4Sq6 −Sq4Cq5Sq6 − Cq4Cq6 −Sq4Sq5 0 
−Sq5Cq6 Sq5Sq6 −Cq5 0 
0 0 0 1 
 
 
U2 : T23 · U3 
s2 : Extrait (U2, 1) 
 
Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6) 
Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6) 
−Sq5Cq6 
 
 
n2 : Extrait (U2, 2) 
 
Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6) 
Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6) 
Sq5Sq6 
 
 
a2 : Extrait (U2, 3)
54 
Modélisation géométrique des robots - Commande en position des 
robots 
 
 
Sq3Sq4Sq5 − Cq3Cq4Sq5 
−Cq3Sq4Sq5 − Sq3Cq4Sq5 
−Cq5 
 
 
P2 : Extrait (U2, 4) 
D4Cq3 + D3 
 
D4Sq3 
0 
 
 
U1 : T12 · U2 
s1 : Extrait (U1, 1) 
0@ 
Cq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) − Sq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) 
Cq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) + Sq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) 
−Sq5Cq6 
1A 
n1 : Extrait (U1, 2) 
0@ 
Cq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) − Sq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) 
Sq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) + Cq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) 
Sq5Sq6 
1A 
a1 : Extrait (U1, 3) 
 
Cq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) − Sq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) 
Sq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) + Cq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) 
−Cq5 
 
 
P1 : Extrait (U1, 4) 
 
Cq2 (D4Cq3 + D3) − D4Sq2Sq3 
D4Cq2Sq3 + Sq2 (D4Cq3 + D3) 
0 
 
 
U0 : T01 · U1 
s0 : Extrait (U0, 1) 
0@ 
Cq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) − Sq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) 
Cq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) + Sq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) 
−Sq5Cq6 
1A 
n0 : Extrait (U0, 2) 
0@ 
Cq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) − Sq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) 
Sq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) + Cq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) 
Sq5Sq6 
1A 
a0 : Extrait (U0, 3) 
 
Cq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) − Sq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) 
Sq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) + Cq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) 
−Cq5 
 
 
P0 : Extrait (U0, 4)  
 
Cq2 (D4Cq3 + D3) − D4Sq2Sq3 
D4Cq2Sq3 + Sq2 (D4Cq3 + D3) 
q1 
 
 
./MGDH80.mac
2.4 Modélisation géométrique inverse d’un robot 55 
2.3.3.3 MGD du robot AFMA 
2.4 Modélisation géométrique inverse d’un robot 
2.4.1 Introduction 
Le modèle géométrique direct MGD permet de calculer les coordonnées opéra-tionnelles 
X en fonction des coordonnées articulaires q : 
MGI 
X q 
MGD 
Le problème inverse MGI consiste à calculer les coordonnées articulaires qui 
amènent l’organe terminal dans une situation désirée, spécifiée par ses coordonnées 
opérationnelles. 
Lorsqu’elle existe, la forme explicite qui donne toutes les solutions possibles au 
problème inverse (il y a rarement unicité de la solution) constitue ce que l’on appelle 
le modèle géométrique inverse MGI. 
Il n’existe pas une méthode analytique générale pour trouver le MGI, mais un 
certain nombre de méthodes, plus ou moins adaptées à des classes de cinématiques 
particulières : 
– la méthode de Pieper [Pie68] : permet de résoudre le problème pour un nombre 
limité d’architectures simples (robots à 6 degrés de liberté (ddl), possédant 3 
articulations rotoïdes d’axes concourants ou 3 articulations prismatiques). 
– la méthode de Paul [Pau81] : traite séparément chaque cas particulier et 
convient à la majorité des robots industriels 
– les méthodes géométriques ([LZ83], Elgazzar 85) consistent à trouver directe-ment 
chaque variable articulaire à partir de considérations géométriques. Il y 
a une grande dépendance de ces méthodes avec l’architecture du robot. 
Lorsque le modèle géométrique inverse n’existe pas (pas de forme explicite), on utilise 
des procédures numériques. 
Par itérations successives, on calcule une solution particulière au problème in-verse, 
qui est une solution locale (dépendant des conditions initiales). Outre cet 
inconvénient, ces méthodes sont pénalisantes en temps de calcul. 
citons par exemple : 
– les méthodes de type Newton RAPHSON procédant par linéarisation de la 
matrice de passage du mécanisme [Pie68]. 
– les méthodes basées sur le modèle différentiel inverse ([Fou80, Ren80, GBF85]).
56 
Modélisation géométrique des robots - Commande en position des 
robots 
– les méthodes basées sur la transposée de la matrice jacobienne ([WE84, SS94]). 
Nous utiliserons en détail dans cette partie, les méthodes de Pieper et de Paul, 
conduisant à une forme explicite du transformateur de coordonnées (MGI). 
2.4.2 Position du problème 
Soit fTE la matrice de transformation homogène représentant la situation finale 
désirée du repère outil par rapport au repère atelier. 
On a vu que dans le cas général, on peut exprimer fTE sous la forme : 
fTE = Z.0Tn.E (2.35) 
avec : 
– Z = matrice de transformation homogène définissant le repère R0 du robot 
dans le repère atelier. 
– E = matrice de transformation homogène définissant le repère outil RE dans 
le repère terminal. 
– 0Tn = matrice de passage homogène du robot. 
En regroupant à droite les termes connus, on obtient la relation 
U0 =0 Tn = Z−1.fTE.E−1 (2.36) 
Le problème consiste à trouver les variables articulaires q1, q2, ...qn pour que 0Tn soit 
égal à U0. 
On donne l’expression numérique de fTE et on connait celle de Z et de E. 
En résumé : 
X → fTE → U0 → q 
Convension (2.36) Méthode de Paul 
(2.37) 
Conclusion : Après avoir calculé la valeur numérique de U0 à partir de X, on 
utilise l’expression analytique de U0 pour extraire le vecteur q. La principale difficulté 
est donc ette dernière étape. 
2.4.3 Résolubilité d’un robot manipulateur (introduit par 
Pieper 68) 
Un robot manipulateur est dit résoluble lorsqu’il est possible de calculer toutes 
les configurations permettant d’atteindre une situation donnée. 
Tous les robots ne le sont pas, mais ce n’est pas une condition nécessaire pour 
la commande car dans de pareil cas, des méthodes itératives numériques sont mises 
en oeuvre pour trouver une solution locale. 
D’après Roth (76), les robots à moins de 6 ddl sont toujours résolubles. 
Avec 6 ddl, ils sont résolubles lorsqu’ils présentent les caractéristiques suivantes :
2.4 Modélisation géométrique inverse d’un robot 57 
– 3 articulations prismatiques 
– 3 articulations rotoïdes d’axes concourants 
– 1 articulation rotoïde et 1 articulation prismatique coaxiales 
– 2 paires d’articulations rotoïdes d’axes concourants 
Presque tous les robots à 6 d.d.l. de l’industrie sont résolubles. 
2.4.4 Nombre de solutions au problème inverse 
On peut constater pratiquement trois cas : 
– abscence de solutions. 
Par exemple, lorsque la situation désirée est en dehors de la zone accessible du 
robot. La zone accessible est limitée par le nombre de ddl, les débattements 
articulaires, et la dimension des segments. 
– infinité de solutions. 
Ce cas se présente lorsque : 
– le robot est redondant vis-à-vis de la tâche à réaliser. 
– le robot se trouve en configuration singulière. Il y a alors une redondance 
locale qui se traduit par le fait que le robot ne peut déplacer son organe 
terminal dans certaines directions ou tourner autour de certains axes. De ce 
fait, il perd un ou plusieurs ddl. Tout cela est dû aux valeurs numériques 
particulières prises par les paramètres pour décrire la situation désirée. 
– solution en ensemble fini. 
C’est le cas lorsque toutes les solutions peuvent être calculées sans ambiguïté. 
La forme explicite est alors un ensemble de vecteurs q1, q2, ...qr qui satisfont 
l’équation 
X = f(qi) (2.38) 
pour Pi = 1, 2, ..., r 
r = 
n 
j=1 Kj représente le nombre de configurations articulaires possibles, et 
Kj le nombre de solutions pour la variable articulaire qj . 
Le nombre de solutions dépend de l’architecture du robot manipulateur. Il n’existe 
pas de formule générale pour le déterminer. 
Pour les classes de robots à 6 ddl possédant trois articulations rotoïdes d’axes 
concourants, le nombre maximum de solutions est de 32 dans l’hypothèse ou aucun 
paramètre géométrique n’est égal à 0. 
Ce nombre dépend des valeurs particulières des paramètres géométriques, de 
l’amplitude des courses articulaires et donc du positionnement des butées méca-niques 
et/ou électriques.
58 
Modélisation géométrique des robots - Commande en position des 
robots 
2.4.5 Calcul du modèle géométrique inverse (MGI) 
2.4.5.1 Présentation de la méthode 
Considérons un robot manipulateur dont la matrice de passage homogène a pour 
expression : 
0Tn =0 T1.1T2....n−1Tn (2.39) 
On note : 
U0 =0 T1.1T2...n−1Tn = 
 
 
sx nx ax Px 
sy ny ay Py 
sz nz az Pz 
0 0 0 1 
 
 
(2.40) 
Cette matrice U0 est la donnée du problème. Elle représente la situation de l’organe 
terminal dans le repère de base du robot R0. 
Trouver les variables articulaires à partir de l’équation : 
U0 =0 T1.1T2.n−1Tn (2.41) 
en fonction des éléments articulaires s, n, a et P est très difficile. 
Paul (en 81) a proposé une méthode qui consiste à prémultiplier successivement 
les 2 membres de l’équation par les matrices de transformation homogène inverse. 
jTj−1 pour j variant de 1 à n − 1 (2.42) 
Cela permet d’isoler et d’identifier l’une après l’autre les variables articulaires que 
l’on recherche. 
Remarques : 
1. Pour un robot à 6 ddl, on procède comme suit : 
– Multiplication à gauche par 1T0 
1T0.U0 =1 T2.2T3.3T4.4T5.5T6 (2.43) 
1ère partie de l’équation = fonction de q1 uniquement 
2ème partie de l’équation = fonction de q2, q3, q4,q5, q6 déjà calculé pour 
MGD si on a pris la précaution de sauvegarder tous les résultats intermé-diaires 
Ui. 
– q1 est obtenu par identification d’un ou de deux éléments parmi les plus 
simples qui constitue l’expression de droite avec les termes équivalents dans 
celle de gauche. Les différents types de relations mises en jeu dans ces iden-tifications 
seront étudiés au paragraphe suivant (une dizaine de cas). 
– en partant de l’expression 1T0.U0 =1 T2.2T3.3T4.4T5.5T6, on prémultiplie par 
2T1 et on réitère le même processus. La succession des équations permettant
2.4 Modélisation géométrique inverse d’un robot 59 
le calcul de tous les qi est la suivante : 
U0 =0 T1.1T2.2T3.3T4.4T5.5T6 
1T0U0 =1 T2.2T3.3T4.4T5.5T6 → q1 
2T1U1 =2 T3.3T4.4T5.5T6 → q2 
3T2U2 =3 T4.4T5.5T6 → q3 
4T3U3 =4 T5.5T6 → q4 
5T4U4 =5 T6 → q5 et q6 
avec Uj =j Tj−1Uj−1 
(2.44) 
2. Dans certains cas il est possible de résoudre le robot en partant de qn. Il suffit 
alors de multiplier à droite les 2 membres de l’expression 
U0 =0 T1.1T2.n−1Tn par jTj−1 pour j variable de n à 2 (2.45) 
2.4.5.2 Solutions aux types d’équations rencontrés 
Lorsque nous utilisons la méthode précédente, nous sommes confrontés de ma-nière 
itérative à la résolution de système d’équations de différents types. L’utilisation 
d’un grand nombre de robots industriels a permis de constater que les principaux 
types rencontrés sont peu nombreux. La liste est donnée par le tableau 2.4.5.2. Les 
10 types d’équations sont détaillés ci-dessous. 
Equations type 1 : X.rj = Y 
Dans ce cas, la réponse est immédiate =⇒ r1 = 
Y 
X 
avec X6= 0 
Equations type 2 : X.Sθi + Y.Cθi = Z 
X et Y étant connus, deux cas peuvent être envisagés. 
– Z = 0, 2 solutions sont possibles : 
i 
θi = ′ATAN 2(−Y,X) 
θ= θi + 180o 
(2.46) 
– Z6= 0 
On résout le système en sinus et en cosinus, puis on prend l’arctangente : On peut 
réécrire le système type 2 de deux manières différentes. 
Y.Cθi = Z − X.Sθi 
X.Sθi = Z − Y.Cθi 
(2.47) 
en sinus : Y 2.C2θi = Z2 + X2.S2θi − 2.Z.X.Sθi 
Y 2.(1 − S2θi) = Z2 + X2.S2θi − 2.Z.X.Sθi 
(X2 + Y 2).S2θi − 2.Z.X.Sθi + Z2 − Y 2 = 0 
△ = 4.Y 2(X2 + Y 2 − Z2) 
d’où Sθi = 
Z.X + ε.Y √X2 + Y 2 − Z2 
X2 + Y 2 avec ε = ±1 
(2.48)
60 
Modélisation géométrique des robots - Commande en position des 
robots 
Type d’équations Forme du système d’équations 
Type 1 X.ri = Y 
Type 2 X.Sθi + Y.Cθi = Z 
Type 3 
X1.Sθi = Y1 
X2.Cθi = Y2 
ou 
X1.Sθi + Y1.Cθi = Z1 
X2.Sθi + Y2.Cθi = Z2 
Type 4 X1.rj .Sθi = Y1 
X2.rj .Cθi = Y2 
Type 5 X1.Sθi = Y1 + Z1.rj 
X2.Cθi = Y2 + Z2.rj 
Type 6 W.Sθj = X.Cθi + Y.Sθi + Z1 
W.Cθj = X.Sθi − Y.Cθi + Z2 
Type 7 W1.Cθj +W2.Sθj = X.Cθi + Y.Sθi + Z1 
W1.Sθj −W2.Cθj = X.Sθi − Y.Cθi + Z2 
Type 8 X.Cθi + Y.C(θi + θj) = Z1 
X.Sθi + Y.S(θi + θj) = Z2 
Type 9 X.Cθi = Y 
Type 10 X.Sθi = Y 
Table 2.1 – Systèmes d’equations possibles
2.4 Modélisation géométrique inverse d’un robot 61 
en cosinus : X2.S2θi = Z2 + Y 2.C2θi − 2.Z.Y.Cθi 
X2.(1 − C2θi) = Z2 + Y 2.C2θi − 2.Z.Y.Cθi 
(X2 + Y 2).C2θi − 2.Z.Y.Cθi + Z2 − X2 = 0 
△ = 4.X2(X2 + Y 2 − Z2) 
d’où Cθi = 
Z.Y − ε.X√X2 + Y 2 − Z2 
X2 + Y 2 avec ε = ±1 
(2.49) 
Le signe − devant ε vient du fait que nous devrons vérifier à chaque instant que 
C2θi + S2θi = 1. La réponse est la suivante : 
Sθi = 
Z.X + ε.Y √X2 + Y 2 − Z2 
X2 + Y 2 
Cθi = 
Z.Y − ε.X√X2 + Y 2 − Z2 
X2 + Y 2 
(2.50) 
si X2 + Y 2 − Z2 ≥ 0 alors θi = ATAN2(Sθi,Cθi) (2.51) 
Equations type 3 (forme 1) : 
X1.Sθi = Y1 
X2.Cθi = Y2 
(2.52) 
X1 et X2 étant non nuls, la réponse est la suivante. 
θi = ATAN2( 
Y1 
X1 
, 
Y2 
X2 
) (2.53) 
Equations type 3 (forme2) : 
X1.Sθi + Y1.Cθi = Z1 
X2.Sθi + Y2.Cθi = Z2 
(2.54) 
On se ramène au cas précédent en posant : 
Sθi = 
Y2.Z1 − Y1.Z2 
X1.Y2 − X2.Y1 
Cθi = 
X1.Z2 − X2.Z1 
X1.Y2 − X2.Y1 
(2.55)
62 
Modélisation géométrique des robots - Commande en position des 
robots 
d’où θi = ATAN2(Sθi,Cθi) 
Equations type 4 : 
X1.rj .Sθi = Y1 
X2.rj .Cθi = Y2 
(2.56) 
X1 et X2 étant non nuls. On réécrit le système : 
 
 
rj .Sθi = 
Y1 
X1 
rj .Cθi = 
Y2 
X2 
=⇒ 
 
 
r2 
j .S2θi = 
Y 2 
1 
X2 
1 
r2 
j .C2θi = 
Y 2 
2 
X2 
2 
(2.57) 
d’où 
s 
rj = ± 
Y 2 
1 
X2 
1 
+ 
Y 2 
2 
X2 
2 
Si rj n’est pas nul, on en déduit : 
θi = ATAN 2( 
Y1 
X1 
rj , 
Y2 
X2 
rj) (2.58) 
X1 et X2 étant non nuls. La réponse est la suivante : 
s 
rj = ± 
Y 2 
1 
X2 
1 
+ 
Y 2 
2 
X2 
2 
θi = ATAN2( 
Y1 
X1 
, 
Y2 
X2 
) 
(2.59) 
Equations type 5 : 
X1.Sθi = Y1 + Z1.rj 
X2.Cθi = Y2 + Z2.rj 
(2.60) 
X1 et X2 étant non nuls, on réécrit le système 
 
 
Sθi = 
Y1 
X1 
+ 
Z1 
X1 
.rj 
Cθi = 
Y2 
X2 
+ 
Z2 
X2 
.rj 
soit 
 
Sθi = V1 +W1.rj 
Cθi = V2 +W2.rj 
(2.61)
2.4 Modélisation géométrique inverse d’un robot 63 
S2θi + C2θi = 1 
1 = V 2 
1 + V 2 
2 + 2.(W1V1 +W2V2).rj + (W2 
1 +W2 
2 ).r2 
j 
△ = 4.(W1V1 +W2V2)2 − 4.(V 2 
1 + V 2 
2 − 1).(W2 
1 +W2 
2 ) 
△ = 4.(2.W1V1.W2V2) − 4.(V 2 
1 .W2 
2 + V 2 
2 .W2 
1 −W2 
1 −W2 
2 ) 
△ = 4.(W2 
1 +W2 
2 − (V1.W2 − V2.W1)2) 
(2.62) 
rj = −(V1.W1 + V2.W2) + ε 
p 
W2 
1 +W2 
2 − (V1.W2 − V2.W1)2 
W2 
1 +W2 
2 
(2.63) 
On en déduit : 
θi = ATAN2(V1 +W1.rj , V2 +W2.rj) (2.64) 
△ étant positif, avec ε = ±1, la réponse est la suivante 
rj = −(V1.W1 + V2.W2) + ε 
p 
W2 
1 +W2 
2 − (V1.W2 − V2.W2 
1 ) 
W2 
1 +W2 
2 
θi = ATAN2(V1 +W1.rj , V2 +W2.rj) 
(2.65) 
Equations type 6 : 
W.Sθj = X.Cθi + Y.Sθi + Z1 
W.Cθj = X.Sθi − Y.Cθi + Z2 
(2.66) 
Eliminons θj : 
W2.S2θj = X2.C2θi + Y 2.S2θi + Z2 
1 + 2.X.Y.Cθi.Sθi + 2.X.Cθi.Z1 + 2.Y.Sθi.Z1 
W2.C2θj = X2.S2θi + Y 2.C2θi + Z2 
2 − 2.X.Y.Cθi.Sθi + 2.X.Sθi.Z2 − 2.Y.Cθi.Z2 
W2 = X2 + Y 2 + Z2 
1 + Z2 
2 + 2.X.Cθi.Z1 + 2.Y.Sθi.Z1 + 2.X.Sθi.Z2 − 2.Y.Cθi.Z2 
(2.67) 
En sommant, on peut écrire : 
B1.Sθi + B2.Cθi = B3 (2.68)
64 
Modélisation géométrique des robots - Commande en position des 
robots 
Avec 
B1 = 2.(Y.Z1 + X.Z2) 
B2 = 2.(X.Z1 − Y.Z2) 
B3 = W2 − X2 − Y 2 − Z2 
1 − Z2 
2 
(2.69) 
Dans ce cas, θi peut être résolu par un système de type 2. 
Puis θj peut être résolu par un système de type 3 (forme 1) avec 
Y1 = X.Cθi + Y.Sθi + Z1 
Y2 = X.Sθi − Y.Cθi + Z2 
et 
X1 = W 
X2 = W 
(2.70) 
Equations type 7 : 
W1.Cθj +W2.Sθj = X.Cθi + Y.Sθi + Z1 
W1.Sθj −W2.Cθj = X.Sθi − Y.Cθi + Z2 
(2.71) 
En élevant les deux premiers membres au carré, on a : 
W2 
1 .C2θj +W2 
2 .S2θj + 2.W1.W2.Cθj .Sθj 
W2 
1 .S2θj +W2 
2 .C2θj − 2.W1.W2.Cθj .Sθj 
(2.72) 
En additionnant, il reste W2 
1 +W2 
2 
Pour les seconds membres élevés au carré, on a : 
X2.C2θi + Y 2.S2θi + Z2 
1 + 2.XY.Cθi.Sθi + 2.XZ1.Cθi + 2.Y Z1.Sθi 
X2.S2θi + Y 2.C2θi + Z2 
2 − 2.XY.Cθi.Sθi + 2.XZ2.Sθi − 2.Y Z2.Cθi 
(2.73) 
En additionnant, il reste 
X2 + Y 2 + Z2 
1 + Z2 
2 + 2.(XZ1 − Y Z2).Cθi + 2.(Y Z1 + XZ2).Sθi (2.74) 
Soit en regroupant les deux résultats : 
2.(XZ1 − Y Z2).Cθi + 2.(Y Z1 + XZ2).Sθi = W2 
1 +W2 
2 − X2 − Y 2 − Z2 
1 − Z2 
2 
(2.75) 
C’est une équation de type 2 en θi. Une fois θi calculé, on résout une des 2 équations 
de type 2 en θj . 
Equations type 8 : 
X.Cθi + Y.C(θi + θj) = Z1 
X.Sθi + Y.S(θi + θj) = Z2 
(2.76)
2.4 Modélisation géométrique inverse d’un robot 65 
En élevant au carré, on obtient : 
X2.C2θi + Y 2.C2(θi + θj) + 2.XY.Cθi.C(θi + θj) = Z2 
1 
X2.S2θi + Y 2.S2(θi + θj) + 2.XY.Sθi.S(θi + θj) = Z2 
2 
(2.77) 
En additionnant : 
2.XY.(Cθi.C(θi + θj) + Sθi.S(θi + θj)) = Z2 
1 + Z2 
2 − X2 − Y 2 (2.78) 
En intégrant un signe − dans le sinus et le cosinus, on a : 
2.XY.(C(−θi).C(θi + θj) − S(−θi).S(θi + θj)) = Z2 
1 + Z2 
2 − X2 − Y 2 (2.79) 
d’où 
C(θi + θj − θi) = Cθj = 
Z2 
1 + Z2 
2 − X2 − Y 2 
2.XY 
(2.80) 
On en déduit θj avec : 
p 
θj = ATAN2(± 
1 − C2θj ,Cθj) (2.81) 
Il suffit ensuite de résoudre un système de deux équations et deux inconnues comme 
suit : 
X.Cθi + Y.(Cθi.Cθj − Sθi.Sθj) = Z1 
X.Sθi + Y.(Cθi.Sθj + Sθi.Cθj) = Z2 
(X + Y.Cθj).Cθi − Y.Sθj .Sθi = Z1 
Y.Sθj .Cθi + (X + Y.Cθj).Sθi = Z2 
(2.82) 
Soit : 
B1.Cθi − B2.Sθi = Z1 avec B1 = X + Y.Cθj 
B2.Cθi + B1.Sθi = Z2 B2 = Y.Sθj 
(2.83) 
On résoud en sinus et cosinus (équations type 3 forme 2) et on obtient θi par : 
θi = ATAN2(Sθi,Cθi) (2.84) 
Equations type 9 : 
X.Cθj = Y (2.85) 
Dans ce cas, la réponse est immédiate : 
Cθi = 
Y 
X 
Sθi = ±√1 − C2θi 
et θi = ATAN2(Sθi,Cθi) (2.86)
66 
Modélisation géométrique des robots - Commande en position des 
robots 
Equations type 10 : 
X.Sθi = Y (2.87) 
Dans ce cas, la réponse est immédiate =⇒ 
Sθi = 
Y 
X 
Cθi = ±√1 − S2θi 
et θi = ATAN2(Sθi,Cθi) (2.88) 
2.4.6 MGI pour des robots à 6 ddl comportant un poignet 
rotule (d’axes concourants) 
Lorsqu’il s’agit de déterminer le MGI d’un robot, avant de se lancer dans la série 
de calculs itératifs présentés dans le paragraphe e), il est bon de se poser la question 
de simplification de la méthode. En effet, avant tout calcul, il faut savoir : 
– quelles sont les variables articulaires qui contribuent à la position du repère 
terminal du robot Rn 
– quelles sont les variables articulaires qui contribuent à l’orientation du repère 
terminal Rn 
Lorsque le poignet du robot est une rotule d’axes concourants, c’est le porteur qui 
pilote la position de l’organe terminal. Ce porteur est constitué de n − 3 ddl. 
On peut écrire : 
0Pn =0 Pn−3+1, c’est à dire : 
 
 
Px 
Py 
Pz 
1 
 
 
=0 T1 
1 T2 
2 T3...n−3Tn−3+1 
 
 0 
0 
0 
1 
 
 
(2.89) 
(2.90) 
avec : 
– 
 
 
Px 
Py 
Pz 
1 
 
 
: position de l’organe terminal dans le repère R0. 
– 
 
 
0 
0 
0 
1 
 
 
: opérateur d’extraction de la matrice de position à partir de la matrice 
de transformation homogène 
A partir de cette première relation, en reprenant la méthode itérative du para-graphe 
2.4.5.1 page 58, il est donc possible de calculer les valeurs des n−3 premières 
articulations.
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique
cour robotique

Contenu connexe

Tendances

Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développementDonia Hammami
 
Automatique systémes linéaires et non linéaires 2
Automatique   systémes linéaires et non linéaires 2Automatique   systémes linéaires et non linéaires 2
Automatique systémes linéaires et non linéaires 2badr zaimi
 
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGEProjet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGEHASSOU mohamed
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementNassim Bahri
 
Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...
Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...
Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...Majda El Aouni
 
PFE régulateur de vitesse d'un moteur DC
PFE régulateur de vitesse d'un moteur DCPFE régulateur de vitesse d'un moteur DC
PFE régulateur de vitesse d'un moteur DCMohamed Arhoujdam
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésECAM Brussels Engineering School
 
Automatisme) www.cours-online.com
Automatisme) www.cours-online.comAutomatisme) www.cours-online.com
Automatisme) www.cours-online.commorin moli
 
Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comAdnane Ahmidani
 
Autonomous navigation of flying robot
Autonomous navigation of flying robotAutonomous navigation of flying robot
Autonomous navigation of flying robotdoukhioualid
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 

Tendances (20)

Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Chapitre 4 robotique
Chapitre 4 robotiqueChapitre 4 robotique
Chapitre 4 robotique
 
Automatique systémes linéaires et non linéaires 2
Automatique   systémes linéaires et non linéaires 2Automatique   systémes linéaires et non linéaires 2
Automatique systémes linéaires et non linéaires 2
 
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGEProjet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
Projet ROBOT MOBILE SUIVEUR DE LIGNE BASE SUR LE TRAITEMENT D'IMAGE
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Cahier Meca 4ST
Cahier Meca 4STCahier Meca 4ST
Cahier Meca 4ST
 
05 gamme
05 gamme05 gamme
05 gamme
 
Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...
Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...
Devoir+corrigé+de+synthèse+n°3+ +génie+mécanique+système+de+grénaillage+et+de...
 
PFE régulateur de vitesse d'un moteur DC
PFE régulateur de vitesse d'un moteur DCPFE régulateur de vitesse d'un moteur DC
PFE régulateur de vitesse d'un moteur DC
 
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarquésProgrammation de systèmes embarqués : Introduction aux systèmes embarqués
Programmation de systèmes embarqués : Introduction aux systèmes embarqués
 
States machines (1)
States machines (1)States machines (1)
States machines (1)
 
Automatisme) www.cours-online.com
Automatisme) www.cours-online.comAutomatisme) www.cours-online.com
Automatisme) www.cours-online.com
 
Supervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.comSupervision industrielle www.automate pro.blogspot.com
Supervision industrielle www.automate pro.blogspot.com
 
Cahier Meca 4 ST Part 1/2
Cahier Meca 4 ST Part 1/2Cahier Meca 4 ST Part 1/2
Cahier Meca 4 ST Part 1/2
 
Autonomous navigation of flying robot
Autonomous navigation of flying robotAutonomous navigation of flying robot
Autonomous navigation of flying robot
 
Cahier Meca 4 ST Part 1/2
Cahier Meca 4 ST Part 1/2Cahier Meca 4 ST Part 1/2
Cahier Meca 4 ST Part 1/2
 
Liaisons mécaniques
Liaisons mécaniquesLiaisons mécaniques
Liaisons mécaniques
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 

Similaire à cour robotique

2008 evry0045
2008 evry00452008 evry0045
2008 evry0045uykuyk
 
Reduction de modele_et_controle_de_lecou (1)
Reduction de modele_et_controle_de_lecou (1)Reduction de modele_et_controle_de_lecou (1)
Reduction de modele_et_controle_de_lecou (1)Boughraraanis
 
cours-regulation-automatique-analogique
cours-regulation-automatique-analogiquecours-regulation-automatique-analogique
cours-regulation-automatique-analogiqueautomationdcs
 
Rd m resistance_materiaux
Rd m resistance_materiauxRd m resistance_materiaux
Rd m resistance_materiauxBeni Ludger
 
Electrocinetiqu mpsi
Electrocinetiqu mpsiElectrocinetiqu mpsi
Electrocinetiqu mpsinada laboudi
 
ConceptionMeca-2019-05-10.pdf
ConceptionMeca-2019-05-10.pdfConceptionMeca-2019-05-10.pdf
ConceptionMeca-2019-05-10.pdfleonelnguepnur
 
ÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdf
ÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdfÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdf
ÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdfsabirabdelilah1
 
Liste instruction
Liste instructionListe instruction
Liste instructionAli Fsahi
 
Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016
Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016
Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016OumaimaBenSaid
 
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes Souhail Bouzidi
 
Guide honoraires des ingénieurs géométres topographes
Guide honoraires des ingénieurs géométres topographesGuide honoraires des ingénieurs géométres topographes
Guide honoraires des ingénieurs géométres topographesBoujaber
 

Similaire à cour robotique (20)

Rapport
RapportRapport
Rapport
 
doc
docdoc
doc
 
2008 evry0045
2008 evry00452008 evry0045
2008 evry0045
 
Reduction de modele_et_controle_de_lecou (1)
Reduction de modele_et_controle_de_lecou (1)Reduction de modele_et_controle_de_lecou (1)
Reduction de modele_et_controle_de_lecou (1)
 
Elmachopt
ElmachoptElmachopt
Elmachopt
 
Maths
MathsMaths
Maths
 
cours-regulation-automatique-analogique
cours-regulation-automatique-analogiquecours-regulation-automatique-analogique
cours-regulation-automatique-analogique
 
METHODES NUMERIQUES.pdf
METHODES NUMERIQUES.pdfMETHODES NUMERIQUES.pdf
METHODES NUMERIQUES.pdf
 
8.02 introduction to electrodynamics 3e-griffiths
8.02 introduction to electrodynamics 3e-griffiths8.02 introduction to electrodynamics 3e-griffiths
8.02 introduction to electrodynamics 3e-griffiths
 
Rd m resistance_materiaux
Rd m resistance_materiauxRd m resistance_materiaux
Rd m resistance_materiaux
 
Electrocinetiqu mpsi
Electrocinetiqu mpsiElectrocinetiqu mpsi
Electrocinetiqu mpsi
 
ConceptionMeca-2019-05-10.pdf
ConceptionMeca-2019-05-10.pdfConceptionMeca-2019-05-10.pdf
ConceptionMeca-2019-05-10.pdf
 
ÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdf
ÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdfÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdf
ÉLÉMENTS DANALYSE RÉELLE (Jean-Etienne Rombaldi) (z-lib.org).pdf
 
Cours10
Cours10Cours10
Cours10
 
Liste instruction
Liste instructionListe instruction
Liste instruction
 
Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016
Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016
Introduction aux vibrations_mecaniques_belakroum_rassim_05_05_2016
 
Rapport final-FIROZI-V2
Rapport final-FIROZI-V2Rapport final-FIROZI-V2
Rapport final-FIROZI-V2
 
Polycopie_CNA_CD.pdf
Polycopie_CNA_CD.pdfPolycopie_CNA_CD.pdf
Polycopie_CNA_CD.pdf
 
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes Dimensionnement d'un Tour (IGH)  R+17 sous Eurocodes
Dimensionnement d'un Tour (IGH) R+17 sous Eurocodes
 
Guide honoraires des ingénieurs géométres topographes
Guide honoraires des ingénieurs géométres topographesGuide honoraires des ingénieurs géométres topographes
Guide honoraires des ingénieurs géométres topographes
 

Dernier

Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesangevaleryn
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxdocteurgyneco1
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 

Dernier (9)

Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 

cour robotique

  • 1. Eléments de Robotique Université Blaise Pascal T. Chateau 2012/2013 C0 C1 C2 Ck+1 Cn-2 Cn-1 Cn Ck+L Cm-1 Cm Ck z0,z1 zk zk+1 zk+L zm zn
  • 2.
  • 3. Table des matières Liste des figures iii Liste des tableaux vi Introduction 1 1 Géométrie et cinématique du déplacement 3 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Géométrie du déplacement . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Transformations homogènes . . . . . . . . . . . . . . . . . . . 3 1.2.1.1 Matrice de transformations homogènes de transla-tion pure . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1.2 Matrice de transformation homogène de rotation pure 5 1.2.1.3 Propriétés des matrices de transformation homogène 7 1.2.1.4 Rotation autour d’un axe u quelconque . . . . . . . . 12 1.2.2 Situation d’un solide dans l’espace . . . . . . . . . . . . . . . . 16 1.2.2.1 Description de la position d’un solide . . . . . . . . . 16 1.2.2.2 Description de l’orientation d’un solide . . . . . . . . 19 1.3 Cinématique du déplacement . . . . . . . . . . . . . . . . . . . . . . . 24 1.3.1 Mouvement circulaire . . . . . . . . . . . . . . . . . . . . . . . 24 1.3.2 Systèmes d’axes tournants . . . . . . . . . . . . . . . . . . . . 24 1.3.3 Systèmes d’axes mobiles dans le cas général . . . . . . . . . . 25 1.3.4 Lois de composition des vitesses . . . . . . . . . . . . . . . . . 26 2 Modélisation géométrique des robots - Commande en position des robots 29 2.1 Introduction à la modélisation . . . . . . . . . . . . . . . . . . . . . . 29 2.2 Description de la structure géométrique d’un robot . . . . . . . . . . 30 2.2.1 Notations et règles générales . . . . . . . . . . . . . . . . . . . 30 2.2.2 Description des robots à chaîne ouverte simple . . . . . . . . . 30
  • 4. ii Table des matières 2.2.2.1 Cadre général . . . . . . . . . . . . . . . . . . . . . . 30 2.2.2.2 Paramétrage de Denavit-Hartenberg modifié (Khalil 86) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.2.3 Exemples de description . . . . . . . . . . . . . . . . 33 2.2.3 Extensions aux chaînes fermées et arborescentes . . . . . . . . 36 2.2.3.1 Cas des chaînes arborescentes . . . . . . . . . . . . . 37 2.2.3.2 Cas des chaînes fermées . . . . . . . . . . . . . . . . 39 2.2.3.3 Exemples . . . . . . . . . . . . . . . . . . . . . . . . 40 2.3 Modélisation géométrique directe d’un robot . . . . . . . . . . . . . . 45 2.3.1 Matrice de transformation de l’organe terminal dans le repère atelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.3.2 Calcul du modèle géométrique direct d’un robot (MGD) . . . 46 2.3.3 Exemples de modèles géométriques directs . . . . . . . . . . . 47 2.3.3.1 MGD du robot AID-5 . . . . . . . . . . . . . . . . . 47 2.3.3.2 MGD du robot H-80 . . . . . . . . . . . . . . . . . . 51 2.3.3.3 MGD du robot AFMA . . . . . . . . . . . . . . . . . 55 2.4 Modélisation géométrique inverse d’un robot . . . . . . . . . . . . . . 55 2.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.4.2 Position du problème . . . . . . . . . . . . . . . . . . . . . . . 56 2.4.3 Résolubilité d’un robot manipulateur (introduit par Pieper 68) 56 2.4.4 Nombre de solutions au problème inverse . . . . . . . . . . . . 57 2.4.5 Calcul du modèle géométrique inverse (MGI) . . . . . . . . . . 58 2.4.5.1 Présentation de la méthode . . . . . . . . . . . . . . 58 2.4.5.2 Solutions aux types d’équations rencontrés . . . . . . 59 2.4.6 MGI pour des robots à 6 ddl comportant un poignet rotule (d’axes concourants) . . . . . . . . . . . . . . . . . . . . . . . 66 2.4.7 Exemples de calcul de MGI . . . . . . . . . . . . . . . . . . . 68 2.4.7.1 Calcul du MGI pour le robot AID-5 . . . . . . . . . 68 2.4.7.2 MGI du robot ACMA H-80 . . . . . . . . . . . . . . 74 2.5 Commande en position d’un robot . . . . . . . . . . . . . . . . . . . . 75 2.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.5.2 Génération de mouvement dans l’espace articulaire . . . . . . 76 2.5.2.1 Interpolation polynomiale . . . . . . . . . . . . . . . 77 2.5.2.2 Loi bang-bang . . . . . . . . . . . . . . . . . . . . . 83 2.5.2.3 Loi trapèze : loi bang-bang avec palier de vitesse . . 86 2.5.3 Génération de mouvement rectiligne dans l’espace opérationnel 94 Conclusion 97
  • 5. Table des matières iii Bibliographie 97
  • 6.
  • 7. Table des figures 1.1 Passage d’un repère Ri à un repère Rf . . . . . . . . . . . . . . . . . 4 1.2 Translation pure d’un repère Rf par rapport à un repère Ri . . . . . 5 1.3 Rotation pure autour de l’axe x d’un repère Rf par rapport à un repère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Rotation pure autour de l’axe y d’un repère Rf par rapport à un repère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Rotation pure autour de l’axe z d’un repère Rf par rapport à un repère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.6 Passage direct et inverse d’un repère Ri à un repère Rj . . . . . . . . 9 1.7 Transformations consécutives . . . . . . . . . . . . . . . . . . . . . . 10 1.8 Composition à droite et à gauche d’une transformation . . . . . . . . 12 1.9 Composition à droite d’une translation le long de l’axe y . . . . . . . 12 1.10 Composition à droite d’une translation le long de l’axe y . . . . . . . 13 1.11 Rotation autour d’un axe quelconque y . . . . . . . . . . . . . . . . 14 1.12 Coordonnées cartésiennes . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.13 Coordonnées cylindriques . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.14 Coordonnées sphériques . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.15 Les angles d’Euler (convention z, x, z) . . . . . . . . . . . . . . . . . . 20 1.16 Les angles de Bryant (convention x, y, z) . . . . . . . . . . . . . . . . 21 1.17 Les angles de roulis-tangage-lacet (convention z, y, x) . . . . . . . . . 22 1.18 Les quaternions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.19 Mouvement circulaire. . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.20 Système d’axes tournants. . . . . . . . . . . . . . . . . . . . . . . . . 25 1.21 Système d’axes mobiles : cas général. . . . . . . . . . . . . . . . . . . 25 1.22 Système d’axes mobiles : cas d’une chaîne articulaire simple. . . . . . 26 2.1 Robot à structure ouverte simple. . . . . . . . . . . . . . . . . . . . . 31 2.2 Paramètres géométriques dans le cas d’une structure ouverte simple. 32 2.3 Structure du robot AID-5. . . . . . . . . . . . . . . . . . . . . . . . . 34
  • 8. 2.4 Structure du robot ACMA H-80. . . . . . . . . . . . . . . . . . . . . 36 2.5 Robot à structure ouverte arborescente. . . . . . . . . . . . . . . . . . 37 2.6 Paramétrage nécessaire à un corps à plus de 2 articulations . . . . . 38 2.7 Repères nécessaires pour décrire une chaîne fermée . . . . . . . . . . 41 2.8 Synoptique du robot HITACHI-HPR . . . . . . . . . . . . . . . . . . 42 2.9 Synoptique du robot ASEA-IRB5 . . . . . . . . . . . . . . . . . . . . 43 2.10 Synoptique équivalent du robot ASEA-IRB5 . . . . . . . . . . . . . . 44 2.11 Repères nécessaires pour décrire un robot dans un atelier. . . . . . . 46 2.12 Boucles de génération de mouvement. (a) : dans l’espace articulaire - (b) : dans l’espace opérationnel. . . . . . . . . . . . . . . . . . . . . . 75 2.13 Degré 1 : Evolution de la position, de la vitesse et de l’accélération . 78 2.14 Degré 3 : Evolution de la position, de la vitesse et de l’accélération . 80 2.15 Degré 5 : Evolution de la position, de la vitesse et de l’accélération . 82 2.16 Loi bang-bang : Evolution de la position, de la vitesse et de l’accélé-ration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 2.17 Loi trapèze et bang-bang : Evolution de de la vitesse et de l’accéléra-tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 2.18 Loi trapèze : Evolution de la position, de la vitesse et de l’accélération 88 2.19 Loi trapèze : Evolution de la vitesse . . . . . . . . . . . . . . . . . . 89 2.20 Loi trapèze : Evolution de la vitesse . . . . . . . . . . . . . . . . . . 90 2.21 Loi trapèze : Evolution de la vitesse . . . . . . . . . . . . . . . . . . 91 2.22 Loi trapèze : cas où la vitesse n’est pas saturée . . . . . . . . . . . . 93
  • 9. Liste des tableaux 2.1 Systèmes d’equations possibles . . . . . . . . . . . . . . . . . . . . . . 60
  • 10.
  • 13. Chapitre 1 Géométrie et cinématique du déplacement 1.1 Introduction L’étude de la robotique nécessite des connaissances de base en Géométrie et en cinématique. Lorsque l’on désire commander un robot, il est nécessaire de situer ses différentes parties mobiles les unes par rapport aux autres. Pour ce faire, on associe un repère à chaque partie du robot (socle, effecteur, articulations). Le passage d’un repère à un autre (position, orientation) s’exprime sous la forme d’une matrice de passage. La géométrie, et plus particulièrement les coordonnées et transformations ho-mogènes sont des outils indispensables et très utilisés en robotique, qui font l’objet d’une grande partie de ce chapitre. La cinématique du déplacement, à travers la loi de composition des vitesses, fait également partie des bases de la robotique. Elle est abordée dans la deuxième partie du chapitre 1.2 Géométrie du déplacement 1.2.1 Transformations homogènes Dans le cas d’une transformation homogène, le type de représentation est matri-ciel. Le passage d’un repère initial Ri à un repère final Rf s’exprime par l’intermé-diaire d’une matrice M, appelée matrice de changement de repère, matrice de passage ou matrice de transformation homogène (cf fig. 1.1). En robotique,
  • 14. 4 Géométrie et cinématique du déplacement yi xi zi Ri zf yf Rf xf M Figure 1.1 – Passage d’un repère Ri à un repère Rf . cette matrice de dimension (4 × 4), notée iMf s’exprime sous la forme : iTf = iMf = (isj inj iaj iPj) =   sx nx ax Px sy ny ay Py sz nz az Pz 0 0 0 1   = iRf iPf 0 1 (1.1) où isj , inj et iaj sont les vecteurs unitaires, suivant les axes xj , yj et zj du repère Rj exprimés dans le repère Ri, où iPj est le vecteur exprimant l’origine du repère Rj dans le repère Ri, et avec : – iRf : matrice (3×3) des rotations donnant l’orientation notée iAf (de Rf dans Ri) – iPf : matrice (3 × 1) des translations donnant la position iMf = iRf iPf 0 1 = iAf iPf 0 1 = I3 iPf 0 1 × iAf 0 0 1 (1.2) A l’aide de la matrice iMf , il est possible d’exprimer les coordonnées d’un point quelconque P de l’espace dans le repère Ri à partir de ces coordonnées homogènes exprimées dans le repère Rf par la relation :   x′ y′ z′ 1   Ri =i Mf .   x y z 1   Rf = iRf iPf 0 1 .   x y z 1   Rf (1.3) 1.2.1.1 Matrice de transformations homogènes de translation pure Lorsque deux repères sont uniquement liés par une translation, il est possible de passer de l’un à l’autre en utilisant une matrice de transformation homogène de
  • 15. 1.2 Géométrie du déplacement 5 yi xi zi Ri xf yf zf Rf M c b a Figure 1.2 – Translation pure d’un repère Rf par rapport à un repère Ri . translation pure. Nous utiliserons les notations suivantes : – Trans(a, b, c) pour indiquer une translation (a selon l’axe x, b selon l’axe y et c selon l’axe z) – Trans(x, a) pour indiquer une translation a selon l’axe x – Trans(y, b) pour indiquer une translation b selon l’axe y – Trans(z, c) pour indiquer une translation c selon l’axe z Considérons une translation T composée de : – d’une translation a selon l’axe x → Trans(a, 0, 0) = Trans(x, a) – d’une translation b selon l’axe y → Trans(0, b, 0) = Trans(y, b) – d’une translation c selon l’axe z → Trans(0, 0, c) = Trans(z, c) La figure (1.2) montre un exemple de cette translation, associée à la matrice de transformation homogène de translation pure iMf . Les matrices de translation sont liées par la relation suivante : Trans(a, b, c) = Trans(a, 0, 0).Trans(0, b, 0).Trans(0, 0, c) = Trans(x, a).Trans(y, b).Trans(z, c) (1.4) La matrice de transformation homogène de translation pure iMf associée à cette translation s’exprime alors : M =   a I3 b c 0 0 0 1   =   a I3 0 0 0 0 0 1   .   0 I3 b 0 0 0 0 1   .   0 I3 0 c 0 0 0 1   (1.5) 1.2.1.2 Matrice de transformation homogène de rotation pure Lorsque deux repères sont uniquement liés par une rotation, il est possible de passer de l’un à l’autre en utilisant une matrice de transformation homogène de rotation pure. Nous utiliserons les notations suivantes :
  • 16. 6 Géométrie et cinématique du déplacement yi xi zi cos θx Ri xf yf zf Rf cos θx sin θx −sin θx θx θx θx Figure 1.3 – Rotation pure autour de l’axe x d’un repère Rf par rapport à un repère Ri . – Rot(x, θx) pour indiquer une rotation (θx autour de l’axe x) – Rot(y, θy) pour indiquer une rotation (θy autour de l’axe y) – Rot(z, θz) pour indiquer une rotation (θz autour de l’axe z) Dans la matrice de transformation homogène, la rotation est décrite par la matrice R présentée dans l’équation (1.1) page 4. Lorsque la rotation est nulle autour des trois axes, R devient la matrice identité (c’est le cas pour les rotations pures) : R = I3 =   1 0 0 0 1 0 0 0 1   (1.6) Exemple 1 : Une rotation θx autour de l’axe x (cf fig. 1.3). R =   1 0 0 0 cos θx −sin θx 0 sin θx cos θx   =   1 0 0 0 cθx −sθx 0 sθx cθx   (autre notation) (1.7) Notons (iRf , jRf , kRf ) la base associée au repère Rf et (iRi , jRi , kRi) la base associée au repère Ri. La matrice de rotation R est obtenue en décrivant (iRf , jRf , kRf ) en fonction de (iRi , jRi , kRi) : iRf = 1.iRi + 0.jRi + 0.kRi = isf jRf = 0.iRi + cos θx.jRi + sin θx.kRi = inf kRf = 0.iRi − sin θx.jRi + cos θx.kRi = iaf (1.8)
  • 17. 1.2 Géométrie du déplacement 7 yi xi zi Ri xf yf zf Rf θy θy θy Figure 1.4 – Rotation pure autour de l’axe y d’un repère Rf par rapport à un repère Ri . Exemple 2 : Une rotation θy autour de l’axe y (cf fig. 1.4). R =   cos θy 0 sin θy 0 1 0 −sin θy 0 cos θy   =   cθy 0 sθy 0 1 0 −sθy 0 cθy   (autre notation) (1.9) Exemple 3 : Une rotation θz autour de l’axe z (cf fig. 1.5). R =   cos θz −sin θz 0 sin θz cos θz 0 0 0 1   =   cθz −sθz 0 sθz cθz 0 0 0 1   (autre notation) (1.10) Rq. : Une rotation autour d’un axe principal x, y ou z laisse inchangé l’axe de rotation considéré. 1.2.1.3 Propriétés des matrices de transformation homogène Nous avons vu (eq. 1.1 page 4) qu’une matrice de transformation homogène T peut se mettre sous la forme : T =   sx nx ax Px sy ny ay Py sz nz az Pz 0 0 0 1   = A P 0 1 (1.11)
  • 18. 8 Géométrie et cinématique du déplacement yi xi zi Ri xf yf zf Rf θz θz θz Figure 1.5 – Rotation pure autour de l’axe z d’un repère Rf par rapport à un repère Ri . avec – A : matrice (3 × 3) des rotations donnant l’orientation (de Rf dans Ri) – P : matrice (3 × 1) des translations donnant la position (de Rf dans Ri) Lorsque la tranformation, entre le repère de départ et la repère d’arrivée est une translation pure, on a A = I3. Dans le cas d’une rotation pure, on a P = O3 = (0, 0, 0)T Propriété 1 La matrice de rotation A est orthogonale : A−1 = AT (1.12) Les éléments de la matrice A de rotation représentent les cosinus directeurs d’orien-tation (s, n, a). Elle ne contient que trois paramètres indépendants sur les 9 qui la constituent (trois angles de rotations). Un des vecteurs s, n ou a se déduit du produit vectoriel des deux autres, car ils constituent une base orthonormée. Par exemple : s = na n.a = 0 ||n|| = ||a|| = 1 (1.13) Propriété 2 Soit la matrice iTj de transformation homogène prenant le repère Ri pour l’amener sur le repère Rj . Si jTi est la matrice de transformation homogène prenant le repère Rj pour l’amener sur le repère Ri, alors iTj et jTi sont liés par la relation : iTj −1 = jTi (1.14)
  • 19. 1.2 Géométrie du déplacement 9 yi xi zi Ri zj yj Rj xj iTj jTi = (iTj)−1 Figure 1.6 – Passage direct et inverse d’un repère Ri à un repère Rj . La figure 1.6 illustre cette propriété. Soit le point P1 de coordonnées homogènes iv1 = (ivx,i vy,i vz, 1)T dans Ri et jv1 = (jvx,j vy,j vz, 1)T dans Rj .On a : jv1 = jTi.iv1 (a) iv1 = iTj .jv1 (b) (1.15) En multipliant par (iTj)−1 la relation (b) de l’équation (1.15), on obtient : (iTj)−1.iv1 = (iTj)−1.iTj .jv1 (1.16) En utilisant la relation (a) de (1.15), on en déduit : jTi = iTj −1 (1.17) Propriété 3 Soit la matrice T de transformation homogène effectuant une rotation d’angle θu autour de l’axe u (indifférement x, y ou z). La matrice inverse T−1 est également une matrice de transformation homogène effectuant une rotation autour de l’axe u, mais d’angle −θu : (T)−1 = (Rot(u, θu))−1 = Rot(u,−θu) = Rot(−u, θu) (1.18) Par convention sur le sens de rotation, on a : Rot(u,−θu) = Rot(−u, θu) (1.19) Exemple : rotation autour de l’axe x. Rot(x,−θx) =   1 0 0 0 0 c(−θx) −s(−θx) 0 0 s(−θx) c(−θx) 0 0 0 0 1   =   1 0 0 0 0 cθx sθx 0 0 −sθx cθx 0 0 0 0 1   = (Rot(x, θx))T (1.20)
  • 20. 10 Géométrie et cinématique du déplacement y0 x0 z0 R0 x1 y1 z1 R1 xk−1 zk−1 Rk−1 yk−1 xk yk zk Rk 0T1 k−1Tk 0Tk Figure 1.7 – Transformations consécutives . En utilisant la propriété 1, on en déduit : Rot(x,−θx) = (Rot(x, θx))T = (Rot(x, θx))−1 (1.21) Cette propriété est également vraie pour les matrices de transformation homogène de translation pure : Trans(u, d) = Trans(−u, d) = Trans(u,−d) (1.22) Propriété 4 L’inverse d’une matrice de transformation homogène peut être mis sous la forme : T−1 =   −sT .P AT −nT .P −aT .P 0 1  = AT −AT .P 0 1 (1.23) Propriété 5 Si un repère R0 a subit K transformations consécutives, et si la ieme (i = 1, 2, .., k) est définie par rapport au repère Ri−1, alors : 0Tk =0 T1.1T2.2T3.3T4...k−1Tk (1.24) La figure 1.7 illustre cette propriété. Propriété 6 La composition de deux matrices n’est pas commutative T1.T2 = A1 P1 0 1 . A2 P2 0 1 = A1.A2 A1.P2 + P1 0 1 (1.25)
  • 21. 1.2 Géométrie du déplacement 11 T2.T1 = A2 P2 0 1 . A1 P1 0 1 = A2.A1 A2.P1 + P2 0 1 (1.26) Le produit des matrices de rotation n’étant pas commutatif, on en déduit : T1.T26= T2.T1 (1.27) Propriété 7 Dans le cas de transformations consécutives autour du même axe u, ce dernier reste inchangé par la transformation : Rot(u, θ1).Rot(u, θ2) = Rot(u, θ1 + θ2) (1.28) et, Trans(u, d).Rot(u, θ1) = Rot(u, θ1).Trans(u, d) (1.29) Propriété 8 Soit un repère Rj , défini par une tansformation iTj du repère Ri. Si Rj subit une transformation T (définie par rapport au repère Ri), alors la transfor-mation totale amenant au repère final Rf s’exprime sous la forme : iTf = T.iTj (1.30) Si cette même transformation, amenant Rj sur Rf , est définie dans Rj par T′, alors on a également : iTf =i Tj .T′ (1.31) On en déduit la relation suivante : T.iTj =i Tj .T′ (1.32) Cette relation est illustrée par la figure 1.8. Lorsqu’un repère Rj , défini par rapport à un repère Ri, subit une transformation exprimée par rapport à ce même repère Rj , alors la transformation totale est déduite par la composition à gauche de cette transformation. Remarque sur la composition des transformations Une composition à droite s’applique au repère final. (iTj = Rot(x, θx)R0 .Trans(y, d)R1). La figure 1.9 illustre ce propos. Une composition à gauche s’applique au repère initial. (iTj =Rot(x, θx)R0 .Trans(y, d)R0). La figure 1.10 illustre ce propos.
  • 22. 12 Géométrie et cinématique du déplacement iTj Rf yi xi zi Ri xj yj zj Rj xf zf yf T′ T.iTj Figure 1.8 – Composition à droite et à gauche d’une transformation . y0 z1 x0 z0 R0 y1 x1 R1 x2 y2 z2 R2 Trans(y, d) Rot(x, θx) θx θx Figure 1.9 – Composition à droite d’une translation le long de l’axe y . 1.2.1.4 Rotation autour d’un axe u quelconque Soit un vecteur unitaire u quelconque. Soit Ri, un repère tel que son origine coïncide avec celle du vecteur u. Les coordonnées de u sont alors, dans Rj : u = (ux, uy, uz)T . Soit Rj , un repère tel que : – son origine coïncide avec celle du vecteur u, – son axe zj se confonde avec le vecteur u. La transformation homogène permettant le passage du repère Ri au repère Rj peut être décomposée en : – Rot(z, α) : une rotation autour de l’axe z d’un angle α tel que u ∈ au plan (zf , yf ), – Rot(x, β) : une rotation autour de l’axe x d’un angle β.
  • 23. 1.2 Géométrie du déplacement 13 y0 x0 z0 R0 y1 x1 z1 R1 x2 y2 z2 R2 Trans(y, d) Rot(x, θx) θx Figure 1.10 – Composition à droite d’une translation le long de l’axe y . On obtient la relation suivante : iTj = Rot(z, α).Rot(x, β) (1.33) Cette relation est illustrée sur la figure 1.11 Le repère Ri subit donc deux transfor-mations successives : Ri == Rot(z, α) == Rf == Rot(x, β) == Rj (1.34) En développant la relation iTj =Rot(z, α).Rot(x, β), on obtient :   cα −sα 0 0 sα cα 0 0 0 0 1 0 0 0 0 1   .   1 0 0 0 0 cβ −sβ 0 0 sβ cβ 0 0 0 0 1   =   cα −sα.cβ sα.sβ 0 sα cα.cβ −cα.sβ 0 0 sβ cβ 0 0 0 0 1   (1.35) A partir de la troisième colonne de la matrice iTj , on peut donc extraire les coordonnées du vecteur u, exprimées dans le repère Ri : u =   ux uy uz   =   sα.sβ −cα.sβ cβ   = iaj (1.36) Tourner autour de l’axe u (défini par le vecteur unitaire u) d’un angle θ, revient donc à tourner autour de l’axe zj . D’où, d’après la propriété 8, définie page 11, on en déduit que : Rot(u, θ).iTj =i Tj .Rot(z, θ) (1.37) soit : Rot(u, θ) =i Tj .Rot(z, θ).(iTj)−1 (1.38)
  • 24. 14 Géométrie et cinématique du déplacement yi xi zi Ri yj xj zj Rj xf yf zf Rf α α α β β β u Figure 1.11 – Rotation autour d’un axe quelconque y . d’où : Rot(u, θ) = Rot(z, α).Rot(x, β).Rot(z, θ).Rot(z,−α).Rot(x,−β) (1.39) En développant cette relation, on obtient : Rot(u, θ) = A(u, θ) 0 0 1 (1.40) avec : A(u, θ) =   u2 x.(1 − cθ) + cθ uxuy.(1 − cθ) − uz.sθ uxuz.(1 − cθ) + uy.sθ 2z uxuy.(1 − cθ) + uz.sθ u.(1 − cθ) + cθ uyuz.(1 − cθ) − ux.sθ uxuz.(1 − cθ) − uy.sθ uyuz.(1 − cθ) + ux.sθ u.(1 − cθ) + cθ 2y  (1.41) On préfère utiliser la relation suivante (formule de Rodrigues) : A(u, θ) = u.uT .(1 − cθ) + I3.cθ + ˆu.sθ (1.42) avec : ˆu =   0 −uz uy uz 0 −ux −uy ux 0   (1.43) ˆu est appelée matrice de pré produit vectoriel. En effet, on a la relation : u ∧ V = ˆu.V (1.44)
  • 25. 1.2 Géométrie du déplacement 15 pour tout vecteur V .   ux uy uz   ∧   Vx Vy Vz   =   uy.Vz − uz.Vy uz.Vx − ux.Vz ux.Vy − uy.Vx   =   0 −uz uy uz 0 −ux −uy ux 0  .   Vx Vy Vz   (1.45) Remarque représentation exponentielle eˆu. Nous avons vu que A(u, θ) = u.uT .(1 − cθ) + I3.cθ + ˆu.sθ avec : ˆu =   0 −uz uy uz 0 −ux −uy ux 0   (1.46) De plus, on a : u.uT =   ux uy uz  .(ux uy uz) =   2y u2 x uxuy uxuz uxuy uuyuz uxuz uyuz u2z   (1.47) et ux 2 + ut 2 + uz 2 = 1 ˆu2 = ˆu.ˆu = u.uT − I3 =   u2 x − 1 uxuy uxuz uxuy u2y − 1 uyuz uxuz uyuz u2z − 1   (1.48) Il est donc possible de réécrire la matrice de rotation sous la forme (autre forme de la formule de Rodrigues) : A(u, θ) = I3 + ˆu.sθ + ˆu2.(1 − cθ) (1.49) En développant en série de Mac Laurin les fonctions sinus et cosinus, on a : A(u, θ) = I3 + ˆu. θ − θ3 3! + θ5 5! − θ7 7! + ˆu2. + ... θ2 2! − θ4 4! + θ6 6! − ... (1.50) Comme on a ˆu3 = −ˆu, ˆu4 = −ˆu2, ˆu5 = ˆu et ˆu6 = ˆu2, on a donc : A(u, θ) = I3 + ˆu.θ + (ˆu.θ)2 2! + (ˆu.θ)3 3! + (ˆu.θ)4 4! + (ˆu.θ)5 5! + ... (1.51) Ce qui représente le développement en séries de Mac Laurin de la fonction exponen-tielle. Il vient que : A(u, θ) = exp(ˆu, θ) = eˆu. (1.52)
  • 26. 16 Géométrie et cinématique du déplacement Exemple : Rotation autour de l’axe x A(x, θ) = eˆu. = I3 + ˆu.sθ + ˆu2.(1 − cθ) (1.53) avec u = (1, 0, 0)T A(x, θ) =   1 0 0 0 1 0 0 0 1  +   0 0 0 0 0 −1 0 1 0  .sθ+   0 0 0 0 −1 0 0 0 −1  .(1−cθ) (1.54) A(x, θ) =   1 0 0 0 cθ −sθ 0 sθ cθ   (1.55) 1.2.2 Situation d’un solide dans l’espace La situation d’un solide dans l’expace est exprimée par une matrice de transfor-mation homogène de la forme : T =   sx nx ax Px sy ny ay Py sz nz az Pz 0 0 0 1   = A P 0 1 (1.56) avec : – A matrice (3×3) des rotations donnant l’oriantation du solide dans un repère fixe R0 – P matrice (3×1) des translations donnant la position du solide dans un repère fixe R0 Nous allons présenter quelques méthodes de description usuelles en robotique, pour décrire la situation d’un repère Rn, associé à un solide quelconque, dans un repère de référence R0. Nous aborderons d’abord les différentes méthodes permettant de représenter la position du solide, puis celles permettant de paramétrer l’orientation de ce même solide. 1.2.2.1 Description de la position d’un solide La position de l’origine d’un repère lié à un solide Rn, par rapport à un repère de référence R0, peut être définie par différents types de coordonnées : – cartésiennes, – cylindriques, – sphériques. Le choix d’une description est guidé par les caractéristiques du manipulateur (forme du volume de travail) d’une part, et par la tâche à réaliser d’autre part.
  • 27. 1.2 Géométrie du déplacement 17 y0 x0 z0 R0 xn yn zn Rn T Pz P Px y Figure 1.12 – Coordonnées cartésiennes . y0 x0 z0 R0 xn yn zn Rn T α r z Figure 1.13 – Coordonnées cylindriques . Coordonnées cartésiennes C’est la méthode la plus générale. Elle donne direc-tement les composantes du vecteur de position P. Cette représentation est utilisée lorsque la structure du robot est cartésienne (par exemple : robot cartésien Afma, Acma-p80, Ibm-7565,...). La figure 1.12 illustre cette représentation. La matrice de position est la suivante : Pcar =   Px Py Pz   (1.57) Coordonnées cylindriques Cette représentation est utilisée lorsque la structure du robot est cylindrique (par exemple : robot Acma th8, Cincinnati-t3-363,...). La figure 1.13 illustre cette représentation La matrice de position est la suivante : Pcyl =   r.cα rsα z   (1.58)
  • 28. 18 Géométrie et cinématique du déplacement y0 x0 z0 R0 xn yn zn Rn T α β r Figure 1.14 – Coordonnées sphériques . On peut exprimer les coordonnées cylindriques en fonction des coordonnées caté-siennes par les relations suivantes : r = p P2 x + P2 y α = atan2(Py, Px) z = Pz (1.59) où la fonction atan2 permet le calcul de l’arc-tangente à partir de deux arguments. Le résultat α ∈ [−180; 180], le quadrant étant fixé par l’analyse du signe de Px et de Py. Seul les cas Px = 0 et Py = 0 constitue une singularité (impossibilité de solution). Coordonnées sphériques Cette représentation est utilisée lorsque la structure du robot est spérique (par exemple : robot Unimation-1000/2000/4000, Psa-barnabé, Stanford,...). La figure 1.14 illustre cette représentation. La matrice de position est la suivante : Psph =   r.cα.sβ r.sα.sβ r.cβ   (1.60) On peut exprimer les coordonnées spériques en fonction des coordonnées carté-siennes, par les relations qui suivent : r = p P2 x + P2 y + P2 z α = atan2(Py, Px) si β6= 0 ou α = 0 si β = 0 α = atan2 Py sα , Pz ! si α6= 0 ou β = atan2(Px, Pz) si α = 0 (1.61)
  • 29. 1.2 Géométrie du déplacement 19 1.2.2.2 Description de l’orientation d’un solide Pour décrire d’orientation d’un solide, le choix de trois paramètres se révèle parfois difficile. Aussi, on se ramène à des représentations redondantes. Les méthodes les plus utilisées sont les suivantes : – les cosinus directeurs, – les angles d’Euler, – les angles de Bryant, – les angles Roulis-Tangage-Lacet, – les paramètres d’Euler (ou Olingue-Rodrigues, quaternions). Les cosinus directeurs La description de l’orientation d’un solide par les cosinus directeurs est donnée par les trois vecteurs s, n et a constituant 9 éléments appelés cosinus directeurs. La matrice d’orientation  est la suivante :  sx nx ax sy ny ay sz nz az   (1.62) La connaissance de deux vecteurs choisis parmi les 3 est suffissante (le troisième est obtenu par le produit vectoriel des deux autres). 3 composantes seulement sont indépendantes, mais dans le cas général, il est difficile de les fixer. La description de l’orientation d’un solide par les cosinus directeurs est une méthode redondante. Les angles d’Euler Dans ce cas, l’orientation d’un repère Rn associé à un solide quelconque, dans un repère référence R0, est déterminée par la spécification de 3 angles correspondants à trois rotations successives (z, x, z). La figure 1.15 illustre cette méthode de desciption de l’orientation. Le plan (xn, yn) coupe le plan (x0, y0) suivant une droite ON appelée ligne modale, perpendiculaire aux axes z0 et zn. Son sens positif est donné par le produit vectoriel zn ∧ z0. Comme le montre la figure 1.15, les angles d’Euler sont définis comme suit : – φ (précession) : angle entre x0 et ON tel que 0 ≤ φ ≤ 3600 – θ (nutation) : angle entre z0 et zn tel que 0 ≤ θ ≤ 1800 – ψ (rotation propre) : angle entre ON et xn tel que 0 ≤ ψ ≤ 3600 φ et ψ sont mesurés dans le sens donné par la règle du ‘“tire-bouchon” respectivement autour des axes Z0 et Zn. La composition de ces trois rotations permet de calculer la matrice d’orientation. En effet, on a : AEul = E(z, φ).A(x, θ).A(z, ψ) (1.63) d’où AEul =   cφ.cψ − sφ.cθ.sψ −cφ.sψ − sφ.cθ.cψ sφ.sθ sφ.cψ + cφ.cθ.sψ −sφ.sψ + cφ.cθ.cψ −cφ.sθ sθ.sψ sθ.cψ cθ   (1.64)
  • 30. 20 Géométrie et cinématique du déplacement y0 x0 z0 R0 xn yn zn Rn N O ψ ψ θ θ φ φ pl(x0, y0) pl(xn, yn) Figure 1.15 – Les angles d’Euler (convention z, x, z) . Remarque : Au lieu de prendre par convention l’ordre (z, x, z), cer-tains auteurs prennent l’ordre (z, y, z), ce qui donne : AEul = A(z, φ).A(y, θ).A(z, ψ) (1.65) On peut montrer, que pour passer des cosinus directeurs aux angle d’Euler, les relations suivantes sont utilisables : φ = atan2(−ax, ay) à 1800 près (φ = atan2(ax,−ay) + 1800) (3éme colonne) θ = atan2(sφ.ax − cφ.ay, az) (3éme colonne) ψ = atan2(−cφ.nx − sφ.ny, cφ.sx + sφ.sy) (1/2éme colonne) (1.66) Dans le cas où ax et ay sont nuls, les axes z0 et zn sont confondus ; donc θ est nul ou égal à 1800. Cette situation correspond à un cas singulier, dans lequel, les rotations φ et psi s’effectuent autour du même axe et c’est la quantité φ + ψ qui intervient. Lorsque θ = 0, on a alors : AEul = A(z, φ + ψ) (1.67) on en déduit que φ + ψ =antan2(−nx, ny) (2ème colonne de la matrice de rotation autour de z) et φ = 0 Les angles de Bryant Comme pour les angles d’Euler, l’orientation d’un repère Rn, associé à un solide quelconque, dans un repère de référence R0, est déterminée
  • 31. 1.2 Géométrie du déplacement 21 y0 x0 z0 φ2 zn yn R0 xn Rn y1 x1 z1 y2 x2 z2 φ1 φ1 φ1 φ2 φ2 φ3 φ3 φ3 Figure 1.16 – Les angles de Bryant (convention x, y, z) . par la spécification de 3 angles correspondants à 3 rotations successives (x, y, z). La figure 1.16 illustre cette description de l’orientation. La composition de ces trois notations permet de calculer la matrice d’orientation. En effet, on a : ABry = A(x, φ1).A(y, φ2).A(z, φ3) (1.68) d’où ABry =   cφ2.cφ3 cφ1.sφ3 + sφ1.sφ2.cφ3 sφ1.sφ3 − cφ1.sφ2.cφ3 −cφ2.sφ3 cφ1.cφ3 − sφ1.sφ2.sφ3 sφ1.cφ3 + cφ1.sφ2.sφ3 sφ2 −sφ1.cφ2 cφ1.cφ2   (1.69) On peut montrer, que le passage des cosinus directeurs aux angles de Bryant est obtenu par les relations suivantes : φ1 = atan2(−nz, az) à 1800 près (φ1 = atan2(nz,−az) + 1800) (3/4éme colonne) φ2 = atan2(sz, cφ1.az − sφ1.nz) (3éme ligne) φ3 = atan2(cφ1.nx + sφ1.ax, cφ1.ny + sφ1.ay) (3/4éme colonne) (1.70) Les roulis-tangage-lacet Comme pour les deux représentations précédentes, l’orientation d’un repère Rn, associé à un solide quelconque, dans un repère de référence R0, est déterminée par la spécification de 3 angles correspondants à 3 ro-tations successives (z, y, x). La figure 1.17 illustre cette description de l’orientation. La composition de ces trois rotations permet de calculer la matrice d’orientation : ARTL = A(z, φ).A(y, θ).A(x, ψ) (1.71)
  • 32. 22 Géométrie et cinématique du déplacement y0 x0 z0 R0 xn yn zn Rn y1 x1 z1 x2 z2 φ φ φ θ θ θ ψ ψ ψ Figure 1.17 – Les angles de roulis-tangage-lacet (convention z, y, x) . d’où ARTL =   cφ.cθ cφ.sθ.sψ − sφ.cψ cφ.sθ.cψ + sφ.sψ sφ.cθ sφ.sθ.sψ + cφ.cψ sφ.sθ.cψ − cφ.sψ −sθ cθ.sψ cθ.cψ   (1.72) On peut montrer, que le passage des cosinus directeurs aux angles RTL est obtenu par les relations suivantes : φ = atan2(sy, sx) à 1800 près (φ = atan2(−sy,−sx) + 1800) (1ère colonne) θ = atan2(−sz, cφ.sx + sφ.sy) (1ère colonne) ψ = atan2(sφ.ax − cφ.ay,−sφ.nx + cφ.ny) (3/4éme colonne) (1.73) IL y a une singularité si sy = sx = 0 Les paramètres d’Euler (les quaternions) Dans ce cas, l’orientation d’un re-père Rn, associé à un solide quelconque, dans un repère de référence R0, est déter-minée par la spécification des 4 paramètres (λ1, λ2, λ3, λ4) qui décrivent une rotation unique équivalente θ ∈ [−180; 180] autour d’un axe de vecteur unitaire ~u, tels que : λ1 = cos 2 λ2 = ux. sin 2 λ3 = uy. sin 2 λ4 = uz. sin 2 (1.74)
  • 33. 1.2 Géométrie du déplacement 23 y0 x0 z0 R0 θ ~u xn yn zn Rn Figure 1.18 – Les quaternions. . Ces paramètres ont les propriétés suivantes : 2λ21 − 1 = cos θ (a) et λ21 + λ22 + λ23 + λ24 = 1 (b) (1.75) La figure 1.18 illustre cette description de l’orientation La matrice d’orientation est la suivante : AQuat =   2.(λ21 + λ22 ) − 1 2.(λ2.λ3 − λ1.λ4) 2.(λ2.λ4 + λ1.λ3) 2.(λ2.λ3 + λ1.λ4) 2.(λ21 + λ23 ) − 1 2.(λ3.λ4 − λ1.λ2) 2.(λ2.λ4 − λ1.λ3) 2.(λ3.λ4 + λ1λ2) 2.(λ21 + λ24 ) − 1   (1.76) Pour démontrer cette relation, il suffit de remplacer les expressions des paramètres (λ1, λ2, λ3, λ4) dans la matrice et de comparer avec celle obtenue pour une rotation autour d’un axe ~u quelconque. On peut montrer, que le passage des cosinus directeurs aux quaternions (para-mètres d’Euler) est obtenu par les relations suivantes : λ1 = 1 p sx + ny + az + 1 2 . λ2 = 1 p sx − ny − az + 1 2 .sign(nx − ay). λ3 = 1 p −sx + ny − az + 1 2 .sign(ax − sz). λ4 = 1 p −sx − ny + az + 1 2 .sign(sy − nx). (1.77) La fonction sign(A) donne le signe d’un réel A
  • 34. 24 Géométrie et cinématique du déplacement yf xf zf Rf P R s A θ Figure 1.19 – Mouvement circulaire. . 1.3 Cinématique du déplacement Dans cette partie, nous aborderons les principales relations utilisables lorsqu’il s’agit de décrire le mouvement d’un corps solide. 1.3.1 Mouvement circulaire Soit un point P qui se déplace sur un cercle de rayon R (cf fig. 1.19) : – s représente la longueur de l’arc AP donc s = R.θ – θ est l’angle au centre du cercle correspondant La vitesse tangentielle ν peut s’exprimer en fonction de la vitesse angulaire de ro-tation ω par la relation suivante : ν = ds dt = R. dθ dt = R.ω (1.78) 1.3.2 Systèmes d’axes tournants Considérons un système d’axes tournants représenté par la figure 1.20 Soit Rf (xz, yf , zf ) un repère absolu d’origine O que nous considérons fixe. Soit Rm (xm, ym, zm) un repère tournant par rapport à Rf de même origine O. Soit A = (A1,A2,A3)T (vecteur position de A exprimé dans Rm), un point variable dans l’espace. Alors, on a : ! dA dt Rf = dA dt ! Rm + ω ∧ A (1.79) où V (A)Rf = V (A)Rm + ω ∧ A (1.80) où ω représente la vitesse angulaire de rotation du repère Rm par rapport au repère Rf .
  • 35. 1.3 Cinématique du déplacement 25 yf xf zf Rf ym xm zm Rm A Figure 1.20 – Système d’axes tournants. . ym xm zm Rm yf xf zf Rf P O r R Q Figure 1.21 – Système d’axes mobiles : cas général. . 1.3.3 Systèmes d’axes mobiles dans le cas général Soit Rf (xf , yf , zf ) un repère absolu d’origine O que nous considérons fixe. Soit Rm (xm, ym, zm) un repère mobile par rapport à Rf d’origine Q. Supposons que R soit le vecteur position de l’origine Q par rapport à O. Supposons que .R soit la vitesse du point Q par rapport à O. Supposons que r soit le vecteur position d’un point P quelconque par rapport à Q. Soit .r la vitesse du point P par rapport à Q. La figure 1.21 représente la scène. On a alors : V (P)Rf = V (Q)Rf + V (P)Rm + ω ∧ r (1.81) soit : dr dt ! Rf = .R + dr dt ! Rm + ω ∧ r (1.82) où : – .R exprime la vitesse du point Q par rapport à O,
  • 36. 26 Géométrie et cinématique du déplacement zf y0 x0 z0 R0 C1 y1 x1 z1 R1 yi xi zi Ri yi+1 xi+1 zi+1 Ci R C i+1 0 Ci+1 Figure 1.22 – Système d’axes mobiles : cas d’une chaîne articulaire simple. . – dr dt ! Rm exprime le mouvement du aux translations, – ω ∧ r exprime le mouvement du aux rotations, – ω exprime la vitesse angulaire de rotation de Rm par rapport à Rf . Remarque 1 : Si Q est confondu avec O, alors : .R = 0. Il s’en suit que : dr dt ! Rf = dr dt ! Rm + ω ∧ r (1.83) qui s’écrit également : .r Rf= .r Rm +ω ∧ r (1.84) Ce qui permet de vérifier les relations précédentes. Remarque 2 : Si, de plus, P ne varie par en amplitude (c’est à dire en position), alors .r Rm= 0. Il s’en suit que : .r Rf= ω ∧ r = −r ∧ ω = ˆω.r (1.85) avec – ω exprime la vitesse angulaire de rotation de Rm par rapport à Rf , – ˆω exprime la matrice de pré produit vectoriel (tenseur ˜ω). 1.3.4 Lois de composition des vitesses Le but de cette partie est d’établir une relation de récurrence pour une chaine articulaire formée par les corps successifs d’un robot. A chacun des corps Ci, on associe un repère Ri. De plus, on considère R0 comme repère fixe. La figure 1.22 décrit le cas d’une chaîne articulaire. Dans ce cas, on peut exprimer la vitesse de
  • 37. 1.3 Cinématique du déplacement 27 translation associée au corps Ci+1 par la relation suivante : V (Oi+1)(R0) (Ri) = V (Oi)(R0) (Ri) + V (Oi+1)(Ri) (Ri) + i (R0) (Ri) ∧ OiOi+1 (1.86) où : – V (Oi+1)(R0) (Ri) représente la vitesse de translation de translation de Oi+1 par rapport à O0 exprimée dans le repère Ri, – V (Oi)(R0) (Ri) représente la vitesse de translation de Oi par rapport à O0 exprimée dans le repère Ri, – V (Oi+1)(Ri) (Ri) représente la vitesse de translation de Oi+1 par rapport à Oi ex-primée dans le repère Ri, – (R0) i représente la vitesse angulaire de rotation du repère Ri par rapport au (Ri) repère R0 exprimée dans le repère Ri, – Oi+1Oi représente le vecteur position de l’origine Oi+1 dans le repère Ri. De même, on peut écrire : V (Oi+1)(R0) (Ri) = iAi+1.V (Oi+1)(R0) (Ri+1) (1.87) et V (Oi)(R0) (Ri) = iAi−1.V (Oi)(R0) (Ri−1) (1.88) iAi+1 représente la matrice rotation de la matrice de transformation homogène iTi+1 permettant le passage du repère Ri à Ri+1. Pour les vitesses angulaires de rotation, nous utiliserons la relation suivante : i (R0) (Ri) = i (Ri−1) (Ri−1) + iAi−1. i−1 (R0) (Ri−1) (1.89) avec : – (R0) i représente la vitesse angulaire de rotation du repère Ri par rapport à (Ri) R0 exprimée dans le repère Ri, – i (Ri−1) (Ri−1) représente la vitesse angulaire de rotation du repère Ri par rapport à Ri−1 exprimée dans le repère Ri−1, – iAi−1 représente la matrice de rotation (cosinus directeur) de la matrice de transformation homogène permettant le passage du repère Ri au repère Ri−1, – i−1 (R0) (Ri−1) représente la vitesse angulaire de rotation du repère Ri−1 par rapport à R0 exprimée dans le repère Ri−1. Ces trois relations permettent de calculer les vitesses de rotation et de translation de n’importe quel segment du robot, en particulier celles de l’organe terminal.
  • 38.
  • 39. Chapitre 2 Modélisation géométrique des robots - Commande en position des robots 2.1 Introduction à la modélisation La conception et la commande des robots manipulateurs nécessitent le calcul de certains modèles mathématiques, tels que les – modèles de transformation entre : – l’espace opérationnel X (dans lequel on définit la situation de l’organe ter-minal) – l’espace articulaire q (dans lequel on définit la configuration du robot) X ←→ q (2.1) – modèles dynamiques définissant les équations du mouvement du robot, qui permettent d’établir les relations entre les couples et les forces exercés par les actionneurs et, les positions, vitesses et accélérations articulaires : = f(q, .q , .. q, F) (2.2) Parmi les modèles de transformation, on distingue : – les modèles géométriques direct et inverse qui expriment la situation de l’or-gane terminal en fonction de la configuration du mécanisme articulaire et in-versement. X ←→ q (2.3) – les modèles différentiels direct et inverse qui expriment la différentielle de la situation de l’organe terminal en fonction de la configuration du mécanisme articulaire et inversement. .X ←→ .q (2.4) La plupart de ces modèles sont établis par calcul symbolique. Dans cet objectif, un logiciel de calcul symbolique est un outil essentiel.
  • 40. 30 Modélisation géométrique des robots - Commande en position des robots L’Ecole Centrale de Nantes a mis sur le marché un logiciel appelé SYMORO+ [KC] qui permet l’étude, le développement et le test de tous ces modèles. Il existe des méthodes et notations utilisées pour la modélisation des robots. La plus répandue est celle de Denavit-Hartenberg [DH55]. Elle est bien adaptée pour des structures ouvertes simples, mais présente des ambiguïtés lorsqu’elle est appliquée sur des robots à structures fermées ou arborescentes. Dans les années 80, Wisama Khalil propose une modification de cette méthode : méthode de Denavit-Hartenberg modifiée (dîte méthode de Khalil). Cette méthode permet la description homogène en un nombre minimum de paramètres pour la représentation des différentes struc-tures de robots généralement rencontrés. 2.2 Description de la structure géométrique d’un robot 2.2.1 Notations et règles générales La méthode générale est basée sur les règles et conventions suivantes : – la variable de l’articulation j est notée qj – le corps j est noté Cj – les corps sont supposés parfaitement rigides. Ils sont connectés par des articu-lations considérées comme idéales. – le repère Rj est lié au corps Cj – l’axe du zj repère Rj , est porté par l’axe articulaire j – les paramètres qui permettent de définir le repère Rj , par rapport au repère antécédent sont munis de l’indice j 2.2.2 Description des robots à chaîne ouverte simple 2.2.2.1 Cadre général Le système est composé de n+1 corps C0, C1, C2...Cn et de n articulations (voir figure 2.1). Le corps C0 désigne la base du robot. Le corps Cn est celui qui porte l’organe terminal. L’articulation j connecte le corps Cj au corps Cj−1. 2.2.2.2 Paramétrage de Denavit-Hartenberg modifié (Khalil 86) Le repère Rj fixé au corps Cj est défini de telle sorte que : – zj est porté par l’axe articulaire j – xj est porté par la perpendiculaire commune aux axes zj et zj+1 Si zj et zj+1 sont parallèles ou colinéaires, le choix de xj n’est pas unique. Dans ce cas, des
  • 41. 2.2 Description de la structure géométrique d’un robot 31 C0 C1 C2 C3 C4 Cn−2 Cn−1 Cn Figure 2.1 – Robot à structure ouverte simple. . considérations de symétrie ou de simplicité permettent alors un choix rationnel. – yj est l’axe qui forme un trièdre direct : yj = zj ∧ xj Le passage du repère Rj−1 au repère Rj , s’exprime en fonction de 4 paramètres suivants : – αj est l’angle entre les axes zj−1 et zj correspondant à une rotation autour de xj−1 – dj est la distance entre les axes zj−1 et zj le long de xj−1 – θj est l’angle entre les axes xj−1 et xj correspondant à une rotation autour de zj – rj est la distance entre les axes xj−1 et xj correspondant à une rotation autour de zj La figure 2.2 représente la définition des paramètres de Denavit-Hartenberg mo-difié. La variable articulaire qj (associée à la jeme articulation ) est soit : – θj si l’articulation est de type rotoïde (σj = 0) – rj si l’articulation est de type prismatique (σj = 1) On a donc : qj = σj .θj + σj .rj La matrice de transformation homogène définissant le repère Rj dans le repère Rj−1 est donnée par : j−1Tj = Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj) (2.5) Soit : j−1Tj =   Cθj −Sθj 0 dj Cαj .Sθj Cαj .Cθj −Sαj −rj .Sαj Sαj .Sθj Sαj .Cθj Cαj rj .Cαj 0 0 0 1   (2.6)
  • 42. 32 Modélisation géométrique des robots - Commande en position des robots zj−1 Oj−1 xj−1 αj zj Oj xj rj θj dj Figure 2.2 – Paramètres géométriques dans le cas d’une structure ouverte simple. . On remarque que : j−1Aj = Rot(x, αj).Rot(z, θj) car les opérations de rota-tions/ translations successives sur un même axe sont commutatives. On en déduit la matrice de transformation homogène inverse permettant le pas-sage du repère Rj au repère Rj−1. jTj−1 = Trans(z,−rj).Rot(z,−θj).Trans(x,−dj).Rot(x,−αj) (2.7) dont l’expression littérale est la suivante (jAj−1 = (j−1Aj)T ) : jTj−1 =   Cθj Cαj .Sθj Sαj .Sθj −dj .Cθj −Sθj Cαj .Cθj Sαj .Cθj dj .Sθj 0 −Sαj Cαj −rj 0 0 0 1   (2.8) Remarques : 1. Pour la définition de R0, le choix le plus simple consiste à confondre R0 avec R1 pour la valeur particulière de l’articulation q1 = 0. Cela implique que z0 et z1 sont confondus, et que x0 = x1 pour q1 = 0. 2. De même, en définissant l’axe xn du repère Rn comme étant colinéaire à xn−1 lorsque qn = 0, on rend les paramètres rn = θn = 0. 3. Pour une articulation j prismatique, l’axe zj est parallèle à l’axe de l’articula-tion, mais la position sur cet axe peut être quelconque. 4. Cette méthode de description fixe la configuration zéro du robot tel que q = q = qi0 = 0. On peut choisir une autre configuration (quelconque), en procédant au changement de variable suivant : q c = q − q i0 avec
  • 43. 2.2 Description de la structure géométrique d’un robot 33 – q c = nouveau vecteur des variables articulaires – q i0 = configuration à zéro choisie 5. De même, si la convention axe positif est changée au montage du robot, il suffit d’effectuer le changement de variable : q c = −q. 6. Lorsqu’une cinématique est constituée par 2 ou plusieurs axes parallèles consé-cutifs, on peut se ramener à une seule matrice de transformation équivalente en faisant intervenir la somme des variables articulaires. Par exemple, si αj+1 = 0, les axes zj et zj+1 sont parallèles. Dans ce cas, on a : j−1Tj+1 =j−1 Tj .jTj+1 = Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj).Rot(x, αj+1).Trans(x, dj+1). Rot(z, θj+1).Trans(z, rj+1) = Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj). Trans(x, dj+1).Rot(z, θj+1).Trans(z, rj+1) = Rot(x, αj).Trans(x, dj).Trans(z, rj).Rot(z, θj + θj+1).Trans(x, dj+1).Trans(z, rj+1) = Rot(x, αj).Trans(x, dj).Rot(z, θj + θj+1).Trans(z, rj + rj+1).Trans(x, dj+1) (2.9) Ce qui peut se réécrire sous la forme suivante : j−1Tj+1 =   C(θj + θj+1) −S(θj + θj+1) 0 dj + dj+1.Cθj Cαj .S(θj + θj+1) Cαj .C(θj + θj+1) −Sαj dj+1.Cαj .Sθj − (rj + rj+1).Sαj Sαj .S(θj + θj+1) Sαj .C(θj + θj+1) Cαj dj+1.Sαj .Sθj + (rj + rj+1).Cαj 0 0 0 1   (2.10) La transformation inverse a pour expression : j+1Tj−1 =   C(j + j+1) Cj .S(j + j+1) Sj .S(j + j+1) −dj .C(j + j+1) − dj+1.Cj+1 −S(j + j+1) Cj .C(j + j+1) Sj .C(j + j+1) dj .S(j + j+1) + dj+1.Sj+1 0 −Sj . Cj −(rj + rj+1) 0 0 0 1   (2.11) Dans ces deux expressions, on voit apparaître les sommes θj + θj+1 et rj + rj+1 (cf (2.9)). 2.2.2.3 Exemples de description Robot manipulateur AID-5 (RRR,RRR) La figure 2.3 montre le synoptique du robot AID-5. Le robot AID-5 est constitué : – d’un porteur muni de 3 degrés de liberté (RRR) – d’un poignet muni de 3 degrés de liberté (RRR) : une rotule d’axes concourants Pour déterminer les paramètres de Denavit-Hartenberg, il faut procéder par étapes : 1. disposer les axes zj sur les axes articulaires 2. disposer R0 tel que R0 = R1 pour q1 = 0
  • 44. 34 Modélisation géométrique des robots - Commande en position des robots + + + + + + D3 RL4 x0, x1 z0, z1 x2 z2 x4, x5, x6 z3 z4 x3 z5 z6 Figure 2.3 – Structure du robot AID-5. .
  • 45. 2.2 Description de la structure géométrique d’un robot 35 3. disposer les axes xj en prenant la convention xj = zj ∧ zj+1 (trièdre direct). Il se peut que pour des raisons de simplicité, qu’il soit préférable de prendre la convention trièdre indirect. Dans le cas du robot AID-5, les axes zj sont posés de manière automatique en fonction des conventions de signes sur les axes articulaires (angle positif selon la règle du vissage selon l’axe). Le tableau des paramètres de Denavit-Hartenberg relatif au robot AID-5 est le suivant : J σj αj dj θj rj Trièdre R0 =⇒ R1 0 0 0 q1 0 D/I R1 =⇒ R2 0 90 0 q2 0 D R2 =⇒ R3 0 0 D3 q3 0 D/I R3 =⇒ R4 0 90 0 q4 RL4 D R4 =⇒ R5 0 −90 0 q5 0 I R5 =⇒ R6 0 −90 0 q6 0 I Plusieurs problèmes sont mis à jour par cet exemple. Tout d’abord, le choix des vecteurs xj n’est pas unique. En effet, si l’on regarde les liaisons R0 =⇒ R1 et R2 =⇒ R3, les axes zj sont soit colinéaires, soit parallèles. Pour simplifier la représentation, dans les deux cas on choisit l’axe xj correspondant de tel sorte que le passage à l’axe xj+1 soit simple (même direction). Dans certains cas, on regarde également la liaison précédente, de manière à simplifier la représentation du passage de l’axe xj−1 à l’axe xj . Pour le choix de x6, il serait nécessaire de connaître la direction de l’axe xe du repère outil. En l’abscence de celle-ci, le choix est arbitraire mais doit être simple. Par conséquent, seul deux choix sont retenus en général. Ces deux choix diffèrent par une direction opposée. Dans notre exemple, nous avons retenu la simplification du passage R5 =⇒ R6 qui conduit à avoir x5 = x6 pour q6 = 0. Dans la dernière colonne de ce tableau figure la convention prise (pour chaque liaison), pour fixer la direction de l’axe xj . Il est clair que cela revient au même en définitif, si l’on considère que les repères R0 et Rn sont les mêmes selon les conventions prises. La seule différence porte sur la présence et non présence dans le tableau de rotations supplémentaires de valeur 180o = π (qui marchent par paire). Robot manipulateur ACMA H-80 (PRR, RRR) La figure 2.4 montre le synoptique de ce robot. On considère le robot ACMA H-80 constitué : – d’un porteur muni de 3 degrés de liberté (PRR) – d’un poignet muni de 3 degrés de liberté (RRR) : une rotule d’axes concourants Dans le cas du robot ACMA H-80, les axes zj sont posés de manière automatique en fonction des conventions de signes sur les axes articulaires (angle positif selon la règle du vissage selon l’axe).
  • 46. 36 Modélisation géométrique des robots - Commande en position des robots z2 + + + + + x0, x1 x4, x5, x6 + D3 D4 z0, z1 x2 z3 z4 x3 z5 z6 Figure 2.4 – Structure du robot ACMA H-80. . Le tableau des paramètres de Denavit-Hartenberg relatif au robot ACMA H-80 est le suivant : J σj αj dj θj rj Trièdre R0 =⇒ R1 1 0 0 0 q1 D/I R1 =⇒ R2 0 0 0 q2 0 D/I R2 =⇒ R3 0 0 D3 q3 0 D/I R3 =⇒ R4 0 0 D4 q4 0 I R4 =⇒ R5 0 −90 0 q5 0 I R5 =⇒ R6 0 −90 0 q6 0 D/I Robot cartésien AFMA (PPP, RRR) (Voir td) 2.2.3 Extensions aux chaînes fermées et arborescentes En dehors des chaînes ouvertes simples, il est possible de rencontrer : – des chaînes ouvertes arborescentes – des chaînes fermées – des chaînes composées de chaînes simples, arborescentes ou non, et de chaînes fermées
  • 47. 2.2 Description de la structure géométrique d’un robot 37 C0 C1 C2 Cn Cn−1 Cn−2 Ck Ck+1 Ck+L Cm Cm−1 z0, z1 zk zk+L zk+1 zm zn Figure 2.5 – Robot à structure ouverte arborescente. . 2.2.3.1 Cas des chaînes arborescentes Une structure (ou chaîne) est constituée par n + 1 corps, n articulations et r organes terminaux. Par convention, les corps et articulations sont numérotés de la manière suivante : – la base est fixe et constitue le corps C0 – les numéros des corps et articulations sont croissants sur chaque branche en partant de la base (corps C0), vers un organe terminal – le corps Cj est articulé autour de l’articulation j par rapport au corps Ca(j), qui représente le corps antécédent sur la chaîne menant au corps Cj en partant de la base. La topologie du système est complètement définie par la donnée des indices a(j) pour j = 1, 2, ..n La figure 2.5 représente un exemple de chaîne arborescente avec deux organes ter-minaux. Les différents repères sont placés de la manière suivante : – Rj est fixe par rapport au corps Cj – zj est porté par l’axe articulaire j Jusque là, ces notations sont les mêmes que celles employées pour une chaîne ouverte simple.
  • 48. 38 Modélisation géométrique des robots - Commande en position des robots Figure 2.6 – Paramétrage nécessaire à un corps à plus de 2 articulations . Si le corps Ci′ , avec i = a(j), n’a pas d’arborescence, l’axe xi est choisi comme la perpendiculaire commune aux axes zi, zj . En effet, le repère Rj est successeur au repère Ri. On retient les 4 paramètres de Denavit-Hartenberg pour paramétrer la liaison. Si le corps Ci porte plus d’un corps, Cj et Ck par exemple, il faut alors choisir l’axe xi sur l’une des deux perpendiculaires communes à zi, zj ou à zi, zk. Le bon sens est de retenir la préférence à la chaîne menant à l’organe terminal principal, ou bien à la chaîne qui possède le plus grand nombre de corps articulés. Deux cas doivent être envisagés pour définir un repère lié à Cj successeur de Ci. – si l’axe xi est la perpendiculaire commune à zi, zj alors la matrice de passage iTj (du repère Ri au repère Rj) s’écrit comme dans le cas des chaînes simples à partir des 4 paramètres (αj , dj , θj , rj). – Si l’axe xi est la perpendiculaire commune à zi, zk, 2 paramètres supplémen-taires doivent être introduit. – γj = l’angle entre l’axe xi et la perpendiculaire commune aux axes zi, zj notées xi′ , autour de l’axe zi – εj = distance entre l’axe xi et l’axe xi′ , le long de l’axe zi. La figure 2.6 montre les différents repères et paramètres mis en oeuvre pour traiter ce cas particulier. Ces deux paramètres permettent de construire la matrice de passage iTi′ , per-mettant le passage du repère Ri au repère Ri′ . Le repère R′i est identique au repère Ri, mais il est construit sur l’autre perpendiculaire commune. iTi′ = Rot(z, γj).Trans(z, εj) (2.12)
  • 49. 2.2 Description de la structure géométrique d’un robot 39 iTi′ =   C j −S j 0 0 S j C j 0 0 0 0 1 εj 0 0 0 1   (2.13) D’où on en tire : iTj ,=i Ti′ .i′ Tjaveci′ Tj = Rot(x, αj).Trans(x, dj).Rot(z, θj).Trans(z, rj) (2.14) Après développement, on obtient la matrice globale suivante : iTj =   Cγj .Cθj − Sγj .Cαj .Sθj −Cγj .Sθj − Sγj .Cαj .Cθj Sγj .Sαj dj .Cγj + rj .Sγj .Sαj Sγj .Cθj + Cγj .Cαj .Sθj −Sγj .Sθj + Cγj .Cαj .Cθj −Cγj .Sαj dj .Sγj − rj .Cγj .Sαj Sαj .Sθj Sαj .Cθj Cαj rj .Cαj + εj 0 0 0 1   (2.15) Son inverse est : jTi =   Cγj .Cθj − Sγj .Cαj .Sθj Sγj .Cθj + Cγj .Cαj .Sθj Sαj .Sθj −εj .Sαj .Sθj − dj .Cθj −Cγj .Sθj − Sγj .Cαj .Cθj −Sγj .Sθj + Cγj .Cαj .Cθj Sαj .Cθj −εj .Sαj .Cθj + dj .Sθj Sγj .Sαj −Cγj .Sαj Cαj −rj − εj .Cαj 0 0 0 1   (2.16) Remarque : Si γj et εj = 0, la matrice de transformation homogène iTi′ est unitaire. C’est le cas fréquent où les axes xi et xi′ sont confondus. Dans ce cas, on se ramène au cas des chaînes simples. 2.2.3.2 Cas des chaînes fermées Dans ce cas, le système est constitué de n+1 corps et éventuellement de r organes terminaux. De plus, il dispose de L n articulations. Le nombre de boucles fermées est donné par la relation : b = L − n Pour décrire ce style de robot, on détermine une structure arborescente équiva-lente en coupant virtuellement chacune des boucles fermées sur l’une de ses articu-lations. On choisit une articulation non motorisée de préférence, qui est telle que le nombre de corps qui la sépare de la racine ait le même ordre de grandeur que l’on parcourt la boucle d’un côté ou de l’autre. On procède comme au paragraphe précédent pour la numérotation des corps et des articulations. Les articulations coupées sont notées à partir de n + 1 jusqu’à L. On place ensuite les repères sur les corps en suivant les règles déjà énoncées. Pour chaque articulation coupée k, on définit un repère Rk, fixe par rapport à l’un des corps supportant cette articulation.
  • 50. 40 Modélisation géométrique des robots - Commande en position des robots Soit Cj ce corps. Conformément aux règles précédentes, l’axe zk est porté par l’axe articulaire k. L’axe xk est porté par la perpendiculaire commune à zk et zj . A partir des 4 ou 6 paramètres usuels indicés k, on peut construire la matrice de transformation homogène iTk permettant le passage du repère Ri au repère Rk, avec i = a(k) désignant l’autre corps lié à l’articulation k. D’autre part, Rk étant fixe par rapport au repère Rj , on peut définir une matrice constante jTk permettant le passage du repère Rj au repère Rk. Pour éviter une confusion de notations, les paramètres géométriques de cette dernière transformation sont indicés k + b. On a donc jTk →j Tk+b et j = a(k + b). Cela revient à introduire un repère Rk+b confondu avec le repère Rk tel que : k+bTk = I4. Dans ces conditions, on peut écrire une relation de fermeture de la boucle : k+bTk =k+b Tj .jTj+1..iTk = I4 (2.17) Ainsi la description d’un système comportant des boucles fermées se ramène à celle d’un système arborescent obtenu en coupant chaque boucle sur une de ses articula-tions, et en rajoutant des repères supplémentaires. Du fait que la coupure se fait sur une articulation non motorisée, on remarque que les paramètres rk+b et θk+b sont nuls. La figure 2.7 montre les différents repères mis en oeuvre pour traiter le cas particulier des chaînes fermées. 2.2.3.3 Exemples Robot manipulateur Hitachi HPR (RRR, RR) On considère le robot HITACHI-HPR constitué de 5 degrés de liberté, 7 corps mobiles et 8 articulations rotoïdes. Il comporte une boucle fermée de type parallélogramme. Les articulations 2, 5 et 8 ne sont pas motorisées. La boucle est ouverte sur l’articulation 8 entre les corps 4 et 5. La figure 2.8 montre le synoptique de ce robot. Dans le cas du robot HITACHI-HPR, les axes zj sont posés de manière auto-matique en fonction des conventions de signes sur les axes articulaires (angle positif selon la règle du vissage selon l’axe). Le tableau des paramètres de Denavit-Hartenberg relatif au robot HITACHI-HPR est le suivant :
  • 51. 2.2 Description de la structure géométrique d’un robot 41 Figure 2.7 – Repères nécessaires pour décrire une chaîne fermée . J a(j) σj γj εj αj dj θj rj Trièdre R0 =⇒ R1 0 0 0 0 0 0 q1 0 D/I R1 =⇒ R2 1 0 0 0 −90 0 θ2 0 I R1 =⇒ R3 1 0 0 0 −90 0 q3 0 I R2 =⇒ R4 2 0 0 0 0 D4 q4 0 D/I R3 =⇒ R5 3 0 0 0 0 D5 θ5 0 D/I R5 =⇒ R6 5 0 0 0 0 D6 q6 0 D/I R6 =⇒ R7 6 0 0 0 90 0 q7 0 D R4 =⇒ R8 4 0 0 0 0 D8 = D5 θ8 0 D/I R5 =⇒ R9 5 0 0 0 0 D9 = −D4 0 0 D/I Robot manipulateur ASEA IRB5 (RPP, RR) On considère le robot ASEA IRB5 constitué de 5 degrés de liberté, 7 corps mobiles et 6 articulations rotoïdes et 2 prismatiques. Il comporte une boucle fermée de type parallélogramme. Les articulations 4, 5, 8 et 9 ne sont pas motorisées. La figure 2.9 montre le synoptique de ce robot. Dans le cas du robot ASEA IRB5, on préfère simplifier le schéma synoptique en faisant apparaître deux liaisons rotoïdes à la place du parallélogramme et des deux liaisons prismatiques. Cela nous permet d’aboutir à la nouvelle représentation équivalente (cf. figure 2.10). En considérant cette nouvelle représentation, le tableau des paramètres de
  • 52. 42 Modélisation géométrique des robots - Commande en position des robots Figure 2.8 – Synoptique du robot HITACHI-HPR .
  • 53. 2.2 Description de la structure géométrique d’un robot 43 Figure 2.9 – Synoptique du robot ASEA-IRB5 .
  • 54. 44 Modélisation géométrique des robots - Commande en position des robots Figure 2.10 – Synoptique équivalent du robot ASEA-IRB5 .
  • 55. 2.3 Modélisation géométrique directe d’un robot 45 Denavit-Hartenberg relatif au robot ASEA IRB5 est le suivant : J a(j) σj γj εj αj dj θj rj Trièdre R0 =⇒ R1 0 0 0 0 0 0 q1 L1 D/I R1 =⇒ R2 1 0 0 0 90 0 q2 0 D/I R2 =⇒ R3 1 0 0 0 0 L2 q3 0 D/I R3 =⇒ R4 2 0 0 0 0 L3 q4 0 D/I R4 =⇒ R5 5 0 0 0 90 0 q5 0 D/I Robot arborescent (TBD) 2.3 Modélisation géométrique directe d’un robot 2.3.1 Matrice de transformation de l’organe terminal dans le repère atelier Un robot n’est qu’un constituant d’un poste de travail. Généralement, on lui adjoint des systèmes d’alimentation et d’évacuation de pièces, des dispositifs de bridage, des capteurs extéroceptifs... Il est donc nécessaire de situer dans l’espace de travail à la fois le robot mais également tous ce qui peut être amené à intéragir avec ce robot. Pour cela, nous définissons un repère atelier que nous noterons Rf , différent dans la plupart des cas du repère R0 lié à la base fixe du robot (évident dans le cas où il y a plusieurs robots). La figure 2.11 présente les différents repères et les différentes matrices de trans-formation homogène mis en jeu pour la modélisation de robot dans un atelier. On adopte les notations suivantes : – Z =f T0 la matrice de transformation homogène permettant d’exprimer la situation du repère de base du robot R0 dans le repère atelier Rf – 0Tn la matrice de transformation homogène permettant d’exprimer la situation du repère de terminal Rn du robot dans le repère de base R0 du robot – E =n TE la matrice de transformation homogène permettant d’exprimer la situation du repère outil du robot RE dans le repère terminal du robot Rn – fTE la matrice de transformation homogène globale permettant d’exprimer la situation du repère outil du robot RE dans le repère atelier Rf La présence du repère RE permet de prendre en compte le fait qu’un robot peut avoir plusieurs tâches robotiques à effectuer, et de ce fait plusieurs outils. Ces repères outils sont choisis pour faciliter la description de la tâche robotique associée. Des directions peuvent être privilégiées : comme par exemple un axe d’usi-nage, un axe de vissage, une orientation pour soudure ou peinture, .... On appelle matrice de passage du robot la composition des matrices de transfor-mation exprimant le repère du corps terminal Rn dans le repère de base du robot
  • 56. 46 Modélisation géométrique des robots - Commande en position des robots R0 Rn z = fT0 0Tn Rf RE E = nTE fTE Figure 2.11 – Repères nécessaires pour décrire un robot dans un atelier. . R0. Pour une chaîne ouverte simple, on a : 0Tn =o T1.1T2...n−1Tn (2.18) La matrice de transformation globale fTE s’écrit alors : fTE = Z.0Tn.E (2.19) Pour établir les modèles géométriques d’un robot, il sera nécessaire auparavant de mesurer la situation du robot dans le repère atelier Z, et de calibrer la situation E du repère outil RE dans le repère terminal du robot Rn. 2.3.2 Calcul du modèle géométrique direct d’un robot (MGD) Définition : Le modèle géométrique direct est l’ensemble des relations permet-tant d’exprimer la situation de l’organe terminal du robot en fonction des variables articulaires. La situation de l’organe terminal X est définie par m coordonnées opérationnelles X = [x1x2...xm−1xm]T (2.20) Les variables articulaires sont définies par le vecteur q de dimension n : q = [q1q2...qn−1qn]T (2.21) Le modèle géométrique s’écrit alors : X = f(q) Plusieurs possibilités sont offertes pour définir le contenu du vecteur X. Nous avons vu dans la première partie de ce cours, qu’il existait plusieurs façons de coder la position et l’orientation d’un corps solide. Par exemple, si l’on choisit :
  • 57. 2.3 Modélisation géométrique directe d’un robot 47 – la position cartésienne et les cosinus directeurs pour l’orientation, on obtient X = [PxPyPzSxSySznxnynzaxayaz]T (2.22) – la position cartésienne et les angles RTL pour l’orientation, on obtient X = [PxPyPzφθψ]T (2.23) 2.3.3 Exemples de modèles géométriques directs 2.3.3.1 MGD du robot AID-5 Le synoptique de ce robot est donné figure 2.3, page 34. On rapelle le tableau des paramètres de Devavit-Hartenberg de ce robot ci-dessous : J σj αj dj θj rj Trièdre R0 =⇒ R1 0 0 0 q1 0 D/I R1 =⇒ R2 0 90 0 q2 0 D R2 =⇒ R3 0 0 D3 q3 0 D/I R3 =⇒ R4 0 90 0 q4 −RL4 D R4 =⇒ R5 0 −90 0 q5 0 I R5 =⇒ R6 0 −90 0 q6 0 I D3 et RL4 sont les caractéristiques géométriques du robot. On rappelle l’expression de la matrice de transformation homogène associée au paramètrage de Denhavit- Hartenberg. j−1Tj =   Cθj −Sθj 0 dj Cαj .Sθj Cαj .Cθj −Sαj −rj .Sαj Sαj .Sθj Sαj .Cθj Cαj rj .Cαj 0 0 0 1   (2.24) On en déduit les matrices 0T1,1 T2,2 T3,3 T4,4 T5 et 5T6. Pour ce faire une solution consiste à utiliser un logiciel de calcul formel. Parmis les plus connus, nous pouvons citer matlab qui dispose d’une boite à outils dédiée au calcul symbolique, Maple, Maxima. Dans ce cour, nous avons utilisé Maxima, car il posséde une licence Libre d’utilisation. Nous avons tout d’abord modélisé le tableau de DH sous une forme matricielle : Modélisation du MGD : DH :   0 0 0 q1 0 0 2 0 q2 0 0 0 D3 q3 0 0 2 0 q4 −RL4 0 − 2 0 q5 0 0 − 2 0 q6 0  
  • 58. 48 Modélisation géométrique des robots - Commande en position des robots Calcul des matrices de passage : T01 : DenHart (DH, 1)  Cq1 −Sq1 0 0 Sq1 Cq1 0 0 0 0 1 0 0 0 0 1   (C37) T12 : DenHart2 (DH, 2) (D37)   C(q3 + q2) −S (q3 + q2) 0 D3Cq2 0 0 −1 0 S (q3 + q2) C(q3 + q2) 0 D3Sq2 0 0 0 1   Ceci est une astuce de programmation (C38) T23 : IDENT(4) (D38)   1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1   (C39) T34 : DenHart (DH, 4) (D39)   Cq4 −Sq4 0 0 0 0 −1 RL4 Sq4 Cq4 0 0 0 0 0 1   (C40) T45 : DenHart (DH, 5) (D40)   Cq5 −Sq5 0 0 0 0 1 0 −Sq5 −Cq5 0 0 0 0 0 1   (C41) T56 : DenHart (DH, 6) (D41)   Cq6 −Sq6 0 0 0 0 1 0 −Sq6 −Cq6 0 0 0 0 0 1   Pour obtenir le MGD d’un robot, il faut déterminer la matrice de passage du robot : soit 0T6 dans le cas présent. Pour l’obtenir, on multipliera les matrices j−1Tj en partant de la dernière afin de déninir des matrices intermédiaires Uj utiles pour l’élaboration du modèle géométrique inverse (MGI). On a : Uj =j Tj+1.Uj+1 (2.25)
  • 59. 2.3 Modélisation géométrique directe d’un robot 49 Appliquer à notre cas, on définit successivement : U6 = I6 (2.26) U5 = 5T6.U6 = 5T6 (2.27) U4 = 4T5.U5 = 4T5.5T6 = 4T6 (2.28) U3 = 3T4.U4 = 3T4.4T5.5T6 = 3T6 (2.29) U2 = 2T3.U3 = 2T3.3T4.4T5.5T6 = 2T6 (2.30) U1 = 1T2.U2 = 1T2.2T3.3T4.4T5.5T6 = 1T6 (2.31) U0 = 0T1.U1 = 0T1.1T2.2T3.3T4.4T5.5T6 = 0T6 (2.32) Les expression des matrices Uj peuvent être assez longues. Lorsque c’est le cas, nous les présentons sous la forme : Uj =  sxj nxj axj Pxj syj nyj ayj Pyj szj nzj azj Pzj 0 0 0 1    (2.33) (C42) U5 : T56 (D42)   Cq6 −Sq6 0 0 0 0 1 0 −Sq6 −Cq6 0 0 0 0 0 1   (C44) U4 : T45 · U5 (D44)   Cq5Cq6 −Cq5Sq6 −Sq5 0 −Sq6 −Cq6 0 0 −Sq5Cq6 Sq5Sq6 −Cq5 0 0 0 0 1   (C46) U3 : T34 · U4 (D46)   Sq4Sq6 + Cq4Cq5 Cq6 Sq4Cq6 − Cq4 Cq5Sq6 −Cq4Sq5 0 Sq5Cq6 −Sq5Sq6 Cq5 RL4 Sq4Cq5Cq6 − Cq4 Sq6 −Sq4Cq5Sq6 − Cq4Cq6 −Sq4S q5 0 0 0 0 1   (C48) U2 : T23 · U3 (D48)   Sq4Sq6 + Cq4Cq5 Cq6 Sq4Cq6 − Cq4 Cq5Sq6 −Cq4Sq5 0 Sq5Cq6 −Sq5Sq6 Cq5 RL4 Sq4Cq5Cq6 − Cq4 Sq6 −Sq4Cq5Sq6 − Cq4Cq6 −Sq4S q5 0 0 0 0 1   (C49) s2 : Extrait (U2, 1) (D49)   Sq4Sq6 + Cq4Cq5 Cq6 Sq5Cq6 Sq4Cq5Cq6 − Cq4 Sq6   (C50) n2 : Extrait (U2, 2)
  • 60. 50 Modélisation géométrique des robots - Commande en position des robots (D50)   Sq4Cq6 − Cq4Cq5 Sq6 −Sq5Sq6 −Sq4Cq5Sq6 − Cq4 Cq6   (C51) a2 : Extrait (U2, 3) (D51)   −Cq4Sq5 Cq5 −Sq4Sq5   (C52) P2 : Extrait (U2, 4) (D52)   0 RL4 0   (C53) U1 : T12 · U2 (D53)   C(q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) − S (q3 + q2) Sq5 Cq6 C(q3 + q2) ( Sq4Cq6 − Cq4 Cq4Sq6 − Sq4Cq5 Cq6 Sq4Cq5Sq S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 S (q3 + q2) ( Sq4Cq6 − Cq4C 0 (C54) s1 : Extrait (U1, 1) (D54)   C(q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) − S (q3 + q2) Sq5 Cq6 Cq4Sq6 − Sq4Cq5 Cq6 S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6   (C55) n1 : Extrait (U1, 2) (D55)   C(q3 + q2) (Sq4 Cq6 − Cq4Cq5Sq6 ) + S (q3 + q2) Sq5 Sq6 Sq4Cq5Sq6 + Cq4 Cq6 S (q3 + q2) (Sq4 Cq6 − Cq4Cq5Sq6 ) − C(q3 + q2) Sq5 Sq6   (C56) a1 : Extrait (U1, 3) (D56)   −C(q3 + q2)Cq4S q5 − S (q3 + q2)C q5 Sq4Sq5 C(q3 + q2)Cq5 − S (q3 + q2)Cq4S q5   (C57) P1 : Extrait (U1, 4) (D57)   D3Cq2 − S (q3 + q2 ) RL4 0 C(q3 + q2) RL4 + D3Sq2   On en déduit le MGD par le calcul de U0 : (C58) U0 : T01 · U1 (D58) 0BB@ Cq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) − S q1 (Cq4Sq6 − Sq4 Cq5Cq6) Cq1 (C (q3 + q2) (Sq4C q6 − Cq4Cq5Sq6 Sq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) + C q1 (Cq4Sq6 − Sq4 Cq5Cq6) Sq1 (C (q3 + q2) (Sq4C q6 − Cq4Cq5Sq6) S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 S (q3 + q2) ( Sq4Cq6 − 0 (C59) s0 : Extrait (U0, 1) (D59) 0@ Cq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) − S q1 (Cq4Sq6 − Sq4 Cq5Cq6) Sq1 (C(q3 + q2) (Sq4Sq6 + Cq4C q5Cq6) − S (q3 + q2) Sq5Cq6) + C q1 (Cq4Sq6 − Sq4 Cq5Cq6) S (q3 + q2) (Sq4 Sq6 + Cq4Cq5Cq6 ) + C(q3 + q2) Sq5 Cq6 1A (C60) n0 : Extrait (U0, 2) (D60) 0@ Cq1 (C(q3 + q2) (Sq4Cq6 − Cq4C q5Sq6) + S (q3 + q2) Sq5Sq6) − S q1 (Sq4Cq5Sq6 + Cq4Cq6) Sq1 (C(q3 + q2) (Sq4Cq6 − Cq4C q5Sq6) + S (q3 + q2) Sq5Sq6) + C q1 (Sq4Cq5Sq6 + Cq4Cq6) S (q3 + q2) (Sq4 Cq6 − Cq4Cq5Sq6 ) − C(q3 + q2) Sq5 Sq6 1A (C61) a0 : Extrait (U0, 3)
  • 61. 2.3 Modélisation géométrique directe d’un robot 51 (D61) 0@ Cq1 (−C(q3 + q2) Cq4Sq5 − S (q3 + q2) Cq5) − Sq1S q4Sq5 Sq1 (−C(q3 + q2) Cq4Sq5 − S (q3 + q2) Cq5) + Cq1S q4Sq5 C(q3 + q2) Cq5 − S (q3 + q2) Cq4S q5 1A (C62) P0 : Extrait (U0, 4) (D62) 0@ Cq1 (D3Cq2 − S ( q3 + q2) RL4) Sq1 (D3Cq2 − S ( q3 + q2) RL4) C(q3 + q2) RL4 + D3Sq2 1A A partir de la matrice de passage U0, il est possible de choisir comme vecteur de coordonnées opérationnelles : X = [PxPyPzSxSySznxnynzaxayaz]T (2.34) Dans ce cas, le modèle géométrique direct du robot est donné par les 12 relations issues de U0. On peut noter que dans ce cas, la descrition est redondante car 6 paramètres suffisent pour décrire la position et l’orientation de l’organe terminal dans le repère atelier. Si on veut réduire le nombre de paramètres, alors, il faudra choisir un système de descrition d’angles. Dans ce cas, le MGD sera décrit pas le vecteur de position P et trois angles. 2.3.3.2 MGD du robot H-80 On rapelle le tableau des paramètres de Denavit-Hartenberg relatif au robot ACMA H-80 : J σj αj dj θj rj Trièdre R0 =⇒ R1 1 0 0 0 q1 D/I R1 =⇒ R2 0 0 0 q2 0 D/I R2 =⇒ R3 0 0 D3 q3 0 D/I R3 =⇒ R4 0 0 D4 q4 0 I R4 =⇒ R5 0 −90 0 q5 0 I R5 =⇒ R6 0 −90 0 q6 0 D/I Le synoptique de ce robot est donné figure 2.4 page 36 GCL (GNU Common Lisp) Version(2.4.0) Wed May 9 12 :02 :00 CDT 2001 Licensed under GNU Library General Public License Contains Enhancements by W. Schelter Maxima 5.6 Wed May 9 12 :01 :49 CDT 2001 (with enhancements by W. Schelter). Licensed under the GNU Public License (see file COPYING) batch(MGDH80) ; batching MGDH80.mac PRINT( Calcul du MGD) Calcul du MGD Calcul du MGD
  • 62. 52 Modélisation géométrique des robots - Commande en position des robots DH :   1 0 0 0 q1 0 0 0 q2 0 0 0 D3 q3 0 0 0 D4 q4 0 0 − 2 0 q5 0 0 − 2 0 q6 0     1 0 0 0 q1 0 0 0 q2 0 0 0 D3 q3 0 0 0 D4 q4 0 0 − 0 q5 0 2 0 − 2 0 q6 0   DenHart ( DH, l) :=   C DHl,4 −S DHl,4 0 DHl,3 C DHl,2S DHl,4 C DHl,2C DHl,4 −S DHl,2 − DHl,5S DHl,2 S DHl,2S DHl,4 S DHl,2C DHl,4 C DHl,2 DHl,5C DHl,2 0 0 0 1   Extrait (m, l) :=   m1,l m2,l m3,l   T01 : DenHart ( DH, 1)   1 0 0 0 0 1 0 0 0 0 1 q1 0 0 0 1   T12 : DenHart ( DH, 2)   Cq2 −Sq2 0 0 Sq2 Cq2 0 0 0 0 1 0 0 0 0 1   T23 : DenHart ( DH, 3)   Cq3 −Sq3 0 D3 Sq3 Cq3 0 0 0 0 1 0 0 0 0 1   T34 : DenHart ( DH, 4)   Cq4 −Sq4 0 D4 Sq4 Cq4 0 0 0 0 1 0 0 0 0 1   T45 : DenHart ( DH, 5)
  • 63. 2.3 Modélisation géométrique directe d’un robot 53   Cq5 −Sq5 0 0 0 0 1 0 −Sq5 −Cq5 0 0 0 0 0 1   T56 : DenHart ( DH, 6)   Cq6 −Sq6 0 0 0 0 1 0 −Sq6 −Cq6 0 0 0 0 0 1   U5 : T56  Cq6 −Sq6 0 0 0 0 1 0 −Sq6 −Cq6 0 0 0 0 0 1   TRIGREDUCE (U5)  Cq6 −Sq6 0 0 0 0 1 0 −Sq6 −Cq6 0 0 0 0 0 1   U4 : T45 · U5  Cq5Cq6 −Cq5Sq6 −Sq5 0 −Sq6 −Cq6 0 0 −Sq5Cq6 Sq5Sq6 −Cq5 0 0 0 0 1   U3 : T34 · U4  Sq4Sq6 + Cq4Cq5Cq6 Sq4Cq6 − Cq4Cq5Sq6 −Cq4Sq5 D4 Sq4Cq5Cq6 − Cq4Sq6 −Sq4Cq5Sq6 − Cq4Cq6 −Sq4Sq5 0 −Sq5Cq6 Sq5Sq6 −Cq5 0 0 0 0 1   U2 : T23 · U3 s2 : Extrait (U2, 1)  Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6) Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6) −Sq5Cq6   n2 : Extrait (U2, 2)  Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6) Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6) Sq5Sq6   a2 : Extrait (U2, 3)
  • 64. 54 Modélisation géométrique des robots - Commande en position des robots   Sq3Sq4Sq5 − Cq3Cq4Sq5 −Cq3Sq4Sq5 − Sq3Cq4Sq5 −Cq5   P2 : Extrait (U2, 4) D4Cq3 + D3  D4Sq3 0   U1 : T12 · U2 s1 : Extrait (U1, 1) 0@ Cq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) − Sq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) Cq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) + Sq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) −Sq5Cq6 1A n1 : Extrait (U1, 2) 0@ Cq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) − Sq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) Sq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) + Cq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) Sq5Sq6 1A a1 : Extrait (U1, 3)  Cq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) − Sq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) Sq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) + Cq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) −Cq5   P1 : Extrait (U1, 4)  Cq2 (D4Cq3 + D3) − D4Sq2Sq3 D4Cq2Sq3 + Sq2 (D4Cq3 + D3) 0   U0 : T01 · U1 s0 : Extrait (U0, 1) 0@ Cq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) − Sq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) Cq2 (Sq3 (Sq4Sq6 + Cq4Cq5Cq6) + Cq3 (Sq4Cq5Cq6 − Cq4Sq6)) + Sq2 (Cq3 (Sq4Sq6 + Cq4Cq5Cq6) − Sq3 (Sq4Cq5Cq6 − Cq4Sq6)) −Sq5Cq6 1A n0 : Extrait (U0, 2) 0@ Cq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) − Sq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) Sq2 (Cq3 (Sq4Cq6 − Cq4Cq5Sq6) − Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)) + Cq2 (Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)) Sq5Sq6 1A a0 : Extrait (U0, 3)  Cq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) − Sq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) Sq2 (Sq3Sq4Sq5 − Cq3Cq4Sq5) + Cq2 (−Cq3Sq4Sq5 − Sq3Cq4Sq5) −Cq5   P0 : Extrait (U0, 4)   Cq2 (D4Cq3 + D3) − D4Sq2Sq3 D4Cq2Sq3 + Sq2 (D4Cq3 + D3) q1   ./MGDH80.mac
  • 65. 2.4 Modélisation géométrique inverse d’un robot 55 2.3.3.3 MGD du robot AFMA 2.4 Modélisation géométrique inverse d’un robot 2.4.1 Introduction Le modèle géométrique direct MGD permet de calculer les coordonnées opéra-tionnelles X en fonction des coordonnées articulaires q : MGI X q MGD Le problème inverse MGI consiste à calculer les coordonnées articulaires qui amènent l’organe terminal dans une situation désirée, spécifiée par ses coordonnées opérationnelles. Lorsqu’elle existe, la forme explicite qui donne toutes les solutions possibles au problème inverse (il y a rarement unicité de la solution) constitue ce que l’on appelle le modèle géométrique inverse MGI. Il n’existe pas une méthode analytique générale pour trouver le MGI, mais un certain nombre de méthodes, plus ou moins adaptées à des classes de cinématiques particulières : – la méthode de Pieper [Pie68] : permet de résoudre le problème pour un nombre limité d’architectures simples (robots à 6 degrés de liberté (ddl), possédant 3 articulations rotoïdes d’axes concourants ou 3 articulations prismatiques). – la méthode de Paul [Pau81] : traite séparément chaque cas particulier et convient à la majorité des robots industriels – les méthodes géométriques ([LZ83], Elgazzar 85) consistent à trouver directe-ment chaque variable articulaire à partir de considérations géométriques. Il y a une grande dépendance de ces méthodes avec l’architecture du robot. Lorsque le modèle géométrique inverse n’existe pas (pas de forme explicite), on utilise des procédures numériques. Par itérations successives, on calcule une solution particulière au problème in-verse, qui est une solution locale (dépendant des conditions initiales). Outre cet inconvénient, ces méthodes sont pénalisantes en temps de calcul. citons par exemple : – les méthodes de type Newton RAPHSON procédant par linéarisation de la matrice de passage du mécanisme [Pie68]. – les méthodes basées sur le modèle différentiel inverse ([Fou80, Ren80, GBF85]).
  • 66. 56 Modélisation géométrique des robots - Commande en position des robots – les méthodes basées sur la transposée de la matrice jacobienne ([WE84, SS94]). Nous utiliserons en détail dans cette partie, les méthodes de Pieper et de Paul, conduisant à une forme explicite du transformateur de coordonnées (MGI). 2.4.2 Position du problème Soit fTE la matrice de transformation homogène représentant la situation finale désirée du repère outil par rapport au repère atelier. On a vu que dans le cas général, on peut exprimer fTE sous la forme : fTE = Z.0Tn.E (2.35) avec : – Z = matrice de transformation homogène définissant le repère R0 du robot dans le repère atelier. – E = matrice de transformation homogène définissant le repère outil RE dans le repère terminal. – 0Tn = matrice de passage homogène du robot. En regroupant à droite les termes connus, on obtient la relation U0 =0 Tn = Z−1.fTE.E−1 (2.36) Le problème consiste à trouver les variables articulaires q1, q2, ...qn pour que 0Tn soit égal à U0. On donne l’expression numérique de fTE et on connait celle de Z et de E. En résumé : X → fTE → U0 → q Convension (2.36) Méthode de Paul (2.37) Conclusion : Après avoir calculé la valeur numérique de U0 à partir de X, on utilise l’expression analytique de U0 pour extraire le vecteur q. La principale difficulté est donc ette dernière étape. 2.4.3 Résolubilité d’un robot manipulateur (introduit par Pieper 68) Un robot manipulateur est dit résoluble lorsqu’il est possible de calculer toutes les configurations permettant d’atteindre une situation donnée. Tous les robots ne le sont pas, mais ce n’est pas une condition nécessaire pour la commande car dans de pareil cas, des méthodes itératives numériques sont mises en oeuvre pour trouver une solution locale. D’après Roth (76), les robots à moins de 6 ddl sont toujours résolubles. Avec 6 ddl, ils sont résolubles lorsqu’ils présentent les caractéristiques suivantes :
  • 67. 2.4 Modélisation géométrique inverse d’un robot 57 – 3 articulations prismatiques – 3 articulations rotoïdes d’axes concourants – 1 articulation rotoïde et 1 articulation prismatique coaxiales – 2 paires d’articulations rotoïdes d’axes concourants Presque tous les robots à 6 d.d.l. de l’industrie sont résolubles. 2.4.4 Nombre de solutions au problème inverse On peut constater pratiquement trois cas : – abscence de solutions. Par exemple, lorsque la situation désirée est en dehors de la zone accessible du robot. La zone accessible est limitée par le nombre de ddl, les débattements articulaires, et la dimension des segments. – infinité de solutions. Ce cas se présente lorsque : – le robot est redondant vis-à-vis de la tâche à réaliser. – le robot se trouve en configuration singulière. Il y a alors une redondance locale qui se traduit par le fait que le robot ne peut déplacer son organe terminal dans certaines directions ou tourner autour de certains axes. De ce fait, il perd un ou plusieurs ddl. Tout cela est dû aux valeurs numériques particulières prises par les paramètres pour décrire la situation désirée. – solution en ensemble fini. C’est le cas lorsque toutes les solutions peuvent être calculées sans ambiguïté. La forme explicite est alors un ensemble de vecteurs q1, q2, ...qr qui satisfont l’équation X = f(qi) (2.38) pour Pi = 1, 2, ..., r r = n j=1 Kj représente le nombre de configurations articulaires possibles, et Kj le nombre de solutions pour la variable articulaire qj . Le nombre de solutions dépend de l’architecture du robot manipulateur. Il n’existe pas de formule générale pour le déterminer. Pour les classes de robots à 6 ddl possédant trois articulations rotoïdes d’axes concourants, le nombre maximum de solutions est de 32 dans l’hypothèse ou aucun paramètre géométrique n’est égal à 0. Ce nombre dépend des valeurs particulières des paramètres géométriques, de l’amplitude des courses articulaires et donc du positionnement des butées méca-niques et/ou électriques.
  • 68. 58 Modélisation géométrique des robots - Commande en position des robots 2.4.5 Calcul du modèle géométrique inverse (MGI) 2.4.5.1 Présentation de la méthode Considérons un robot manipulateur dont la matrice de passage homogène a pour expression : 0Tn =0 T1.1T2....n−1Tn (2.39) On note : U0 =0 T1.1T2...n−1Tn =   sx nx ax Px sy ny ay Py sz nz az Pz 0 0 0 1   (2.40) Cette matrice U0 est la donnée du problème. Elle représente la situation de l’organe terminal dans le repère de base du robot R0. Trouver les variables articulaires à partir de l’équation : U0 =0 T1.1T2.n−1Tn (2.41) en fonction des éléments articulaires s, n, a et P est très difficile. Paul (en 81) a proposé une méthode qui consiste à prémultiplier successivement les 2 membres de l’équation par les matrices de transformation homogène inverse. jTj−1 pour j variant de 1 à n − 1 (2.42) Cela permet d’isoler et d’identifier l’une après l’autre les variables articulaires que l’on recherche. Remarques : 1. Pour un robot à 6 ddl, on procède comme suit : – Multiplication à gauche par 1T0 1T0.U0 =1 T2.2T3.3T4.4T5.5T6 (2.43) 1ère partie de l’équation = fonction de q1 uniquement 2ème partie de l’équation = fonction de q2, q3, q4,q5, q6 déjà calculé pour MGD si on a pris la précaution de sauvegarder tous les résultats intermé-diaires Ui. – q1 est obtenu par identification d’un ou de deux éléments parmi les plus simples qui constitue l’expression de droite avec les termes équivalents dans celle de gauche. Les différents types de relations mises en jeu dans ces iden-tifications seront étudiés au paragraphe suivant (une dizaine de cas). – en partant de l’expression 1T0.U0 =1 T2.2T3.3T4.4T5.5T6, on prémultiplie par 2T1 et on réitère le même processus. La succession des équations permettant
  • 69. 2.4 Modélisation géométrique inverse d’un robot 59 le calcul de tous les qi est la suivante : U0 =0 T1.1T2.2T3.3T4.4T5.5T6 1T0U0 =1 T2.2T3.3T4.4T5.5T6 → q1 2T1U1 =2 T3.3T4.4T5.5T6 → q2 3T2U2 =3 T4.4T5.5T6 → q3 4T3U3 =4 T5.5T6 → q4 5T4U4 =5 T6 → q5 et q6 avec Uj =j Tj−1Uj−1 (2.44) 2. Dans certains cas il est possible de résoudre le robot en partant de qn. Il suffit alors de multiplier à droite les 2 membres de l’expression U0 =0 T1.1T2.n−1Tn par jTj−1 pour j variable de n à 2 (2.45) 2.4.5.2 Solutions aux types d’équations rencontrés Lorsque nous utilisons la méthode précédente, nous sommes confrontés de ma-nière itérative à la résolution de système d’équations de différents types. L’utilisation d’un grand nombre de robots industriels a permis de constater que les principaux types rencontrés sont peu nombreux. La liste est donnée par le tableau 2.4.5.2. Les 10 types d’équations sont détaillés ci-dessous. Equations type 1 : X.rj = Y Dans ce cas, la réponse est immédiate =⇒ r1 = Y X avec X6= 0 Equations type 2 : X.Sθi + Y.Cθi = Z X et Y étant connus, deux cas peuvent être envisagés. – Z = 0, 2 solutions sont possibles : i θi = ′ATAN 2(−Y,X) θ= θi + 180o (2.46) – Z6= 0 On résout le système en sinus et en cosinus, puis on prend l’arctangente : On peut réécrire le système type 2 de deux manières différentes. Y.Cθi = Z − X.Sθi X.Sθi = Z − Y.Cθi (2.47) en sinus : Y 2.C2θi = Z2 + X2.S2θi − 2.Z.X.Sθi Y 2.(1 − S2θi) = Z2 + X2.S2θi − 2.Z.X.Sθi (X2 + Y 2).S2θi − 2.Z.X.Sθi + Z2 − Y 2 = 0 △ = 4.Y 2(X2 + Y 2 − Z2) d’où Sθi = Z.X + ε.Y √X2 + Y 2 − Z2 X2 + Y 2 avec ε = ±1 (2.48)
  • 70. 60 Modélisation géométrique des robots - Commande en position des robots Type d’équations Forme du système d’équations Type 1 X.ri = Y Type 2 X.Sθi + Y.Cθi = Z Type 3 X1.Sθi = Y1 X2.Cθi = Y2 ou X1.Sθi + Y1.Cθi = Z1 X2.Sθi + Y2.Cθi = Z2 Type 4 X1.rj .Sθi = Y1 X2.rj .Cθi = Y2 Type 5 X1.Sθi = Y1 + Z1.rj X2.Cθi = Y2 + Z2.rj Type 6 W.Sθj = X.Cθi + Y.Sθi + Z1 W.Cθj = X.Sθi − Y.Cθi + Z2 Type 7 W1.Cθj +W2.Sθj = X.Cθi + Y.Sθi + Z1 W1.Sθj −W2.Cθj = X.Sθi − Y.Cθi + Z2 Type 8 X.Cθi + Y.C(θi + θj) = Z1 X.Sθi + Y.S(θi + θj) = Z2 Type 9 X.Cθi = Y Type 10 X.Sθi = Y Table 2.1 – Systèmes d’equations possibles
  • 71. 2.4 Modélisation géométrique inverse d’un robot 61 en cosinus : X2.S2θi = Z2 + Y 2.C2θi − 2.Z.Y.Cθi X2.(1 − C2θi) = Z2 + Y 2.C2θi − 2.Z.Y.Cθi (X2 + Y 2).C2θi − 2.Z.Y.Cθi + Z2 − X2 = 0 △ = 4.X2(X2 + Y 2 − Z2) d’où Cθi = Z.Y − ε.X√X2 + Y 2 − Z2 X2 + Y 2 avec ε = ±1 (2.49) Le signe − devant ε vient du fait que nous devrons vérifier à chaque instant que C2θi + S2θi = 1. La réponse est la suivante : Sθi = Z.X + ε.Y √X2 + Y 2 − Z2 X2 + Y 2 Cθi = Z.Y − ε.X√X2 + Y 2 − Z2 X2 + Y 2 (2.50) si X2 + Y 2 − Z2 ≥ 0 alors θi = ATAN2(Sθi,Cθi) (2.51) Equations type 3 (forme 1) : X1.Sθi = Y1 X2.Cθi = Y2 (2.52) X1 et X2 étant non nuls, la réponse est la suivante. θi = ATAN2( Y1 X1 , Y2 X2 ) (2.53) Equations type 3 (forme2) : X1.Sθi + Y1.Cθi = Z1 X2.Sθi + Y2.Cθi = Z2 (2.54) On se ramène au cas précédent en posant : Sθi = Y2.Z1 − Y1.Z2 X1.Y2 − X2.Y1 Cθi = X1.Z2 − X2.Z1 X1.Y2 − X2.Y1 (2.55)
  • 72. 62 Modélisation géométrique des robots - Commande en position des robots d’où θi = ATAN2(Sθi,Cθi) Equations type 4 : X1.rj .Sθi = Y1 X2.rj .Cθi = Y2 (2.56) X1 et X2 étant non nuls. On réécrit le système :   rj .Sθi = Y1 X1 rj .Cθi = Y2 X2 =⇒   r2 j .S2θi = Y 2 1 X2 1 r2 j .C2θi = Y 2 2 X2 2 (2.57) d’où s rj = ± Y 2 1 X2 1 + Y 2 2 X2 2 Si rj n’est pas nul, on en déduit : θi = ATAN 2( Y1 X1 rj , Y2 X2 rj) (2.58) X1 et X2 étant non nuls. La réponse est la suivante : s rj = ± Y 2 1 X2 1 + Y 2 2 X2 2 θi = ATAN2( Y1 X1 , Y2 X2 ) (2.59) Equations type 5 : X1.Sθi = Y1 + Z1.rj X2.Cθi = Y2 + Z2.rj (2.60) X1 et X2 étant non nuls, on réécrit le système   Sθi = Y1 X1 + Z1 X1 .rj Cθi = Y2 X2 + Z2 X2 .rj soit Sθi = V1 +W1.rj Cθi = V2 +W2.rj (2.61)
  • 73. 2.4 Modélisation géométrique inverse d’un robot 63 S2θi + C2θi = 1 1 = V 2 1 + V 2 2 + 2.(W1V1 +W2V2).rj + (W2 1 +W2 2 ).r2 j △ = 4.(W1V1 +W2V2)2 − 4.(V 2 1 + V 2 2 − 1).(W2 1 +W2 2 ) △ = 4.(2.W1V1.W2V2) − 4.(V 2 1 .W2 2 + V 2 2 .W2 1 −W2 1 −W2 2 ) △ = 4.(W2 1 +W2 2 − (V1.W2 − V2.W1)2) (2.62) rj = −(V1.W1 + V2.W2) + ε p W2 1 +W2 2 − (V1.W2 − V2.W1)2 W2 1 +W2 2 (2.63) On en déduit : θi = ATAN2(V1 +W1.rj , V2 +W2.rj) (2.64) △ étant positif, avec ε = ±1, la réponse est la suivante rj = −(V1.W1 + V2.W2) + ε p W2 1 +W2 2 − (V1.W2 − V2.W2 1 ) W2 1 +W2 2 θi = ATAN2(V1 +W1.rj , V2 +W2.rj) (2.65) Equations type 6 : W.Sθj = X.Cθi + Y.Sθi + Z1 W.Cθj = X.Sθi − Y.Cθi + Z2 (2.66) Eliminons θj : W2.S2θj = X2.C2θi + Y 2.S2θi + Z2 1 + 2.X.Y.Cθi.Sθi + 2.X.Cθi.Z1 + 2.Y.Sθi.Z1 W2.C2θj = X2.S2θi + Y 2.C2θi + Z2 2 − 2.X.Y.Cθi.Sθi + 2.X.Sθi.Z2 − 2.Y.Cθi.Z2 W2 = X2 + Y 2 + Z2 1 + Z2 2 + 2.X.Cθi.Z1 + 2.Y.Sθi.Z1 + 2.X.Sθi.Z2 − 2.Y.Cθi.Z2 (2.67) En sommant, on peut écrire : B1.Sθi + B2.Cθi = B3 (2.68)
  • 74. 64 Modélisation géométrique des robots - Commande en position des robots Avec B1 = 2.(Y.Z1 + X.Z2) B2 = 2.(X.Z1 − Y.Z2) B3 = W2 − X2 − Y 2 − Z2 1 − Z2 2 (2.69) Dans ce cas, θi peut être résolu par un système de type 2. Puis θj peut être résolu par un système de type 3 (forme 1) avec Y1 = X.Cθi + Y.Sθi + Z1 Y2 = X.Sθi − Y.Cθi + Z2 et X1 = W X2 = W (2.70) Equations type 7 : W1.Cθj +W2.Sθj = X.Cθi + Y.Sθi + Z1 W1.Sθj −W2.Cθj = X.Sθi − Y.Cθi + Z2 (2.71) En élevant les deux premiers membres au carré, on a : W2 1 .C2θj +W2 2 .S2θj + 2.W1.W2.Cθj .Sθj W2 1 .S2θj +W2 2 .C2θj − 2.W1.W2.Cθj .Sθj (2.72) En additionnant, il reste W2 1 +W2 2 Pour les seconds membres élevés au carré, on a : X2.C2θi + Y 2.S2θi + Z2 1 + 2.XY.Cθi.Sθi + 2.XZ1.Cθi + 2.Y Z1.Sθi X2.S2θi + Y 2.C2θi + Z2 2 − 2.XY.Cθi.Sθi + 2.XZ2.Sθi − 2.Y Z2.Cθi (2.73) En additionnant, il reste X2 + Y 2 + Z2 1 + Z2 2 + 2.(XZ1 − Y Z2).Cθi + 2.(Y Z1 + XZ2).Sθi (2.74) Soit en regroupant les deux résultats : 2.(XZ1 − Y Z2).Cθi + 2.(Y Z1 + XZ2).Sθi = W2 1 +W2 2 − X2 − Y 2 − Z2 1 − Z2 2 (2.75) C’est une équation de type 2 en θi. Une fois θi calculé, on résout une des 2 équations de type 2 en θj . Equations type 8 : X.Cθi + Y.C(θi + θj) = Z1 X.Sθi + Y.S(θi + θj) = Z2 (2.76)
  • 75. 2.4 Modélisation géométrique inverse d’un robot 65 En élevant au carré, on obtient : X2.C2θi + Y 2.C2(θi + θj) + 2.XY.Cθi.C(θi + θj) = Z2 1 X2.S2θi + Y 2.S2(θi + θj) + 2.XY.Sθi.S(θi + θj) = Z2 2 (2.77) En additionnant : 2.XY.(Cθi.C(θi + θj) + Sθi.S(θi + θj)) = Z2 1 + Z2 2 − X2 − Y 2 (2.78) En intégrant un signe − dans le sinus et le cosinus, on a : 2.XY.(C(−θi).C(θi + θj) − S(−θi).S(θi + θj)) = Z2 1 + Z2 2 − X2 − Y 2 (2.79) d’où C(θi + θj − θi) = Cθj = Z2 1 + Z2 2 − X2 − Y 2 2.XY (2.80) On en déduit θj avec : p θj = ATAN2(± 1 − C2θj ,Cθj) (2.81) Il suffit ensuite de résoudre un système de deux équations et deux inconnues comme suit : X.Cθi + Y.(Cθi.Cθj − Sθi.Sθj) = Z1 X.Sθi + Y.(Cθi.Sθj + Sθi.Cθj) = Z2 (X + Y.Cθj).Cθi − Y.Sθj .Sθi = Z1 Y.Sθj .Cθi + (X + Y.Cθj).Sθi = Z2 (2.82) Soit : B1.Cθi − B2.Sθi = Z1 avec B1 = X + Y.Cθj B2.Cθi + B1.Sθi = Z2 B2 = Y.Sθj (2.83) On résoud en sinus et cosinus (équations type 3 forme 2) et on obtient θi par : θi = ATAN2(Sθi,Cθi) (2.84) Equations type 9 : X.Cθj = Y (2.85) Dans ce cas, la réponse est immédiate : Cθi = Y X Sθi = ±√1 − C2θi et θi = ATAN2(Sθi,Cθi) (2.86)
  • 76. 66 Modélisation géométrique des robots - Commande en position des robots Equations type 10 : X.Sθi = Y (2.87) Dans ce cas, la réponse est immédiate =⇒ Sθi = Y X Cθi = ±√1 − S2θi et θi = ATAN2(Sθi,Cθi) (2.88) 2.4.6 MGI pour des robots à 6 ddl comportant un poignet rotule (d’axes concourants) Lorsqu’il s’agit de déterminer le MGI d’un robot, avant de se lancer dans la série de calculs itératifs présentés dans le paragraphe e), il est bon de se poser la question de simplification de la méthode. En effet, avant tout calcul, il faut savoir : – quelles sont les variables articulaires qui contribuent à la position du repère terminal du robot Rn – quelles sont les variables articulaires qui contribuent à l’orientation du repère terminal Rn Lorsque le poignet du robot est une rotule d’axes concourants, c’est le porteur qui pilote la position de l’organe terminal. Ce porteur est constitué de n − 3 ddl. On peut écrire : 0Pn =0 Pn−3+1, c’est à dire :   Px Py Pz 1   =0 T1 1 T2 2 T3...n−3Tn−3+1   0 0 0 1   (2.89) (2.90) avec : –   Px Py Pz 1   : position de l’organe terminal dans le repère R0. –   0 0 0 1   : opérateur d’extraction de la matrice de position à partir de la matrice de transformation homogène A partir de cette première relation, en reprenant la méthode itérative du para-graphe 2.4.5.1 page 58, il est donc possible de calculer les valeurs des n−3 premières articulations.