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 homogè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
1.2.1
Géométrie du déplacement
Transformations homogènes
Dans le cas d’une transformation homogène, le type de représentation est matriciel. 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
zi
M
zf
yf
Rf
Ri
yi
xf
xi
Figure 1.1 – Passage d’un repère Ri à un repère Rf
.
cette matrice de dimension (4 × 4), notée
sx
sy
i
Tf = i Mf = (i sj i nj i aj i Pj ) =
sz
0
i
Mf s’exprime sous la forme :
nx ax Px
i
Rf i Pf
ny ay Py
=
0
1
nz az Pz
0 0 1
(1.1)
où i sj , i nj et i aj sont les vecteurs unitaires, suivant les axes xj , yj et zj du repère
Rj exprimés dans le repère Ri , où i Pj est le vecteur exprimant l’origine du repère
Rj dans le repère Ri , et avec :
– i Rf : matrice (3 × 3) des rotations donnant l’orientation notée i Af (de Rf dans
Ri )
– i Pf : matrice (3 × 1) des translations donnant la position
i
i
Mf =
Rf
0
i
Pf
1
i
=
Af
0
i
Pf
1
I3
0
=
i
Pf
1
i
×
Af 0
0 1
(1.2)
A l’aide de la matrice i Mf , 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
x′
y
y′
′ =i Mf .
z
z
1
1 R
i
1.2.1.1
i
=
Rf
Rf
0
i
Pf
1
x
y
.
z
1 R
(1.3)
f
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
zf
zi
M
Rf
Ri
xf
yi
xi
b
yf
c
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 i Mf . 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 i Mf associée à cette
translation s’exprime alors :
0
0
a
a
I3
0
I3
b
I3
0
I3
b
.
.
=
M =
c
0
0
c
0 0 0 1
0 0 0 1
0 0 0 1
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
zi
θx
cos θx
cos θx
Rf
− sin θx
xi
Ri
yf
sin θx
zf
θx
yi
θx
xf
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) :
1 0 0
R = I3 = 0 1 0
(1.6)
0 0 1
Exemple 1 : Une rotation θx autour de l’axe x (cf fig. 1.3).
1
0
0
1 0
0
R = 0 cos θx − sin θx = 0 cθx −sθx (autre notation)
0 sin θx cos θx
0 sθx cθx
(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
=
jRf = 0.iRi + cos θx .jRi + sin θx .kRi =
kRf = 0.iRi − sin θx .jRi + cos θx .kRi =
i
sf
nf
i
af
i
(1.8)
17. 1.2 Géométrie du déplacement
7
zi
zf
θy
Ri
θy
Rf
xi
yf
yi
θy
xf
Figure 1.4 – Rotation pure autour de l’axe y d’un repère Rf par rapport à un
repère Ri
.
Exemple 2 :
cos θy
0
R=
− sin θy
Une rotation θy autour de l’axe y (cf fig. 1.4).
0 sin θy
cθy 0 sθy
1
0 = 0
1 0 (autre notation)
0 cos θy
−sθy 0 cθy
(1.9)
Exemple 3 : Une rotation θz autour de l’axe z (cf fig. 1.5).
cos θz − sin θz 0
cθz −sθz 0
R = sin θz cos θz 0 = sθz cθz 0 (autre notation)
0
0
1
0
0
1
(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
peut se mettre sous la forme :
sx
sy
T =
sz
0
4) qu’une matrice de transformation homogène T
nx ax Px
ny ay Py
=
nz az Pz
0 0 1
A P
0 1
(1.11)
18. 8
Géométrie et cinématique du déplacement
zi
zf
θz
yf
Ri
θz
Rf
xi
yi
θz
xf
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’orientation (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 i Tj de transformation homogène prenant le repère Ri
pour l’amener sur le repère Rj . Si j Ti est la matrice de transformation homogène
prenant le repère Rj pour l’amener sur le repère Ri , alors i Tj et j Ti sont liés par la
relation :
−1
i
Tj
= j Ti
(1.14)
19. 1.2 Géométrie du déplacement
i
zi
9
Tj
zj
j
Ri
yj
Rj
Ti = (i Tj )−1
yi
xj
xi
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
i
v1 = (i vx ,i vy ,i vz , 1)T dans Ri et j v1 = (j vx ,j vy ,j vz , 1)T dans Rj .On a :
j
i
v1 = j Ti .i v1 (a)
v1 = i Tj .j v1 (b)
(1.15)
En multipliant par (i Tj )−1 la relation (b) de l’équation (1.15), on obtient :
(i Tj )−1 .i v1 = (i Tj )−1 .i Tj .j v1
(1.16)
En utilisant la relation (a) de (1.15), on en déduit :
j
Ti =
i
Tj
−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 )
Exemple : rotation autour de l’axe x.
1
0
0
0 c(−θx ) −s(−θx )
Rot(x, −θx ) =
0 s(−θx ) c(−θx )
0
0
0
1
0
0
0 cθx sθx
=
0 −sθx cθx
0
0
0
0
0
0
1
(1.19)
0
0
0
1
= (Rot(x, θx ))T
(1.20)
20. 10
Géométrie et cinématique du déplacement
k−1
zk−1
0
T1
z1
y1
z0
xk−1
R1
R0
Tk
yk
Rk−1
yk−1
zk
Rk
xk
x1
y0
0
x0
Tk
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 :
−sT .P
T
T
AT −nT .P
= A −A .P
T −1 =
(1.23)
0
1
−aT .P
0
1
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 :
0
Tk =0 T1 .1 T2 .2 T3 .3 T4 ...k−1 Tk
(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
T2 .T1 =
A2 P2
0 1
.
11
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 .T2 = 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)
Trans(u, d).Rot(u, θ1 ) = Rot(u, θ1 ).Trans(u, d)
(1.29)
et,
Propriété 8 Soit un repère Rj , défini par une tansformation i Tj du repère Ri . Si
Rj subit une transformation T (définie par rapport au repère Ri ), alors la transformation totale amenant au repère final Rf s’exprime sous la forme :
i
Tf = T.i Tj
(1.30)
Si cette même transformation, amenant Rj sur Rf , est définie dans Rj par T ′ , alors
on a également :
i
(1.31)
Tf =i Tj .T ′
On en déduit la relation suivante :
T.i Tj =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. (i Tj
Rot(x, θx )R0 .Trans(y, d)R1 ). La figure 1.9 illustre ce propos.
=
Une composition à gauche s’applique au repère initial.
( Tj =Rot(x, θx )R0 .Trans(y, d)R0 ). La figure 1.10 illustre ce propos.
i
22. 12
Géométrie et cinématique du déplacement
T′
zf
i
Tj
zj
yj
zi
xf
Rj
Rf
yf
xj
Ri
yi
T.i Tj
xi
Figure 1.8 – Composition à droite et à gauche d’une transformation
.
z2
z0
y2
Trans(y, d)
R2
θx
z1
y1
R1
x1
x0
R0
θx
x2
y0
Rot(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
z2
y2
z0
R2
θx
y0
z1
x2
R1
Trans(y, d)
R0
Rot(x, θx )
x0
y1
x1
Figure 1.10 – Composition à droite d’une translation le long de l’axe y
.
On obtient la relation suivante :
i
Tj = Rot(z, α).Rot(x, β)
(1.33)
Cette relation est illustrée sur la figure 1.11 Le repère Ri subit donc deux transformations successives :
Ri == Rot(z, α) ==> Rf == Rot(x, β) ==> Rj
(1.34)
En développant la relation i Tj =Rot(z, α).Rot(x, β), on obtient :
cα −sα.cβ sα.sβ 0
sα cα.cβ −cα.sβ 0
=
0
sβ
cβ
0
0
0
0
1
(1.35)
i
A partir de la troisième colonne de la matrice Tj , on peut donc extraire les
coordonnées du vecteur u, exprimées dans le repère Ri :
ux
sα.sβ
u = uy = −cα.sβ = i aj
(1.36)
uz
cβ
1 0
0 0
cα −sα 0 0
sα cα 0 0 0 cβ −sβ 0
.
0
0 1 0 0 sβ cβ 0
0 0
0 1
0
0 0 1
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, θ).i Tj =i Tj .Rot(z, θ)
(1.37)
soit :
Rot(u, θ) =i Tj .Rot(z, θ).(i Tj )−1
(1.38)
24. 14
Géométrie et cinématique du déplacement
zj
zi zf
u
β
α
yj
β
yf
α
Ri Rf Rj
yi
β
xf
xi α xj
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 :
u2 .(1 − cθ) + cθ
ux uy .(1 − cθ) − uz .sθ ux uz .(1 − cθ) + uy .sθ
x
u2 .(1 − cθ) + cθ
uy uz .(1 − cθ) − ux .sθ
A(u, θ) = ux uy .(1 − cθ) + uz .sθ
y
ux uz .(1 − cθ) − uy .sθ uy uz .(1 − cθ) + ux .sθ
u2 .(1 − cθ) + cθ
z
(1.41)
On préfère utiliser la relation suivante (formule de Rodrigues) :
A(u, θ) = u.uT .(1 − cθ) + I3 .cθ + u.sθ
ˆ
avec :
0 −uz uy
0 −ux
u = uz
ˆ
−uy ux
0
(1.42)
(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
Vx
uy .Vz − uz .Vy
0 −uz uy
Vx
uy ∧ Vy = uz .Vx − ux .Vz = uz
0 −ux . Vy
uz
Vz
ux .Vy − uy .Vx
−uy ux
0
Vz
(1.45)
ˆ
Remarque représentation exponentielle eu.θ
ˆ
Nous avons vu que A(u, θ) = u.uT .(1 − cθ) + I3 .cθ + u.sθ avec :
0 −uz uy
u = uz
ˆ
0 −ux
−uy ux
0
De plus, on a :
2
ux
ux ux uy ux uz
u.uT = uy .(ux uy uz ) = ux uy u2 uy uz
y
uz
ux uz uy uz u2
z
(1.46)
(1.47)
et ux 2 + ut 2 + uz 2 = 1
u2 − 1 ux uy
ux uz
x
u2 = u.ˆ = u.uT − I3 = ux uy u2 − 1 uy uz
ˆ
ˆu
y
ux uz
uy uz u2 − 1
z
(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 θ5 θ7
+
−
+ ... + u2 .
ˆ
3!
5!
7!
θ2 θ4 θ6
−
+
− ...
2!
4!
6!
(1.50)
Comme on a u3 = −ˆ, u4 = −ˆ2 , u5 = u et u6 = u2 ,
ˆ
u ˆ
u ˆ
ˆ
ˆ
ˆ
on a donc :
A(u, θ) = I3 + u.θ +
ˆ
u
u
u
(ˆ.θ)2 (ˆ.θ)3 (ˆ.θ)4 (ˆ.θ)5
u
+
+
+
+ ...
2!
3!
4!
5!
(1.51)
Ce qui représente le développement en séries de Mac Laurin de la fonction exponentielle. Il vient que :
ˆ
u
(1.52)
A(u, θ) = exp(ˆ, θ) = eu.θ
26. 16
Géométrie et cinématique du déplacement
Exemple : Rotation autour de l’axe x
ˆ
A(x, θ) = eu.θ = I3 + u.sθ + u2 .(1 − cθ)
ˆ
ˆ
(1.53)
avec u = (1, 0, 0)T
1 0 0
0 0 0
0 0
0
A(x, θ) = 0 1 0 + 0 0 −1 .sθ + 0 −1 0 .(1 − cθ)
0 0 1
0 1 0
0 0 −1
(1.54)
1 0
0
0 cθ −sθ
A(x, θ) =
(1.55)
0 sθ cθ
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 transformation homogène de la forme :
sx nx ax Px
s ny ay Py
T = y
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
zn
z0
T
Rn
R0
xn
y0
x0
yn
Pz
Px
Py
Figure 1.12 – Coordonnées cartésiennes
.
zn
z0
T
Rn
yn
R0
x0
α
xn
y0
z
r
Figure 1.13 – Coordonnées cylindriques
.
Coordonnées cartésiennes C’est la méthode la plus générale. Elle donne directement 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 :
Px
Pcar = Py
(1.57)
Pz
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
zn
z0
T
Rn
β
r
R0
x0
α
yn
xn
y0
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 :
2
2
r = Px + Py
α = 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, Psabarnabé, 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 :
2
2
r = Px + Py + Pz2
α = atan2(Py , Px ) si β = 0 ou α = 0 si β = 0
Py
α = atan2
, Pz si α = 0 ou β = atan2(Px , Pz ) si α = 0
sα
(1.61)
29. 1.2 Géométrie du déplacement
1.2.2.2
19
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
(1.62)
sz nz az
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
z0
yn
φ
ψ
θ
zn
R0
O
y0
pl
(x
n,
yn
)
Rn
xn
x0
pl(x0 , y0 )
φ
θ
ψ
N
Figure 1.15 – Les angles d’Euler (convention z, x, z)
.
Remarque : Au lieu de prendre par convention l’ordre (z, x, z), certains 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
φ3
z2
zn
21
z0
z1
φ2
yn
φ1
φ2 y 1 y 2
R0
Rn
φ1
x0
x1
φ3
φ1
y0
φ2
φ3
x2
xn
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 rotations 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
z2
zn
z1 z0
φ
θ
ψ
yn
ψ
R0
y1
φ
Rn
x0
φ
θ
y0
θ
ψ
x2 xn
x1
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 repère Rn , associé à un solide quelconque, dans un repère de référence R0 , est déterminé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
z0
θ
zn
u
yn
R0
Rn
x0
y0
xn
Figure 1.18 – Les quaternions.
.
Ces paramètres ont les propriétés suivantes :
2λ2 − 1 = cos θ
1
(a) et λ2 + λ2 + λ2 + λ2 = 1 (b)
1
2
3
4
(1.75)
La figure 1.18 illustre cette description de l’orientation La matrice d’orientation est
la suivante :
AQuat
2.(λ2 + λ2 ) − 1 2.(λ2 .λ3 − λ1 .λ4 ) 2.(λ2 .λ4 + λ1 .λ3 )
1
2
= 2.(λ2 .λ3 + λ1 .λ4 ) 2.(λ2 + λ2 ) − 1 2.(λ3 .λ4 − λ1 .λ2 )
1
3
2.(λ2 .λ4 − λ1 .λ3 ) 2.(λ3 .λ4 + λ1 λ2 ) 2.(λ2 + λ2 ) − 1
1
4
(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 (paramètres d’Euler) est obtenu par les relations suivantes :
λ1 = 1 .
2
sx + ny + az + 1
1
λ2 = 2 .sign(nx − ay ).
sx − ny − az + 1
1
λ3 = 2 .sign(ax − sz ).
−sx + ny − az + 1
1
λ4 = 2 .sign(sy − nx ).
−sx − ny + az + 1
La fonction sign(A) donne le signe d’un réel A
(1.77)
34. 24
Géométrie et cinématique du déplacement
zf
P
R
Rf
θ s
A
yf
xf
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 rotation ω par la relation suivante :
ν=
1.3.2
dθ
ds
= R. = R.ω
dt
dt
(1.78)
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
dA
(1.79)
=
+ω∧A
dt
dt
Rf
Rm
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
zf
A
zm
ym
Rf
Rm
yf
xf
xm
Figure 1.20 – Système d’axes tournants.
.
P
zf
r
zm
Q Rm
R
Rf
yf
O
ym
xm
xf
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
.
=R +
Rf
dr
dt
Rm
+ω∧r
où : .
– R exprime la vitesse du point Q par rapport à O,
(1.82)
36. 26
Géométrie et cinématique du déplacement
z0
xi+1 zi+1
z1
x1
C1
R1
zi
y1
Ci
C0
R0
Ci+1
zf
y0
Ri
x0
Ri+1 y
i+1
yi
xi
Figure 1.22 – Système d’axes mobiles : cas d’une chaîne articulaire simple.
.
dr
exprime le mouvement du aux translations,
dt
Rm
– ω ∧ 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
dr
=
+ω∧r
(1.83)
dt
dt
Rf
qui s’écrit également :
.
Rm
.
r Rf =rRm +ω ∧ 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 :
(R )
(R )
(R )
(R )
V (Oi+1 )(R0) = V (Oi )(R0) + V (Oi+1 )(Ri ) + Ωi (R0) ∧ Oi Oi+1
i
i
i
i
(1.86)
où :
(R )
– V (Oi+1)(R0) représente la vitesse de translation de translation de Oi+1 par
i
rapport à O0 exprimée dans le repère Ri ,
(R )
– V (Oi)(R0) représente la vitesse de translation de Oi par rapport à O0 exprimée
i
dans le repère Ri ,
(R )
– V (Oi+1)(Ri ) représente la vitesse de translation de Oi+1 par rapport à Oi exi
primée dans le repère Ri ,
(R )
– Ωi (R0) représente la vitesse angulaire de rotation du repère Ri par rapport au
i
repère R0 exprimée dans le repère Ri ,
– Oi+1 Oi représente le vecteur position de l’origine Oi+1 dans le repère Ri .
De même, on peut écrire :
(R )
(R )
V (Oi+1 )(R0) = i Ai+1 .V (Oi+1 )(R0 )
i
i+1
(1.87)
et
(R )
(R )
0
V (Oi )(R0) = i Ai−1 .V (Oi)(Ri−1 )
i
i
i
(1.88)
Ai+1 représente la matrice rotation de la matrice de transformation homogène
Ti+1 permettant le passage du repère Ri à Ri+1 .
Pour les vitesses angulaires de rotation, nous utiliserons la relation suivante :
(R )
(R
)
(R )
Ωi (R0) = Ωi (Ri−1 ) + i Ai−1 .Ωi−1 (R0 )
i
i−1
i−1
(1.89)
avec :
(R )
– Ωi (R0) représente la vitesse angulaire de rotation du repère Ri par rapport à
i
R0 exprimée dans le repère Ri ,
(R
)
– Ωi (Ri−1 ) représente la vitesse angulaire de rotation du repère Ri par rapport à
i−1
Ri−1 exprimée dans le repère Ri−1 ,
i
– Ai−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 ,
(R )
– Ωi−1 (R0 ) représente la vitesse angulaire de rotation du repère Ri−1 par rapport
i−1
à 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 terminal)
– 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’organe terminal en fonction de la configuration du mécanisme articulaire et inversement.
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.
.
.
(2.4)
X ←→ q
La plupart de ces modèles sont établis par calcul symbolique. Dans cet objectif, un
logiciel de calcul symbolique est un outil essentiel.
40. Modélisation géométrique des robots - Commande en position des
robots
30
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 structures de robots généralement rencontrés.
2.2
2.2.1
Description de la structure géométrique d’un
robot
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 articulations 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
Cn−2
Cn−1
C4
C3
C2
Cn
C1
C0
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 modifié.
La variable articulaire qj (associée à la j eme 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−1
Tj = Rot(x, αj ).Trans(x, dj ).Rot(z, θj ).Trans(z, rj )
(2.5)
Soit :
Cθj
−Sθj
0
dj
Cαj .Sθj Cαj .Cθj −Sαj −rj .Sαj
j−1
Tj =
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
xj
zj−1
θj
zj
Oj
αj
rj
xj−1
dj
Oj−1
Figure 2.2 – Paramètres géométriques dans le cas d’une structure ouverte simple.
.
On remarque que : j−1 Aj = Rot(x, αj ).Rot(z, θj ) car les opérations de rotations/translations successives sur un même axe sont commutatives.
On en déduit la matrice de transformation homogène inverse permettant le passage du repère Rj au repère Rj−1 .
j
Tj−1 = Trans(z, −rj ).Rot(z, −θj ).Trans(x, −dj ).Rot(x, −αj )
dont l’expression littérale est la suivante (j Aj−1 = (j−1Aj )T ) :
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
j
Tj−1 =
0
−Sαj
Cαj
−rj
0
0
0
1
(2.7)
(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’articulation, 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
– qc = nouveau vecteur des variables articulaires
– qi0 = 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−1
Tj+1 =j−1 Tj .j Tj+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 :
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
j−1
Tj+1 =
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+1
Tj−1
C(θj + θj+1 ) Cαj .S(θj + θj+1 ) Sαj .S(θj + θj+1 ) −dj .C(θj + θj+1 ) − dj+1 .Cθj+1
−S(θj + θj+1 ) Cαj .C(θj + θj+1 ) Sαj .C(θj + θj+1 ) dj .S(θj + θj+1 ) + dj+1 .Sθj+1
=
0
−Sαj .
Cαj
−(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
z6
+
z0 , z1
z5
+
x4 , x5 , x6
+
x0 , x1
x2
z2
+
z4
+
RL4
D3
+
z3
x3
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 :
R0
R1
R2
R3
R4
R5
J
=⇒ R1
=⇒ R2
=⇒ R3
=⇒ R4
=⇒ R5
=⇒ R6
σj
0
0
0
0
0
0
αj
0
90
0
90
−90
−90
dj
0
0
D3
0
0
0
θj
rj
q1
0
q2
0
q3
0
q4 RL4
q5
0
q6
0
Trièdre
D/I
D
D/I
D
I
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. Modélisation géométrique des robots - Commande en position des
robots
36
D3
D4
+
z0 , z1
z2
z4
z3
+
z5
+
+
x0 , x1
x2
x4 , x5 , x6
x3
+
+
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 :
R0
R1
R2
R3
R4
R5
J
=⇒ R1
=⇒ R2
=⇒ R3
=⇒ R4
=⇒ R5
=⇒ R6
σj
1
0
0
0
0
0
αj
0
0
0
0
−90
−90
dj
0
0
D3
D4
0
0
θj
0
q2
q3
q4
q5
q6
rj
q1
0
0
0
0
0
Trièdre
D/I
D/I
D/I
I
I
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
Cm
37
zm
Cn−2
Cm−1
Cn−1
Ck+L
zk+1
zk+L
Ck
zn
Ck+1
zk
C2
z0 , z1
C1
C0
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 terminaux.
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.
Cn
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
i
Tj (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émentaires 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 i Ti′ , per′
mettant le passage du repère Ri au repère Ri′ . Le repère Ri est identique au repère
Ri , mais il est construit sur l’autre perpendiculaire commune.
i
Ti′ = Rot(z, γj ).Trans(z, εj )
(2.12)
49. 2.2 Description de la structure géométrique d’un robot
Cγj −Sγj
Sγj Cγj
i
Ti′ =
0
0
0
0
D’où on en tire :
i
′
′
0
0
1
0
0
0
εj
1
Tj , =i Ti′ .i Tj aveci Tj = Rot(x, αj ).Trans(x, dj ).Rot(z, θj ).Trans(z, rj )
39
(2.13)
(2.14)
Après développement, on obtient la matrice globale suivante :
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
i
Tj =
Sαj .Sθj
Sαj .Cθj
Cαj
rj .Cαj + εj
0
0
0
1
(2.15)
Son inverse est :
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
j
Ti =
Sγj .Sαj
−Cγj .Sαj
Cαj
−rj − εj .Cαj
0
0
0
1
(2.16)
i ′
Remarque : Si γj et εj = 0, la matrice de transformation homogène Ti 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 équivalente en coupant virtuellement chacune des boucles fermées sur l’une de ses articulations.
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 i Tk 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 j Tk 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 j Tk →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+b
Tk = I4 .
Dans ces conditions, on peut écrire une relation de fermeture de la boucle :
k+b
Tk =k+b Tj .j Tj+1 ..i Tk = 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 articulations, 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 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 HITACHIHPR 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
.
R0
R1
R1
R2
R3
R5
R6
R4
R5
J
=⇒ R1
=⇒ R2
=⇒ R3
=⇒ R4
=⇒ R5
=⇒ R6
=⇒ R7
=⇒ R8
=⇒ R9
a(j) σj
0
0
1
0
1
0
2
0
3
0
5
0
6
0
4
0
5
0
γj
0
0
0
0
0
0
0
0
0
εj
0
0
0
0
0
0
0
0
0
αj
dj
0
0
−90
0
−90
0
0
D4
0
D5
0
D6
90
0
0
D8 = D5
0
D9 = −D4
θj
q1
θ2
q3
q4
θ5
q6
q7
θ8
0
rj
0
0
0
0
0
0
0
0
0
Trièdre
D/I
I
I
D/I
D/I
D/I
D
D/I
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
53. 2.2 Description de la structure géométrique d’un robot
Figure 2.9 – Synoptique du robot ASEA-IRB5
.
43
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 :
R0
R1
R2
R3
R4
J
=⇒ R1
=⇒ R2
=⇒ R3
=⇒ R4
=⇒ R5
a(j)
0
1
1
2
5
σj
0
0
0
0
0
γj
0
0
0
0
0
εj
0
0
0
0
0
αj dj
0
0
90 0
0 L2
0 L3
90 0
θj
q1
q2
q3
q4
q5
rj
L1
0
0
0
0
Trièdre
D/I
D/I
D/I
D/I
D/I
Robot arborescent (TBD)
2.3
2.3.1
Modélisation géométrique directe d’un robot
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 transformation 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
– 0 Tn 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
f
– TE 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’usinage, un axe de vissage, une orientation pour soudure ou peinture, ....
On appelle matrice de passage du robot la composition des matrices de transformation exprimant le repère du corps terminal Rn dans le repère de base du robot
56. Modélisation géométrique des robots - Commande en position des
robots
46
0
z = f T0
Tn
R0
Rn
Rf
E = n TE
f
RE
TE
Figure 2.11 – Repères nécessaires pour décrire un robot dans un atelier.
.
R0 . Pour une chaîne ouverte simple, on a :
0
Tn =o T1 .1 T2 ...n−1 Tn
(2.18)
La matrice de transformation globale f TE s’écrit alors :
f
TE = Z.0 Tn .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 permettant 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 = [x1 x2 ...xm−1 xm ]T
(2.20)
Les variables articulaires sont définies par le vecteur q de dimension n :
q = [q1 q2 ...qn−1 qn ]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 = [Px Py Pz Sx Sy Sz nx ny nz ax ay az ]T
(2.22)
– la position cartésienne et les angles RTL pour l’orientation, on obtient
X = [Px Py Pz φθψ]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 :
R0
R1
R2
R3
R4
R5
J
=⇒ R1
=⇒ R2
=⇒ R3
=⇒ R4
=⇒ R5
=⇒ R6
σj
0
0
0
0
0
0
αj
0
90
0
90
−90
−90
dj
0
0
D3
0
0
0
θj
rj
q1
0
q2
0
q3
0
q4 −RL4
q5
0
q6
0
Trièdre
D/I
D
D/I
D
I
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 DenhavitHartenberg.
Cθj
−Sθj
0
dj
Cαj .Sθj Cαj .Cθj −Sαj −rj .Sαj
j−1
Tj =
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 0 T1 ,1 T2 ,2 T3 ,3 T4 ,4 T5 et 5 T6 . 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 :
0 0
0 q1
0
0 π
0 q2
0
2
0 0 D3 q3
0
DH :
0 π
0 q4 −RL4
2
0 −π 0 q5
0
2
0 −π 0 q6
0
2
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)
C (q3 + q2 ) −S (q3 + q2 ) 0 D3Cq2
0
0
−1
0
(D37)
S (q3 + q2 ) C (q3 + q2 )
0 D3 Sq2
0
0
0
1
Ceci est une astuce de programmation
(C38) T23 : IDENT (4)
1 0 0 0
0 1 0 0
(D38)
0 0 1 0
0 0 0 1
(C39) T34 : DenHart (DH, 4)
0
Cq4 −Sq4 0
0
0
−1 RL4
(D39)
Sq4 Cq4
0
0
0
0
0
1
(C40) T45 : DenHart (DH, 5)
Cq5 −Sq5 0 0
0
0
1 0
(D40)
−Sq5 −Cq5 0 0
0
0
0 1
(C41) T56 : DenHart (DH, 6)
Cq6 −Sq6 0 0
0
0
1 0
(D41)
−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 0 T6 dans le cas présent. Pour l’obtenir, on multipliera les matrices j−1 Tj
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)
61. 2.3 Modélisation géométrique directe d’un robot
0
(D61) @
51
1
Cq1 (−C (q3 + q2 ) Cq4 Sq5 − S (q3 + q2 ) Cq5 ) − Sq1 S q4 Sq5
Sq1 (−C (q3 + q2 ) Cq4 Sq5 − S (q3 + q2 ) Cq5 ) + Cq1 S q4 Sq5 A
C (q3 + q2 ) Cq5 − S (q3 + q2 ) Cq4 S q5
(C62) P0 : Extrait (U0 , 4)
0
1
Cq1 (D3 Cq2 − S ( q3 + q2 ) RL4 )
(D62) @ Sq1 (D3 Cq2 − S ( q3 + q2 ) RL4 ) A
C (q3 + q2 ) RL4 + D3 Sq2
A partir de la matrice de passage U0 , il est possible de choisir comme vecteur de
coordonnées opérationnelles :
X = [Px Py Pz Sx Sy Sz nx ny nz ax ay az ]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 :
R0
R1
R2
R3
R4
R5
J
=⇒ R1
=⇒ R2
=⇒ R3
=⇒ R4
=⇒ R5
=⇒ R6
σj
1
0
0
0
0
0
αj
dj
0
0
0
0
0
D3
0
D4
−90 0
−90 0
θj
0
q2
q3
q4
q5
q6
rj
q1
0
0
0
0
0
Trièdre
D/I
D/I
D/I
I
I
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
65. 2.4 Modélisation géométrique inverse d’un robot
2.3.3.3
2.4
2.4.1
55
MGD du robot AFMA
Modélisation géométrique inverse d’un robot
Introduction
Le modèle géométrique direct MGD permet de calculer les coordonnées opérationnelles 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 directement 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 inverse, 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 f TE 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 f TE sous la forme :
f
TE = Z.0 Tn .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.
– 0 T n = matrice de passage homogène du robot.
En regroupant à droite les termes connus, on obtient la relation
U0 =0 T n = Z −1 .f TE .E −1
(2.36)
Le problème consiste à trouver les variables articulaires q1 , q2 , ...qn pour que 0 T n soit
égal à U0 .
On donne l’expression numérique de f TE et on connait celle de Z et de E.
En résumé :
X
→
Convension
f
TE
→
U0
→
q
(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 q 1 , q 2 , ...q r qui satisfont
l’équation
X = f (q i )
(2.38)
pour i = 1, 2, ..., r
r = n Kj représente le nombre de configurations articulaires possibles, et
j=1
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écaniques et/ou électriques.
68. Modélisation géométrique des robots - Commande en position des
robots
58
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 :
0
Tn =0 T1 .1 T2 ....n−1 Tn
(2.39)
On note :
sx nx ax Px
s ny ay Py
U0 =0 T1 .1 T2 ...n−1 Tn = y
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 .1 T2 .n−1 Tn
(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.
j
Tj−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 1 T0
1
T0 .U0 =1 T2 .2 T3 .3 T4 .4 T5 .5 T6
(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 identifications seront étudiés au paragraphe suivant (une dizaine de cas).
– en partant de l’expression 1 T0 .U0 =1 T2 .2 T3 .3 T4 .4 T5 .5 T6 , on prémultiplie par
2
T1 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 .1 T2 .2 T3 .3 T4 .4 T5 .5 T6
1
T0 U0 =1 T2 .2 T3 .3 T4 .4 T5 .5 T6 → q1
2
T1 U1 =2 T3 .3 T4 .4 T5 .5 T6 → q2
3
T2 U2 =3 T4 .4 T5 .5 T6 → q3
4
T3 U3 =4 T5 .5 T6 → q4
5
T4 U4 =5 T6 → q5 et q6
(2.44)
avec Uj =j Tj−1 Uj−1
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 .1 T2 .n−1 Tn par j Tj−1 pour j variable de n à 2
2.4.5.2
(2.45)
Solutions aux types d’équations rencontrés
Lorsque nous utilisons la méthode précédente, nous sommes confrontés de maniè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
avec X = 0
X
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 = ATAN 2(−Y, X)
′
θi = θi + 180o
(2.46)
– Z=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
en sinus :
d’où
Y 2 .C 2 θi = Z 2 + X 2 .S 2 θi − 2.Z.X.Sθi
Y 2 .(1 − S 2 θi ) = Z 2 + X 2 .S 2 θi − 2.Z.X.Sθi
(X 2 + Y 2 ).S 2 θi − 2.Z.X.Sθi + Z 2 − Y 2 = 0
△ = 4.Y 2 (X 2 + Y 2 − Z 2 )
√
Z.X + ε.Y X 2 + Y 2 − Z 2
Sθi =
avec ε = ±1
X2 + Y 2
(2.47)
(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
X1 .Sθi + Y1 .Cθi = Z1
ou
X2 .Cθi = Y2
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
X 2 .S 2 θi = Z 2 + Y 2 .C 2 θi − 2.Z.Y.Cθi
X 2 .(1 − C 2 θi ) = Z 2 + Y 2 .C 2 θi − 2.Z.Y.Cθi
(X 2 + Y 2 ).C 2 θi − 2.Z.Y.Cθi + Z 2 − X 2 = 0
(2.49)
△ = 4.X 2 (X 2 + Y 2 − Z 2 )
√
Z.Y − ε.X X 2 + Y 2 − Z 2
Cθi =
avec ε = ±1
d’où
X2 + Y 2
Le signe − devant ε vient du fait que nous devrons vérifier à chaque instant que
C 2 θi + S 2 θi = 1. La réponse est la suivante :
en cosinus :
√
Z.X + ε.Y X 2 + Y 2 − Z 2
Sθi =
X2 + Y 2
√
Z.Y − ε.X X 2 + Y 2 − Z 2
Cθi =
X2 + Y 2
(2.50)
si X 2 + Y 2 − Z 2 ≥ 0 alors θi = AT AN2(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.
Y1 Y2
,
)
X1 X2
(2.53)
X1 .Sθi + Y1 .Cθi = Z1
X2 .Sθi + Y2 .Cθi = Z2
(2.54)
θi = ATAN2(
Equations type 3 (forme2) :
On se ramène au cas précédent en posant :
Sθi =
Y2 .Z1 − Y1 .Z2
X1 .Y2 − X2 .Y1
X1 .Z2 − X2 .Z1
Cθi =
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
X1 et X2 étant non nuls. On réécrit le système :
2
2 2
r .S θi = Y1
Y1
j
r .Sθ =
2
j i
X1
X1 =⇒
r .Cθ = Y2
2
j
2 2
i
r .C θi = Y2
X2
j
2
X2
d’où
rj = ±
(2.56)
(2.57)
Y2
Y12
+ 22
2
X1
X2
Si rj n’est pas nul, on en déduit :
θi = ATAN 2(
Y2
Y1
rj ,
rj )
X1 X2
(2.58)
X1 et X2 étant non nuls. La réponse est la suivante :
Y12
Y2
+ 22
2
X1
X2
Y1 Y2
)
θi = ATAN2( ,
X1 X2
(2.59)
X1 .Sθi = Y1 + Z1 .rj
X2 .Cθi = Y2 + Z2 .rj
(2.60)
rj = ±
Equations type 5 :
X1 et X2 étant non nuls, on réécrit le système
Sθ = Y1 + Z1 .r
i
j
X1 X1
Sθi = V1 + W1 .rj
soit
Cθi = V2 + W2 .rj
Cθ = Y2 + Z2 .r
j
i
X2 X2
(2.61)
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 )
2
2
B3 = W 2 − X 2 − Y 2 − Z1 − Z2
(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
X1 = W
X2 = W
(2.70)
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)
et
Equations type 7 :
En élevant les deux premiers membres au carré, on a :
2
2
W1 .C 2 θj + W2 .S 2 θj + 2.W1 .W2 .Cθj .Sθj
2
2
W1 .S 2 θj + W2 .C 2 θj − 2.W1 .W2 .Cθj .Sθj
(2.72)
2
2
En additionnant, il reste W1 + W2
Pour les seconds membres élevés au carré, on a :
2
X 2 .C 2 θi + Y 2 .S 2 θi + Z1 + 2.XY.Cθi .Sθi + 2.XZ1.Cθi + 2.Y Z1 .Sθi
2
X 2 .S 2 θi + Y 2 .C 2 θi + Z2 − 2.XY.Cθi .Sθi + 2.XZ2 .Sθi − 2.Y Z2 .Cθi
(2.73)
En additionnant, il reste
2
2
X 2 + Y 2 + Z1 + Z2 + 2.(XZ1 − Y Z2 ).Cθi + 2.(Y Z1 + XZ2 ).Sθi
(2.74)
Soit en regroupant les deux résultats :
2
2
2
2
2.(XZ1 − Y Z2 ).Cθi + 2.(Y Z1 + XZ2 ).Sθi = W1 + W2 − X 2 − Y 2 − Z1 − Z2
(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 :
2
X 2 .C 2 θi + Y 2 .C 2 (θi + θj ) + 2.XY.Cθi .C(θi + θj ) = Z1
2
X 2 .S 2 θi + Y 2 .S 2 (θi + θj ) + 2.XY.Sθi .S(θi + θj ) = Z2
(2.77)
En additionnant :
2
2
2.XY.(Cθi .C(θi + θj ) + Sθi .S(θi + θj )) = Z1 + Z2 − X 2 − Y 2
(2.78)
En intégrant un signe − dans le sinus et le cosinus, on a :
2
2
2.XY.(C(−θi ).C(θi + θj ) − S(−θi ).S(θi + θj )) = Z1 + Z2 − X 2 − Y 2
(2.79)
d’où
C(θi + θj − θi ) = Cθj =
2
2
Z1 + Z2 − X 2 − Y 2
2.XY
(2.80)
On en déduit θj avec :
θj = ATAN2(± 1 − C 2 θ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
(2.82)
(X + Y.Cθj ).Cθi − Y.Sθj .Sθi = Z1
Y.Sθj .Cθi + (X + Y.Cθj ).Sθi = Z2
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)
X.Cθj = Y
(2.85)
Equations type 9 :
Dans ce cas, la réponse est immédiate :
Y
X
√
Sθi = ± 1 − C 2 θi
Cθi =
et
θi = ATAN2(Sθi , Cθi )
(2.86)
76. Modélisation géométrique des robots - Commande en position des
robots
66
Equations type 10 :
(2.87)
X.Sθi = Y
Dans ce cas, la réponse est immédiate =⇒
Y
X√
Cθi = ± 1 − S 2 θi
Sθi =
2.4.6
et
θi = ATAN2(Sθi , Cθi )
(2.88)
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 :
0
Pn =0 Pn−3+1 , c’est à dire :
Px
Py 0 1 2
= T T T3 ...n−3 Tn−3+1
1 2
Pz
1
0
0
0
1
(2.89)
(2.90)
avec :
Px
P
– y : position de l’organe terminal dans le repère R0 .
Pz
1
0
0
– : opérateur d’extraction de la matrice de position à partir de la matrice
0
1
de transformation homogène
A partir de cette première relation, en reprenant la méthode itérative du paragraphe 2.4.5.1 page 58, il est donc possible de calculer les valeurs des n − 3 premières
articulations.