Download pdf - cour robotique

Transcript
Page 1: cour robotique

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+1zk+L

zm

zn

Page 2: cour robotique
Page 3: cour robotique

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 desrobots 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

Page 4: cour robotique

ii Table des matières

2.2.2.1 Cadre général . . . . . . . . . . . . . . . . . . . . . . 30

2.2.2.2 Paramétrage de Denavit-Hartenberg modifié (Khalil86) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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èreatelier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Page 5: cour robotique

Table des matières iii

Bibliographie 97

Page 6: cour robotique
Page 7: cour robotique

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 à unrepère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4 Rotation pure autour de l’axe y d’un repère Rf par rapport à unrepère Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5 Rotation pure autour de l’axe z d’un repère Rf par rapport à unrepè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

Page 8: cour robotique

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

Page 9: cour robotique

Liste des tableaux

2.1 Systèmes d’equations possibles . . . . . . . . . . . . . . . . . . . . . . 60

Page 10: cour robotique
Page 11: cour robotique

Introduction 1

Introduction

Page 12: cour robotique

2 Introduction

Page 13: cour robotique

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 encinématique. Lorsque l’on désire commander un robot, il est nécessaire de situer sesdifférentes parties mobiles les unes par rapport aux autres. Pour ce faire, on associeun repère à chaque partie du robot (socle, effecteur, articulations). Le passage d’unrepère à un autre (position, orientation) s’exprime sous la forme d’une matrice depassage.

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’objetd’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 partiedu 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 depassage ou matrice de transformation homogène (cf fig. 1.1). En robotique,

Page 14: cour robotique

4 Géométrie et cinématique du déplacement

yi

xi

zi

Ri

xf

yfzf

Rf

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 = (isjinj

iajiPj) =

sx nx ax Px

sy ny ay Py

sz nz az Pz

0 0 0 1

=

(

iRfiPf

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èreRj dans le repère Ri, et avec :

– iRf : matrice (3×3) des rotations donnant l’orientation notée iAf (de Rf dansRi)

– iPf : matrice (3× 1) des translations donnant la position

iMf =

(

iRfiPf

0 1

)

=

(

iAfiPf

0 1

)

=

(

I3iPf

0 1

)

×(

iAf 00 1

)

(1.2)

A l’aide de la matrice iMf , il est possible d’exprimer les coordonnées d’un pointquelconque P de l’espace dans le repère Ri à partir de ces coordonnées homogènesexprimées dans le repère Rf par la relation :

x′

y′

z′

1

Ri

=i Mf .

xyz1

Rf

=

(

iRfiPf

0 1

)

.

xyz1

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 possiblede passer de l’un à l’autre en utilisant une matrice de transformation homogène de

Page 15: cour robotique

1.2 Géométrie du déplacement 5

yi

xi

zi

Rixf

yf

zf

Rf

M

ab

c

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 etc 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 zConsidé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 detransformation homogène de translation pure iMf . Les matrices de translation sontlié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 à cettetranslation s’exprime alors :

M =

aI3 b

c0 0 0 1

=

aI3 0

00 0 0 1

.

0I3 b

00 0 0 1

.

0I3 0

c0 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 depasser de l’un à l’autre en utilisant une matrice de transformation homogène derotation pure. Nous utiliserons les notations suivantes :

Page 16: cour robotique

6 Géométrie et cinématique du déplacement

yi

xi

zi

Ri

xf

yf

zf

Rf

cos θxco

sθ 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 à unrepè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 matriceR présentée dans l’équation (1.1) page 4. Lorsque la rotation est nulle autour destrois axes, R devient la matrice identité (c’est le cas pour les rotations pures) :

R = I3 =

1 0 00 1 00 0 1

(1.6)

Exemple 1 : Une rotation θx autour de l’axe x (cf fig. 1.3).

R =

1 0 00 cos θx − sin θx

0 sin θx cos θx

=

1 0 00 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 endé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)

Page 17: cour robotique

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 à unrepè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 0sin θz cos θz 0

0 0 1

=

cθz −sθz 0sθz cθz 00 0 1

(autre notation)

(1.10)

Rq. : Une rotation autour d’un axe principal x, y ou z laisseinchangé 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 Tpeut se mettre sous la forme :

T =

sx nx ax Px

sy ny ay Py

sz nz az Pz

0 0 0 1

=

(

A P0 1

)

(1.11)

Page 18: cour robotique

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 à unrepè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 unetranslation 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 laconstituent (trois angles de rotations). Un des vecteurs s, n ou a se déduit du produitvectoriel des deux autres, car ils constituent une base orthonormée. Par exemple :

s = nan.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èneprenant le repère Rj pour l’amener sur le repère Ri, alors iTj et jTi sont liés par larelation :

(

iTj

)−1= jTi (1.14)

Page 19: cour robotique

1.2 Géométrie du déplacement 9

yi

xi

zi

Ri

xj

yjzj

Rj

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ènesiv1 = (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 rotationd’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 autourde 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 00 c(−θx) −s(−θx) 00 s(−θx) c(−θx) 00 0 0 1

=

1 0 0 00 cθx sθx 00 −sθx cθx 00 0 0 1

= (Rot(x, θx))T

(1.20)

Page 20: cour robotique

10 Géométrie et cinématique du déplacement

y0

x0

z0

R0 x1

y1z1

R1

xk−1

yk−1

zk−1

Rk−1

xk

yk

zkRk

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ènede 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 missous la forme :

T−1 =

−sT .PAT −nT .P

−aT .P0 1

=

(

AT −AT .P0 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)

Page 21: cour robotique

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.T2 6= 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. SiRj 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 ′, alorson 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 transformationexprimée par rapport à ce même repère Rj, alors la transformation totale estdé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.

Page 22: cour robotique

12 Géométrie et cinématique du déplacement

yi

xi

zi

Ri xj

yjzj

Rj

xf

yf

zf

RfiTj

T ′

T.iTj

Figure 1.8 – Composition à droite et à gauche d’une transformation.

y0

x0

z0

R0

y1

x1

z1

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 originecoï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 β.

Page 23: cour robotique

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 0sα cα 0 00 0 1 00 0 0 1

.

1 0 0 00 cβ −sβ 00 sβ cβ 00 0 0 1

=

cα −sα.cβ sα.sβ 0sα cα.cβ −cα.sβ 00 sβ cβ 00 0 0 1

(1.35)

A partir de la troisième colonne de la matrice iTj , on peut donc extraire lescoordonnées du vecteur u, exprimées dans le repère Ri :

u =

ux

uy

uz

=

sα.sβ−cα.sβ

= iaj (1.36)

Tourner autour de l’axe u (défini par le vecteur unitaire u) d’un angle θ, revientdonc à tourner autour de l’axe zj . D’où, d’après la propriété 8, définie page 11, onen déduit que :

Rot(u, θ).iTj =i Tj.Rot(z, θ) (1.37)

soit :

Rot(u, θ) =i Tj .Rot(z, θ).(iTj)−1 (1.38)

Page 24: cour robotique

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, θ) 00 1

)

(1.40)

avec :

A(u, θ) =

u2x.(1− cθ) + cθ uxuy.(1− cθ)− uz.sθ uxuz.(1− cθ) + uy.sθ

uxuy.(1− cθ) + uz.sθ u2y.(1− cθ) + cθ uyuz.(1− cθ)− ux.sθ

uxuz.(1− cθ)− uy.sθ uyuz.(1− cθ) + ux.sθ u2z.(1− cθ) + cθ

(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)

Page 25: cour robotique

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 eu.θ

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) =

u2x uxuy uxuz

uxuy u2y uyuz

uxuz uyuz u2z

(1.47)

et ux2 + ut

2 + uz2 = 1

u2 = u.u = u.uT − I3 =

u2x − 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 dela 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, θ) = eu.θ (1.52)

Page 26: cour robotique

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

A(x, θ) =

1 0 00 1 00 0 1

+

0 0 00 0 −10 1 0

.sθ+

0 0 00 −1 00 0 −1

.(1−cθ)

(1.54)

A(x, θ) =

1 0 00 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 P0 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èrefixe R0

Nous allons présenter quelques méthodes de description usuelles en robotique, pourdécrire la situation d’un repère Rn, associé à un solide quelconque, dans un repèrede référence R0. Nous aborderons d’abord les différentes méthodes permettant dereprésenter la position du solide, puis celles permettant de paramétrer l’orientationde 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èrede 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 (formedu volume de travail) d’une part, et par la tâche à réaliser d’autre part.

Page 27: cour robotique

1.2 Géométrie du déplacement 17

y0

x0

z0

R0xn

yn

zn

Rn

T

PxPy

Pz

Figure 1.12 – Coordonnées cartésiennes.

y0

x0

z0

R0xn

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éelorsque 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 matricede position est la suivante :

Pcar =

Px

Py

Pz

(1.57)

Coordonnées cylindriques Cette représentation est utilisée lorsque la structuredu 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)

Page 28: cour robotique

18 Géométrie et cinématique du déplacement

y0

x0

z0

R0xn

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 2x + P 2

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 etde Py. Seul les cas Px = 0 et Py = 0 constitue une singularité (impossibilité desolution).

Coordonnées sphériques Cette représentation est utilisée lorsque la structuredu robot est spérique (par exemple : robot Unimation-1000/2000/4000, Psa-barnabé, Stanford,...). La figure 1.14 illustre cette représentation. La matricede 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 2x + P 2

y + P 2z

α = 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)

Page 29: cour robotique

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èleparfois difficile. Aussi, on se ramène à des représentations redondantes. Les méthodesles 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 cosinusdirecteurs est donnée par les trois vecteurs s, n et a constituant 9 éléments appeléscosinus 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èmeest obtenu par le produit vectoriel des deux autres). 3 composantes seulement sontindépendantes, mais dans le cas général, il est difficile de les fixer. La description del’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 solidequelconque, dans un repère référence R0, est déterminée par la spécification de 3angles correspondants à trois rotations successives (z, x, z). La figure 1.15 illustrecette 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. Sonsens positif est donné par le produit vectoriel zn ∧ z0. Comme le montre la figure1.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” respectivementautour 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)

Page 30: cour robotique

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, lesrelations 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 rotationautour de z) et φ = 0

Les angles de Bryant Comme pour les angles d’Euler, l’orientation d’un repèreRn, associé à un solide quelconque, dans un repère de référence R0, est déterminée

Page 31: cour robotique

1.2 Géométrie du déplacement 21

y0

x0

z0

R0

xn

ynzn

Rn

y1

x1

z1

y2

x2

z2

φ1

φ1

φ1 φ2

φ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). Lafigure 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 estobtenu 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 deré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)

Page 32: cour robotique

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 obtenupar 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 rotationunique é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)

Page 33: cour robotique

1.2 Géométrie du déplacement 23

y0

x0

z0

R0

xn

yn

zn

Rn

θ ~u

Figure 1.18 – Les quaternions..

Ces paramètres ont les propriétés suivantes :

2λ21 − 1 = cos θ (a) et λ2

1 + λ22 + λ2

3 + λ24 = 1 (b) (1.75)

La figure 1.18 illustre cette description de l’orientation La matrice d’orientation estla suivante :

AQuat =

2.(λ21 + λ2

2)− 1 2.(λ2.λ3 − λ1.λ4) 2.(λ2.λ4 + λ1.λ3)2.(λ2.λ3 + λ1.λ4) 2.(λ2

1 + λ23)− 1 2.(λ3.λ4 − λ1.λ2)

2.(λ2.λ4 − λ1.λ3) 2.(λ3.λ4 + λ1λ2) 2.(λ21 + λ2

4)− 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 rotationautour 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 = 12.√

sx + ny + az + 1

λ2 = 12.sign(nx − ay).

sx − ny − az + 1

λ3 = 12.sign(ax − sz).

−sx + ny − az + 1

λ4 = 12.sign(sy − nx).

−sx − ny + az + 1

(1.77)

La fonction sign(A) donne le signe d’un réel A

Page 34: cour robotique

24 Géométrie et cinématique du déplacement

yf

xf

zf

Rf

P

A

sRθ

Figure 1.19 – Mouvement circulaire..

1.3 Cinématique du déplacement

Dans cette partie, nous aborderons les principales relations utilisables lorsqu’ils’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.

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 variabledans 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èreRf .

Page 35: cour robotique

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,

Page 36: cour robotique

26 Géométrie et cinématique du déplacement

zf

y0

x0

z0

R0

y1

x1

z1

R1

yi

xi

zi

Ri

yi+1

xi+1zi+1

Ri+1C0

C1

Ci

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 suitque :

(

dr

dt

)

Rf

=

(

dr

dt

)

Rm

+ ω ∧ r (1.83)

qui s’écrit également :.rRf

=.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 à direen position), alors

.rRm

= 0. Il s’en suit que :

.rRf

= ω ∧ 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 chainearticulaire formée par les corps successifs d’un robot. A chacun des corps Ci, onassocie un repère Ri. De plus, on considère R0 comme repère fixe. La figure 1.22décrit le cas d’une chaîne articulaire. Dans ce cas, on peut exprimer la vitesse de

Page 37: cour robotique

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 parrapport à O0 exprimée dans le repère Ri,

– V (Oi)(R0)(Ri)

représente la vitesse de translation de Oi par rapport à O0 expriméedans 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,

– Ωi(R0)(Ri)

représente la vitesse angulaire de rotation du repère Ri par rapport aurepè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èneiTi+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 :– Ωi

(R0)(Ri)

représente la vitesse angulaire de rotation du repère Ri par rapport à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 translationde n’importe quel segment du robot, en particulier celles de l’organe terminal.

Page 38: cour robotique
Page 39: cour robotique

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 decertains 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, quipermettent d’établir les relations entre les couples et les forces exercés par lesactionneurs 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 lasituation de l’organe terminal en fonction de la configuration du mécanismearticulaire et inversement.

.

X ←→.q (2.4)

La plupart de ces modèles sont établis par calcul symbolique. Dans cet objectif, unlogiciel de calcul symbolique est un outil essentiel.

Page 40: cour robotique

30Modé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. Laplus répandue est celle de Denavit-Hartenberg [DH55]. Elle est bien adaptée pour desstructures ouvertes simples, mais présente des ambiguïtés lorsqu’elle est appliquéesur des robots à structures fermées ou arborescentes. Dans les années 80, WisamaKhalil propose une modification de cette méthode : méthode de Denavit-Hartenbergmodifiée (dîte méthode de Khalil). Cette méthode permet la description homogèneen 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 (voirfigure 2.1).

Le corps C0 désigne la base du robot. Le corps Cn est celui qui porte l’organeterminal.

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

Page 41: cour robotique

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ètressuivants :

– αj est l’angle entre les axes zj−1 et zj correspondant à une rotation autour dexj−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 dezj

– rj est la distance entre les axes xj−1 et xj correspondant à une rotation autourde 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èreRj−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)

Page 42: cour robotique

32Modé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 avecR1 pour la valeur particulière de l’articulation q1 = 0. Cela implique que z0 etz1 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 queq = q = qi0 = 0. On peut choisir une autre configuration (quelconque), enprocédant au changement de variable suivant : q

c= q − q

i0avec

Page 43: cour robotique

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, ilsuffit 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 enfaisant 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) 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 synoptiquedu 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

Page 44: cour robotique

34Modé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..

Page 45: cour robotique

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 prendrela convention trièdre indirect.

Dans le cas du robot AID-5, les axes zj sont posés de manière automatique enfonction des conventions de signes sur les axes articulaires (angle positif selon larègle du vissage selon l’axe).

Le tableau des paramètres de Denavit-Hartenberg relatif au robot AID-5 est lesuivant :

J σj αj dj θj rj TrièdreR0 =⇒ R1 0 0 0 q1 0 D/IR1 =⇒ R2 0 90 0 q2 0 DR2 =⇒ R3 0 0 D3 q3 0 D/IR3 =⇒ R4 0 90 0 q4 RL4 DR4 =⇒ R5 0 −90 0 q5 0 IR5 =⇒ 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 lesliaisons R0 =⇒ R1 et R2 =⇒ R3, les axes zj sont soit colinéaires, soit parallèles. Poursimplifier la représentation, dans les deux cas on choisit l’axe xj correspondant detel 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ésentationdu 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 durepè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èrentpar une direction opposée. Dans notre exemple, nous avons retenu la simplificationdu passage R5 =⇒ R6 qui conduit à avoir x5 = x6 pour q6 = 0.

Dans la dernière colonne de ce tableau figure la convention prise (pour chaqueliaison), pour fixer la direction de l’axe xj . Il est clair que cela revient au mêmeen définitif, si l’on considère que les repères R0 et Rn sont les mêmes selon lesconventions prises. La seule différence porte sur la présence et non présence dans letableau de rotations supplémentaires de valeur 180o = π (qui marchent par paire).

Robot manipulateur ACMA H-80 (PRR, RRR) La figure 2.4 montre lesynoptique 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 automatiqueen fonction des conventions de signes sur les axes articulaires (angle positif selon larègle du vissage selon l’axe).

Page 46: cour robotique

36Modélisation géométrique des robots - Commande en position des

robots

+

+ +

+

+

+

D3 D4

z0, z1

x2

z2

x0, x1 x4, x5, x6

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èdreR0 =⇒ R1 1 0 0 0 q1 D/IR1 =⇒ R2 0 0 0 q2 0 D/IR2 =⇒ R3 0 0 D3 q3 0 D/IR3 =⇒ R4 0 0 D4 q4 0 IR4 =⇒ R5 0 −90 0 q5 0 IR5 =⇒ 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

Page 47: cour robotique

2.2 Description de la structure géométrique d’un robot 37

C0

C1

C2

Cn

Cn−1

Cn−2

CkCk+1

Ck+L

Cm

Cm−1

z0, z1

zk

zk+Lzk+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 rorganes 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 enpartant 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 partantde la base.La topologie du système est complètement définie par la donnée des indicesa(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 jJusque là, ces notations sont les mêmes que celles employées pour une chaîne ouvertesimple.

Page 48: cour robotique

38Modé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 commela perpendiculaire commune aux axes zi, zj . En effet, le repère Rj est successeur aurepère Ri. On retient les 4 paramètres de Denavit-Hartenberg pour paramétrer laliaison.

Si le corps Ci porte plus d’un corps, Cj et Ck par exemple, il faut alors choisirl’axe xi sur l’une des deux perpendiculaires communes à zi, zj ou à zi, zk. Le bonsens 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 casdoivent ê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 passageiTj (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 traiterce 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èreRi, mais il est construit sur l’autre perpendiculaire commune.

iTi′ = Rot(z, γj).Trans(z, εj) (2.12)

Page 49: cour robotique

2.2 Description de la structure géométrique d’un robot 39

iTi′ =

Cγj −Sγj 0 0Sγj Cγj 0 00 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èneau 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 organesterminaux. De plus, il dispose de L > n articulations.

Le nombre de boucles fermées est donné par la relation : b = L− nPour 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 lenombre de corps qui la sépare de la racine ait le même ordre de grandeur que l’onparcourt 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 etdes 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’undes corps supportant cette articulation.

Page 50: cour robotique

40Modé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é parl’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 matricede 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 matriceconstante 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 cettederniè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 à celled’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 surune articulation non motorisée, on remarque que les paramètres rk+b et θk+b sontnuls.

La figure 2.7 montre les différents repères mis en oeuvre pour traiter le casparticulier des chaînes fermées.

2.2.3.3 Exemples

Robot manipulateur Hitachi HPR (RRR, RR) On considère le robotHITACHI-HPR constitué de 5 degrés de liberté, 7 corps mobiles et 8 articulationsrotoïdes. Il comporte une boucle fermée de type parallélogramme. Les articulations2, 5 et 8 ne sont pas motorisées. La boucle est ouverte sur l’articulation 8 entre lescorps 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 positifselon la règle du vissage selon l’axe).

Le tableau des paramètres de Denavit-Hartenberg relatif au robot HITACHI-

HPR est le suivant :

Page 51: cour robotique

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èdreR0 =⇒ R1 0 0 0 0 0 0 q1 0 D/IR1 =⇒ R2 1 0 0 0 −90 0 θ2 0 IR1 =⇒ R3 1 0 0 0 −90 0 q3 0 IR2 =⇒ R4 2 0 0 0 0 D4 q4 0 D/IR3 =⇒ R5 3 0 0 0 0 D5 θ5 0 D/IR5 =⇒ R6 5 0 0 0 0 D6 q6 0 D/IR6 =⇒ R7 6 0 0 0 90 0 q7 0 DR4 =⇒ R8 4 0 0 0 0 D8 = D5 θ8 0 D/IR5 =⇒ 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ïdeset 2 prismatiques. Il comporte une boucle fermée de type parallélogramme. Lesarticulations 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 synoptiqueen faisant apparaître deux liaisons rotoïdes à la place du parallélogramme et desdeux 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

Page 52: cour robotique

42Modélisation géométrique des robots - Commande en position des

robots

Figure 2.8 – Synoptique du robot HITACHI-HPR.

Page 53: cour robotique

2.2 Description de la structure géométrique d’un robot 43

Figure 2.9 – Synoptique du robot ASEA-IRB5.

Page 54: cour robotique

44Modélisation géométrique des robots - Commande en position des

robots

Figure 2.10 – Synoptique équivalent du robot ASEA-IRB5.

Page 55: cour robotique

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èdreR0 =⇒ R1 0 0 0 0 0 0 q1 L1 D/IR1 =⇒ R2 1 0 0 0 90 0 q2 0 D/IR2 =⇒ R3 1 0 0 0 0 L2 q3 0 D/IR3 =⇒ R4 2 0 0 0 0 L3 q4 0 D/IR4 =⇒ 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 lerepère atelier

Un robot n’est qu’un constituant d’un poste de travail. Généralement, on luiadjoint des systèmes d’alimentation et d’évacuation de pièces, des dispositifs debridage, 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, nousdéfinissons un repère atelier que nous noterons Rf , différent dans la plupart des casdu repère R0 lié à la base fixe du robot (évident dans le cas où il y a plusieursrobots).

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 situationdu 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 lasituation 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 lasituation 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 peutavoir 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 robotiqueassocié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

Page 56: cour robotique

46Modélisation géométrique des robots - Commande en position des

robots

R0

Rf RE

Rn

z = fT0

0Tn

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 demesurer la situation du robot dans le repère atelier Z, et de calibrer la situation Edu 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 variablesarticulaires.

La situation de l’organe terminalX est définie parm 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. Nousavons vu dans la première partie de ce cours, qu’il existait plusieurs façons de coderla position et l’orientation d’un corps solide.

Par exemple, si l’on choisit :

Page 57: cour robotique

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 tableaudes paramètres de Devavit-Hartenberg de ce robot ci-dessous :

J σj αj dj θj rj TrièdreR0 =⇒ R1 0 0 0 q1 0 D/IR1 =⇒ R2 0 90 0 q2 0 DR2 =⇒ R3 0 0 D3 q3 0 D/IR3 =⇒ R4 0 90 0 q4 −RL4 DR4 =⇒ R5 0 −90 0 q5 0 IR5 =⇒ R6 0 −90 0 q6 0 I

D3 et RL4 sont les caractéristiques géométriques du robot. On rappelle l’expressionde 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 solutionconsiste à utiliser un logiciel de calcul formel. Parmis les plus connus, nous pouvonsciter 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 Libred’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 00 π

20 q2 0

0 0 D3 q3 00 π

20 q4 −RL4

0 −π2

0 q5 00 −π

20 q6 0

Page 58: cour robotique

48Modé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 00 0 1 00 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 00 1 0 00 0 1 00 0 0 1

(C39) T34 : DenHart (DH, 4)

(D39)

Cq4 −Sq4 0 00 0 −1 RL4

Sq4 Cq4 0 00 0 0 1

(C40) T45 : DenHart (DH, 5)

(D40)

Cq5 −Sq5 0 00 0 1 0−Sq5 −Cq5 0 0

0 0 0 1

(C41) T56 : DenHart (DH, 6)

(D41)

Cq6 −Sq6 0 00 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 durobot : 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 pourl’élaboration du modèle géométrique inverse (MGI). On a :

Uj =j Tj+1.Uj+1 (2.25)

Page 59: cour robotique

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 =

sxjnxj

axjPxj

syjnyj

ayjPyj

szjnzj

azjPzj

0 0 0 1

(2.33)

(C42) U5 : T56

(D42)

Cq6 −Sq6 0 00 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 00 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 00 0 0 1

(C49) s2 : Extrait (U2, 1)

(D49)

Sq4Sq6 + Cq4Cq5 Cq6

Sq5Cq6

Sq4Cq5Cq6 − Cq4 Sq6

(C50) n2 : Extrait (U2, 2)

Page 60: cour robotique

50Modé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)

0RL4

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 − Cq4C0

(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)

0

B

B

@

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

1

A

(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

1

A

(C61) a0 : Extrait (U0, 3)

Page 61: cour robotique

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

1

A

(C62) P0 : Extrait (U0, 4)

(D62)

0

@

Cq1 (D3Cq2 − S ( q3 + q2) RL4)

Sq1 (D3Cq2 − S ( q3 + q2) RL4)

C (q3 + q2) RL4 + D3Sq2

1

A

A partir de la matrice de passage U0, il est possible de choisir comme vecteur decoordonné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 relationsissues de U0. On peut noter que dans ce cas, la descrition est redondante car 6paramètres suffisent pour décrire la position et l’orientation de l’organe terminaldans le repère atelier. Si on veut réduire le nombre de paramètres, alors, il faudrachoisir un système de descrition d’angles. Dans ce cas, le MGD sera décrit pas levecteur 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 robotACMA H-80 :

J σj αj dj θj rj TrièdreR0 =⇒ R1 1 0 0 0 q1 D/IR1 =⇒ R2 0 0 0 q2 0 D/IR2 =⇒ R3 0 0 D3 q3 0 D/IR3 =⇒ R4 0 0 D4 q4 0 IR4 =⇒ R5 0 −90 0 q5 0 IR5 =⇒ 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

Page 62: cour robotique

52Modélisation géométrique des robots - Commande en position des

robots

DH :

1 0 0 0 q1

0 0 0 q2 00 0 D3 q3 00 0 D4 q4 00 −π

20 q5 0

0 −π2

0 q6 0

1 0 0 0 q1

0 0 0 q2 00 0 D3 q3 00 0 D4 q4 00 −π

20 q5 0

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 00 1 0 00 0 1 q1

0 0 0 1

T12 : DenHart ( DH, 2)

Cq2 −Sq2 0 0

Sq2 Cq2 0 00 0 1 00 0 0 1

T23 : DenHart ( DH, 3)

Cq3 −Sq3 0 D3

Sq3 Cq3 0 00 0 1 00 0 0 1

T34 : DenHart ( DH, 4)

Cq4 −Sq4 0 D4

Sq4 Cq4 0 00 0 1 00 0 0 1

T45 : DenHart ( DH, 5)

Page 63: cour robotique

2.3 Modélisation géométrique directe d’un robot 53

Cq5 −Sq5 0 00 0 1 0−Sq5 −Cq5 0 0

0 0 0 1

T56 : DenHart ( DH, 6)

Cq6 −Sq6 0 00 0 1 0−Sq6 −Cq6 0 0

0 0 0 1

U5 : T56

Cq6 −Sq6 0 00 0 1 0−Sq6 −Cq6 0 0

0 0 0 1

TRIGREDUCE (U5)

Cq6 −Sq6 0 00 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

n2 : Extrait (U2, 2)

Cq3 (Sq4Cq6 − Cq4Cq5Sq6)− Sq3 (−Sq4Cq5Sq6 − Cq4Cq6)

Cq3 (−Sq4Cq5Sq6 − Cq4Cq6) + Sq3 (Sq4Cq6 − Cq4Cq5Sq6)

Sq5Sq6

a2 : Extrait (U2, 3)

Page 64: cour robotique

54Modé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

1

A

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

1

A

a1 : 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

1

A

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

1

A

a0 : 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

Page 65: cour robotique

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 :

X q

MGI

MGD

Le problème inverse MGI consiste à calculer les coordonnées articulaires quiamènent l’organe terminal dans une situation désirée, spécifiée par ses coordonnéesopérationnelles.

Lorsqu’elle existe, la forme explicite qui donne toutes les solutions possibles auproblème inverse (il y a rarement unicité de la solution) constitue ce que l’on appellele modèle géométrique inverse MGI.

Il n’existe pas une méthode analytique générale pour trouver le MGI, mais uncertain nombre de méthodes, plus ou moins adaptées à des classes de cinématiquesparticulières :

– la méthode de Pieper [Pie68] : permet de résoudre le problème pour un nombrelimité d’architectures simples (robots à 6 degrés de liberté (ddl), possédant 3articulations rotoïdes d’axes concourants ou 3 articulations prismatiques).

– la méthode de Paul [Pau81] : traite séparément chaque cas particulier etconvient à 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 ya 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 utilisedes 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 cetinconvé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]).

Page 66: cour robotique

56Modé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 finaledé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 → qConvension (2.36) Méthode de Paul

(2.37)

Conclusion : Après avoir calculé la valeur numérique de U0 à partir de X, onutilise 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 toutesles configurations permettant d’atteindre une situation donnée.

Tous les robots ne le sont pas, mais ce n’est pas une condition nécessaire pourla commande car dans de pareil cas, des méthodes itératives numériques sont misesen 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 :

Page 67: cour robotique

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 durobot. La zone accessible est limitée par le nombre de ddl, les débattementsarticulaires, 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 organeterminal dans certaines directions ou tourner autour de certains axes. De cefait, il perd un ou plusieurs ddl. Tout cela est dû aux valeurs numériquesparticuliè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 satisfontl’équation

X = f(qi) (2.38)

pour i = 1, 2, ..., rr =

∑nj=1Kj 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’existepas de formule générale pour le déterminer.

Pour les classes de robots à 6 ddl possédant trois articulations rotoïdes d’axesconcourants, le nombre maximum de solutions est de 32 dans l’hypothèse ou aucunparamètre géométrique n’est égal à 0.

Ce nombre dépend des valeurs particulières des paramètres géométriques, del’amplitude des courses articulaires et donc du positionnement des butées méca-niques et/ou électriques.

Page 68: cour robotique

58Modé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 pourexpression :

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’organeterminal 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 successivementles 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 quel’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 uniquement2ème partie de l’équation = fonction de q2, q3, q4,q5, q6 déjà calculé pourMGD 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 plussimples qui constitue l’expression de droite avec les termes équivalents danscelle 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 par2T1 et on réitère le même processus. La succession des équations permettant

Page 69: cour robotique

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 → q12T1U1 =2 T3.

3T4.4T5.

5T6 → q23T2U2 =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 suffitalors 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’utilisationd’un grand nombre de robots industriels a permis de constater que les principauxtypes rencontrés sont peu nombreux. La liste est donnée par le tableau 2.4.5.2. Les10 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

Xavec X 6= 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 = ATAN 2(−Y,X)θ′i = θi + 180o

(2.46)

– Z 6= 0On résout le système en sinus et en cosinus, puis on prend l’arctangente : On peutréé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 2avec ε = ±1

(2.48)

Page 70: cour robotique

60Modé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 3X1.Sθi = Y1

X2.Cθi = Y2ou

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

Page 71: cour robotique

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 2avec ε = ±1

(2.49)

Le signe − devant ε vient du fait que nous devrons vérifier à chaque instant queC2θ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)

Page 72: cour robotique

62Modé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

=⇒

r2j .S

2θi =Y 2

1

X21

r2j .C

2θi =Y 2

2

X22

(2.57)

d’où

rj = ±√

Y 21

X21

+Y 2

2

X22

Si rj n’est pas nul, on en déduit :

θi = ATAN 2(Y1

X1rj ,

Y2

X2rj) (2.58)

X1 et X2 étant non nuls. La réponse est la suivante :

rj = ±√

Y 21

X21

+Y 2

2

X22

θ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)

Page 73: cour robotique

2.4 Modélisation géométrique inverse d’un robot 63

S2θi + C2θi = 1

1 = V 21 + V 2

2 + 2.(W1V1 +W2V2).rj + (W 21 +W 2

2 ).r2j

= 4.(W1V1 +W2V2)2 − 4.(V 2

1 + V 22 − 1).(W 2

1 +W 22 )

= 4.(2.W1V1.W2V2)− 4.(V 21 .W

22 + V 2

2 .W21 −W 2

1 −W 22 )

= 4.(W 21 +W 2

2 − (V1.W2 − V2.W1)2)

(2.62)

rj =−(V1.W1 + V2.W2) + ε

W 21 +W 2

2 − (V1.W2 − V2.W1)2

W 21 +W 2

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) + ε

W 21 +W 2

2 − (V1.W2 − V2.W 21 )

W 21 +W 2

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 :

W 2.S2θj = X2.C2θi + Y 2.S2θi + Z21 + 2.X.Y.Cθi.Sθi + 2.X.Cθi.Z1 + 2.Y.Sθi.Z1

W 2.C2θj = X2.S2θi + Y 2.C2θi + Z22 − 2.X.Y.Cθi.Sθi + 2.X.Sθi.Z2 − 2.Y.Cθi.Z2

W 2 = X2 + Y 2 + Z21 + 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)

Page 74: cour robotique

64Modé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 = W 2 −X2 − Y 2 − Z2

1 − Z22

(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 + Z2et

X1 = WX2 = 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 :

W 21 .C

2θj +W 22 .S

2θj + 2.W1.W2.Cθj .Sθj

W 21 .S

2θj +W 22 .C

2θj − 2.W1.W2.Cθj .Sθj(2.72)

En additionnant, il reste W 21 +W 2

2

Pour les seconds membres élevés au carré, on a :

X2.C2θi + Y 2.S2θi + Z21 + 2.XY.Cθi.Sθi + 2.XZ1.Cθi + 2.Y Z1.Sθi

X2.S2θi + Y 2.C2θi + Z22 − 2.XY.Cθi.Sθi + 2.XZ2.Sθi − 2.Y Z2.Cθi

(2.73)

En additionnant, il reste

X2 + Y 2 + Z21 + 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 = W 21 +W 2

2 −X2 − Y 2 − Z21 − Z2

2

(2.75)C’est une équation de type 2 en θi. Une fois θi calculé, on résout une des 2 équationsde 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)

Page 75: cour robotique

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) = Z21

X2.S2θi + Y 2.S2(θi + θj) + 2.XY.Sθi.S(θi + θj) = Z22

(2.77)

En additionnant :

2.XY.(Cθi.C(θi + θj) + Sθi.S(θi + θj)) = Z21 + 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)) = Z21 + Z2

2 −X2 − Y 2 (2.79)

d’où

C(θi + θj − θi) = Cθj =Z2

1 + Z22 −X2 − Y 2

2.XY(2.80)

On en déduit θj avec :

θj = ATAN2(±√

1− C2θj , Cθj) (2.81)

Il suffit ensuite de résoudre un système de deux équations et deux inconnues commesuit :

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

XSθi = ±

√1− C2θi

et θi = ATAN2(Sθi, Cθi) (2.86)

Page 76: cour robotique

66Modé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

XCθ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ériede calculs itératifs présentés dans le paragraphe e), il est bon de se poser la questionde simplification de la méthode. En effet, avant tout calcul, il faut savoir :

– quelles sont les variables articulaires qui contribuent à la position du repèreterminal du robot Rn

– quelles sont les variables articulaires qui contribuent à l’orientation du repèreterminal Rn

Lorsque le poignet du robot est une rotule d’axes concourants, c’est le porteur quipilote 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 T 11 T

22 T3...

n−3Tn−3+1

0001

(2.89)

(2.90)

avec :

Px

Py

Pz

1

: position de l’organe terminal dans le repère R0.

0001

: opérateur d’extraction de la matrice de position à partir de la matrice

de transformation homogèneA 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èresarticulations.

Page 77: cour robotique

2.4 Modélisation géométrique inverse d’un robot 67

Pour les 3 dernières, on utilise une seconde relation. Une fois la position atteinte,l’organe terminal se trouve dans une "orientation initiale" dûe aux différentes trans-formations homogènes depuis le repère de base du robot R0, jusqu’au dernier repèredu porteur Rn−3.

A partir de la matrice U0, on peut extraire la matrice des cosinus directeurs 0An.0An = [ s n a] est une donnée du problème inverse.

On peut donc écrire :n−3A0[ s n a] =n−3 An (2.91)

Les premières variables articulaires q1, q2..qn−3 étant calculées à partir de la positionde l’organe terminal, la matrice n−3A0 est donc connue numériquement. Le terme degauche est donc entièrement connu. On réduit le système à trois variables articulairesqn−2, qn−1 qn.

Pour déterminer leurs valeurs numériques, on utilise la méthode itérative duparagraphe 2.4.5.1 page 58.

Remarque :

1. Lorsque le robot à 6ddl (n = 6), les deux relations précédentes s’écrivent :– Pour la position, on détermine q1, q2, q3 avec :

Px

Py

Pz

1

=0 T 11 T

22 T

33 T4

0001

(2.92)

Px

Py

Pz

1

est la position de l’organe terminal et 0T 11 T

22 T

33 T4

0001

ne dé-

pend que de q4, a5, q6.– Pour l’orientation, on détermine q4, q5, q6 à partir de :

3A0 [s n a] =3 A6

↑ ↑ ↑Ne dépend que de Matrice des cos. directeurs Ne dépend que de

q1q2q3 extraite à partir de U0 q4q5q6(2.93)

2. Dans la remarque précédente, la première relation fait apparaître la matricede transformation homogène 3T4. Celle-ci n’est utile que si l’origine du repèreR3 ne coïncide pas avec l’origine du repère R4. Sa présence dans la relation,permet de prendre en compte les paramètres géométriques fixes de la liaisonR3/R4.

3. Lorsque n est supérieur à 6, on dit que le robot est redondant. Il sera donc né-cessaire d’introduire des relations supplémentaires décrivant cette redondance.

Page 78: cour robotique

68Modélisation géométrique des robots - Commande en position des

robots

2.4.7 Exemples de calcul de MGI

2.4.7.1 Calcul du MGI pour le robot AID-5

On se donne le système de coordonnées opérationnelles X.

On peut en déduire U0 =0 T6 =

sx nx ax Px

sy ny ay Py

sz nz az Pz

0 0 0 1

(2.94)

Il faut déterminer le système de coordonnées articulaires q.

On a :

U0 =0 T11T2

2T33T4

4T55T6 =0 T6

Uj =j Tj−1 Uj−1 permettant de déterminer dans l’ordre q1 à q6

(2.95)

Détermination de q1, q2, q3 Ce robot possède un poignet rotule.

Les premiers éléments du corps articulé forment les translations.

Les derniers éléments forment les rotations.

On a donc :

0P6 =0 P4 permettant de déterminer dans l’ordre q1 à q6 (2.96)

Px

Py

Pz

1

=0 T11T2

2T33T4

0001

(2.97)

On a donc :

Px

Py

Pz

1

=

C1 [−S23 RL4 + C2 D3]s1 [−S23 RL4 + C2 D3]

C23 RL4 + S2 D3

1

(2.98)

Ces relations ne permettent pas d’extraire directement q1, q2, q3.

Seul q1 pourrait être déterminé. En effet, d’après la relation précédente, paridentification des termes de droite et gauche on pourrait écrire :

q1 = ATAN 2(Py, Px) à π près (2.99)

Prémultiplication par 1T0

1T0

Px

Py

Pz

1

=

C1 Px + S1 Py

−S1 Px + C1 Py

Pz

1

(2.100)

Page 79: cour robotique

2.4 Modélisation géométrique inverse d’un robot 69

=1 T00T1

1T22T3

0001

=1 T4

0001

(2.101)

=1 T6

0001

= U1

0001

(2.102)

4→ 6 est une liaison rotule n’affectant pas la position.Or U1 a déjà été calculé par le MGD.

On en tire par identification, de nouvelles équations.

C1 Px + S1 Py = −S23 RL4 + C2 D3 (a)−S1 Px + C1 Py = 0 (b)Pz = C23 RL4 + S2 D3 (c)

(2.103)

de l’équation (b) on tire

q1 = ATAN 2(Py, Px)ouq′1 = q1 + 180

(2.104)

Prémultiplication par 2T1

On a alors :

2T1

C1 Px + S1 Py

−S1 Px + C1 Py

Pz

1

= U2

0001

l

=

−S3 RL4 +D3

C3 RL4

01

(2.105)

D’où les nouvelles équations :

C2(C1 Px + S1 Py) + S2 Pz = −S3 RL4 +D3 (a)−S2(C1 Px + S1 Py) + C2 Pz = C3 RL4 (b)S1 Px − C1 Py = 0 (c)

(2.106)

On peut calculer q2 et q3 à partir des équations (a) et (b).

C’est un système de type 6.

Calculons d’abord q2

On a un système du type

W Sθj = X Cθi + Y Sθi + Z1

W Cθj = X Sθi + Y Cθi + Z2

(2.107)

Page 80: cour robotique

70Modélisation géométrique des robots - Commande en position des

robots

On se ramène à un système du type

B1 Sθi +B2 Cθi = B3

Avec B1 = 2(Z1 Y + Z2 X)B2 = 2(Z1 X − Z2 Y )B3 = W 2 −X2 − Y 2 − Z2

1 − Z22

(2.108)

Dans notre cas on a :

W = RL4 X = −B = −(C1Px + S1Py)Z1 = D3 Y = −Pz

Z2 = 0(2.109)

D’où B1 Sθ2 +B2 Cθ2 = B3

AvecB1 = 2(−D3 Pz) = −2D3 Pz

B2 = −2D3 BB3 = RL2

4 − B2 − P 2z −D2

3

(2.110)

C’est une équation de type 2 avec identification

B1 → XB2 → YB3 → Z

(2.111)

La solution est :

Sθ2 =B1B3 + εB2

B21 +B2

2 −B23

B21 +B2

2

= S2

Cθ2 =B1B3 − εB1

B21 +B2

2 − B23

B21 +B2

2

= C2

(2.112)

Avec ε = ±1 et B21 +B2

2 − B23 ≥ 0

Une autre forme peut être utilisée en posant :

V =√

D − B23

D = B21 +B2

2

(2.113)

Sθ2 =B1B3 + εB2 V

D= S2

(type 3)

Cθ2 =B1B3 + εB1 V

D= C2

(2.114)

De ces deux relations on tire :

q2 = q2 = ATAN 2(Sθ2, Cθ2)

2 solutions ε = ±1

(2.115)

Page 81: cour robotique

2.4 Modélisation géométrique inverse d’un robot 71

Calculons q3

D’après le dernier système d’équation, on a :

S3 = −PzS2 +BC2 −D3

RL4

C3 = −C2Pz + S2B

RL4

(2.116)

D’oùq3 = ATAN 2(S3, C3) (2.117)

Détermination de q4, q5, q6

L’orientation de U0 =0 T6 est 0A6 = [s n a] (2.118)

donc 3A0[s n a] =3 A6

– q1, q2, q3 étant connu 3A0 est connu– [s n a] est l’orientation définie par le système de coordonnées opérationnelles.

C’est une donnée du problème.– 3A6 ne dépend que de q4, q5, q6 qui sont inconnues

On a donc ici un système d’équations avec 3 inconnues.

On calcule le terme de gauche en déterminant d’abord

3A0 = (0A−13 ) = (0A3)

T (2.119)

or 0A3 est la matrice de rotation de 0T3 c’est à dire

0T3 =0 T11T2

2T3 =0 T11T3 (2.120)

3T0 [s n a] =

C1 −S1 0 0S1 C1 0 00 0 1 00 0 0 1

C23 −S23 0 C2D3

0 0 −1 0S23 C23 0 S2D3

0 0 0 1

−1

.[s n a] (2.121)

D’où on en tire :

3A0 =

C23 0 S23

−S23 0 C23

0 −1 0

C1 S1 0−S1 C1 00 0 1

(2.122)

3A0[s n a] = [3A0 s3A0 n

3A0 a]

3A0 s =

C23 0 S23

−S23 0 C23

0 −1 0

C1 S1 0−S1 C1 00 0 1

sx

|sy

sz

(2.123)

Page 82: cour robotique

72Modélisation géométrique des robots - Commande en position des

robots

=

C23 0 S23

−S23 0 C23

0 −1 0

C1sx + S1sy

−S1sx + C1sy

sz

(2.124)

=

C23(C1sx + S1sy) + S23sz

−S23(C1sx + S1sy) + C23sz

S1sx − C1sy

(2.125)

De même on obtient

3A0 n =

C23(C1nx + S1ny) + S23nz

−S23(C1nx + S1ny) + C23nz

S1nx − C1ny

(2.126)

et

3A0 a =

C23(C1ax + S1ay) + S23az

−S23(C1ax + S1ay) + C23az

S1ax − C1ay

(2.127)

D’autre part 3A6 est la matrice de rotation de 3T6.

Elle peut être extraite de U3.

3A6 =

C4C5C6 − S4S6 −C4C5S6 − S4C6 −C4S5

S5C6 −S5S6 C5

−S4C5C6 − C4S6 S4C5S6 − C4C6 S4S5

(2.128)

Après analyse de 3A6 et q5, ne peut se déterminer que par l’utilisation de la fonctionArcosinus. Cette fonction étant moins précise que ATAN2, on préfère utiliser 4A6

extraite à partir de U4.

4A6 =

C5C6 −C5S6 −S5

S6 C6 0S5C6 −S5S6 C5

(2.129)

Il est donc nécessaire de calculer :

4A0(s n a) =4 A33A0(s n a) (2.130)

D’où

4A0 s =

C4 0 −S4

−S4 0 −C4

0 1 0

C23(C1sx + S1sy) + S23sz

−S23(C1sx + S1sy) + C23sz

S1sx − C1sy

(2.131)

=

C4[C23(C1sx + S1sy) + S23sz]− S4(S1sx − C1sy)−S4[C23(C1sx + S1sy) + S23sz]− C4(S1sx − C1sy)

−S23(C1sx + S1sy) + C23sz

(2.132)

On en déduit 4A0 n et 4A0 a en remplaçant s par n puis a.

En identifiant le terme matriciel troisième colonne, deuxième ligne on a

−S4[C23(C1ax + S1ay) + S23az]− C4(S1ax − C1ay) = 0 (2.133)

Page 83: cour robotique

2.4 Modélisation géométrique inverse d’un robot 73

que l’on peut réécrire :

C4B1 + S4[C23B2 + S23az] = 0 (2.134)

avec B1 = S1ax − C1ay

B2 = C1ax + S1ay(2.135)

C’est une équation type 2. On a 2 solutions :

q4 = ATAN2(B1,−C23B2 − S23az)ou

q′4 = q4 + 180(2.136)

Pour q5, on utilise la troisième colonne ligne 1 et 3.

−S5 = C4[C23(C1ax + S1ay) + S23az]− S4(S1ax − C1ay)C5 = −S23(C1ax + S1ay) + C23az

(2.137)

C’est une équation de type 3 :

On en déduitq5 = ATAN2(S5, C5) (2.138)

Pour q6, on a la deuxième ligne des matrices (colonne 1 et 2).

Equations de type 2

S6 = −S4[C23(C1sx + S1sy) + S23sz]− C4[S1sx − C1sy]C6 = −S4[C23(C1nx + S1ny) + S23nz]− C4[S1nx − c1ny]

(2.139)

On en déduitq6 = ATAN2(S6, C6) (2.140)

On a donc une solution pour q5, q6, q2, q3 et deux solutions pour q4, q1

Soit un total de quatre solutions.

Le choix devra se faire sur des critères additifs.

Par exemple :– éloignement des butées– contrôle de l’espace occupé par le robot– autre...

Remarque : il existe des positions singulières du robot

1. Si Px = Py = 0

Dans ce cas, q1 est indéterminé et O4 (centre de la route) ∈ à l’axe z0, z1.

On peut fixer par exemple :

q1 = q1c valeur courante de q1ou

q1=le plus éloigné des butées électriques et mécaniques. Dans ce cas, il sepeut qu’une faible variation de la situation entraîne une grande variation deq1 impossible à réaliser.

Page 84: cour robotique

74Modélisation géométrique des robots - Commande en position des

robots

2. Si C23(C1ax + S1ay) + S23az = 0 et S1ax − C1ay = 0

Alors q4 est indéterminée.

Si S5 = 0 (résultat des hypothèses 2. Voir equation (2.138) page 73 pour le calculde q5)

alors les axes z4 et z6 sont confondus.

C’est donc la somme q4 + q6 qui intervient car q5 = 0

C’est une singularité de poignet.

Dans ce cas,

3A6 =3 A44A5

5A6 = A(x,−90 )A(z, q4 + q6) (2.141)

Comme q5 = 0 on ne passe pas par R5.3A6 représente la matrice de rotation de U3 :

Or

U3 =

C4C5C6 − S4S6 −C4C5S6 − S4C6 −C4S5 0S5C6 −S5S6 C5 RL4

−S4C5C6 − C4S6 S4C5S6 − C4C6 S4S5 00 0 0 1

(2.142)

U3/q5=0 =

C4C6 − S4S6 −C4S6 − S4C6 0 00 0 1 RL4

−S4C6 − C4S6 S4S6 − C4C6 0 00 0 0 1

(2.143)

U3/q5=0 =

C(4+6) −S(4+6) 0 00 0 1 RL4

−S(4+6) −C(4+6) 0 00 0 0 1

or3A6 =3 A6[s n a] (2.144)

D’où (deuxième colonne)

q4 + q6 = ATAN2[−C23(C1nx + S1ny) + S23nz − S1nx − C1ny] (2.145)

On peut fixer q4 à la valeur courante et q6 par la relation à dessus.

On peut aussi chercher que q4 et q6 soient le plus éloignées possible des butées.

2.4.7.2 MGI du robot ACMA H-80

Page 85: cour robotique

2.5 Commande en position d’un robot 75

2.5 Commande en position d’un robot

2.5.1 Introduction

En robotique, une des taches de base que doit accomplir un robot consiste à sedéplacer d’un point A à un point B, avec le respect éventuel d’un certain nombrede contraintes (vitesse, accéleration max, évitement d’obstacle). La commande enposition du robot consiste donc à calculer les différentes consignes, en fonction dutemps, afin de générer le mouvement désiré. C’est pour cela que la commande enposition d’un robot est aussi appelée génération de mouvement.

De manière classique, deux types de commande en position sont envisagée :– une commande en position dans l’espace articulaire q (fig 2.12a). Pour assurer

le passage de la position initiale à la position finale (qi → qf) et le controlertemporellement, une génération de mouvement est nécessaire. Par exemple, sil’on souhaite synchroniser les axes pour avoir un mouvement harmonieux etcontroler la géométrie du déplacement du robot à chaque itération.

– une commande en position dans l’espace opérationnel X (fig 2.12b).

+-

+-

qf

qd(t)

qd(t)

qi

qi

qm

qm

T

T

Génération d’un

Génération d’un

mouvement en

mouvement enq

Asservissement

Asservissement

MGI

MGD

XfXd(t)

X i

X

(a)

(b)

Figure 2.12 – Boucles de génération de mouvement. (a) : dans l’espace articulaire- (b) : dans l’espace opérationnel..

Le choix du type de commande peut être effectué en fonction de l’espace dans lequelest décrit la trajectoire à suivre. La génération d’un mouvement directement dansl’espace articulaire présente des avantages :

– le mouvement est minimal sur chaque articulation,– elle nécessite moins de calculs (pas de passage MGD MGI),

Page 86: cour robotique

76Modélisation géométrique des robots - Commande en position des

robots

– le mouvement n’est pas affecté pas le passage sur les configurations singulières,– les contraintes de couples maximum et de vitesse maximum sont connues car

on les fixe aux limites physiques des actionneurs.En contrepartie, la géométrie du déplacement du robot dans l’espace opération-

nel n’est pas controlée (bien qu’elle soit répétitive). Il y a donc risque de collision sil’environnement est encombré. On en déduit que ce type de mouvement conviendrad’avantage lorsque l’espace sera dégagé, et pour des déplacements rapides.

Lorsque la géométrie de la trajectoire doit être contrôlée, la génération de trajec-toire dans l’espace opérationnel sera préférée. Par contre, elle comporte un certainnombre d’inconvénients :

– elle demande d’appliquer le MGI en chaque point de la trajectoire,– elle peut être mise en défaut lorsque la trajectoire calculée passe par une

position singulière,– elle peut être mise en défaut lorsque la trajectoire calculée fait passer une

articulation hors de ces limites de variation q¬[qmin; qmax],– les limites Cmax, Vmax étant définies dans l’espace opérationnel ne permettent

pas d’utiliser au mieux les actionneurs.Le choix dépend essentiellement de la tâche à effectuer et de l’espace de travail.

espace articulaire espace opérationnelrapide “moyennement” rapide

tâche espace de travail libre espace de travail encombré(vitesses, couples, butées) (précision, obstacle)

2.5.2 Génération de mouvement dans l’espace articulaire

Soit un robot à n degrés de liberté.

Soit qi le vecteur des coordonnées articulaires initiales.

Soit qf le vecteur des coordonnées articulaires finales.

Soit kv le vecteur vitesse maximal.

Soit ka le vecteur accélération maximal.

Les caractéristiques kv, ka sont calculées en fonction de :– kv : les caractéristiques des actionneurs et des rapports de réduction des or-

ganes de transmission,– ka : le rapport des couples moteurs maximaux aux inerties maximales.

Le mouvement interpolé entre qi et qf en fonction du temps t est décrit par

Page 87: cour robotique

2.5 Commande en position d’un robot 77

l’équation suivante :

q = qi + r(t)D pour 0 ≤ t ≤ tf.q (t) =

.r (t)D

(2.146)

avec D = qf − qi.

r(t) est une fonction d’interpolation telle que : r(0) = 0 et r(tf ) = 1. On peutalors écrire 2.146 comme suit :

q(t) = qf(t)− [1− r(t)]D (2.147)

Plusieurs fonctions permettent de satisfaire le passage par qi à t = 0 et qf àt = tf :

– interpolation polynomiale linéaire, de degré 3 ou de degré 5– loi du Bang Bang,– loi trapèze (Bang Bang avec paliers de vitesse)

2.5.2.1 Interpolation polynomiale

Les 3 modes les plus courants sont l’interpolation linéaire, l’interpolation de degré3 et l’interpolation de degré 5.

L’interpolation linéaire C’est la plus simple. L’équation du mouvement s’écrit :

q(t) = qi +t

tf.D (2.148)

Cette loi de mouvement impose une vitesse constante le long de la trajectoire. Elleest continue en position et discontinue en vitesse.

On en déduit la fonction d’interpolation :

r(t) =t

tf(2.149)

La loi est continue en position, mais discontinue en vitesse et accélération. Onobtient l’évolution suivante (fig 2.13).

Pratiquement, le début (t = 0) et la fin (t = tf ) sont marqués par des à-coups.

Page 88: cour robotique

78Modélisation géométrique des robots - Commande en position des

robots

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3Evolution de la variable q(t)

t (secondes)

q(t)

qf

qi

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

Vmax

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−3

−2

−1

0

1

2

3Evolution de la variable d/dt(dq/dt)

t (secondes)

d/dt

(dq/

dt)

Figure 2.13 – Degré 1 : Evolution de la position, de la vitesse et de l’accélération.

Page 89: cour robotique

2.5 Commande en position d’un robot 79

L’interpolation de degré 3 [Craig86] Si l’on impose une vitesse nulle aux pointsde départ et d’arrivée, on rajoute deux contraintes supplémentaires par rapport àl’interpolation linéaire. Afin de satisfaire ces 4 contraintes,

qi = q(0) = 0 (a)qf = q(tf ) = 0 (b)

q(0) = qi (c)q(tf ) = qf (d)

le degré minimal du polynôme est de 3. La forme générale est donnée par l’équa-tion suivante :

q(t) = a0 + a1.t+ a2.t2 + a3.t

3 (2.150)

On en déduit les relations donnant la vitesse et l’accélération :

q = a1 + 2.a2.t+ 3.a3.t2

q = 2.a2 + 6.a3.t(2.151)

En utilisant les hypothèses (a) et (c), on en déduit les coefficients :

a0 = qi

a1 = 0(2.152)

On en déduit la fonction d’interpolation :

r(t) = 3.

(

t

tf

)2

− 2.

(

t

tf

)3

(2.153)

En utilisant les hypothèses (b) et (d), on obtient un système de deux équationset deux inconnues. On en déduit les coefficients :

a2 = 3t2f

.D

a3 = − 2t3f

.D(2.154)

L’accélération s’annule lorsque t = −2.a2

6.a3=

2.3.t3f

t2f.6.2

=tf2. Elle a donc un maximum

en t = 0 et minimum en t = tf . La valeur extrèmale est : qmax = 6.|D|t2f

La vitesse est maximale en t =tf2

et nulle en t = 0 et en t = tf . La valeur

extrèmale est : qmax = 3.|D|2.tf

.

On obtient l’évolution suivante (fig 2.14).

Page 90: cour robotique

80Modélisation géométrique des robots - Commande en position des

robots

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3Evolution de la variable q(t)

t (secondes)

q(t)

qf

qi

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

3.|D|/(2.tf)

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−6

−4

−2

0

2

4

6

Evolution de la variable d/dt(dq/dt)

t (secondes)

d/dt

(dq/

dt)

6.|D|/(tf.tf) 6.|D|/(tf.tf)

−6.|D|/(tf.tf)

Figure 2.14 – Degré 3 : Evolution de la position, de la vitesse et de l’accélération.

Page 91: cour robotique

2.5 Commande en position d’un robot 81

L’interpolation de degré 5 [Binford77]Si de plus l’on impose une accélération nulle aux points de départ et d’arrivée, on

rajoute deux contraintes supplémentaires par rapport à l’interpolation de degré 3.Afin de satisfaire ces 6 contraintes,

qi = q(0) = 0 (a)qf = q(tf ) = 0 (b)

qi = q(0) = 0 (c)qf = q(tf) = 0 (d)

q(0) = qi (e)q(tf ) = qf (f)

le degré minimal du polynôme est de 5. La forme générale est donnée par l’équa-tion suivante :

q(t) = a0 + a1.t+ a2.t2 + a3.t

3 + a4.t4 + a5.t

5 (2.155)

On en déduit les relations donnant la vitesse et l’accélération :

q = a1 + 2.a2.t+ 3.a3.t2 + 4.a4.t

3 + 5.a5.t4

q = 2.a2 + 6.a3.t+ 12.a4.t2 + 20.a5.t

3 (2.156)

En utilisant les hypothèses (e), (c) et (a), on en déduit les coefficients :

a0 = qi

a1 = 0a2 = 0

(2.157)

En utilisant les hypothèses (f), (d) et (b), on obtient un système de trois équa-tions et trois inconnues. On en déduit les coefficients :

a3 = 10t3f

.D

a4 = −15t4f

.D

a5 = 6t5f

.D

(2.158)

On en déduit la fonction d’interpolation :

r(t) = 10.

(

t

tf

)3

− 15.

(

t

tf

)4

+ 6.

(

t

tf

)5

(2.159)

L’accélération s’annule lorsque t =tf2. Elle a un maximum et un minimum :

qmax = 10.|D|√3.t2

f

qmin = −10.|D|√3.t2

f

La vitesse est maximale en t =tf2

et nulle en t = 0 et en t = tf . La valeur

extrèmale est : qmax = 15.|D|8.tf

.

On obtient l’évolution suivante (fig 2.15).

Page 92: cour robotique

82Modélisation géométrique des robots - Commande en position des

robots

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3Evolution de la variable q(t)

t (secondes)

q(t)

qf

qi

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

15.|D|/8.tf

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−6

−4

−2

0

2

4

6

Evolution de la variable d/dt(dq/dt)

t (secondes)

d/dt

(dq/

dt)

(10.|D|)/(sqrt(3).tf.tf)

− (10.|D|)/(sqrt(3).tf.tf)

Figure 2.15 – Degré 5 : Evolution de la position, de la vitesse et de l’accélération.

Page 93: cour robotique

2.5 Commande en position d’un robot 83

2.5.2.2 Loi bang-bang

Dans ce cas le mouvement est représenté par une phase d’accélération constantejusqu’à

tf2, puis une phase de deccélération constante. On impose les 4 contraintes :

qi = q(0) = 0 (a)qf = q(tf ) = 0 (b)

q(0) = qi (c)q(tf ) = qf (d)

Le mouvement est donc continu en position et en vitesse. Il est discontinu enaccélération.

La position est donnée par l’ensemble des relations suivantes :

q(t) = qi + 2 · ( ttf

)2.D

q(t) = qi +[

−1 + 4 · ttf− 2 · ( t

tf)2]

.Dpour

0 ≤ t ≤ tf2

tf2≤ t ≤ tf

(2.160)

On en déduit les relations donnant la vitesse et l’accélération :

Pour 0 ≤ t ≤ tf2

q = 4 · ( ttf 2 ).D

q = ( 4tf 2 ).D

(2.161)

Pourtf2≤ t ≤ tf

q = 4tf− 4 · ( t

tf 2 ).D

q = −( 4tf 2 ).D

(2.162)

L’accélération a un maximum et un minimum : qmax = ( 4tf 2 ).D, qmin = −( 4

tf 2 ).D

La vitesse est maximale en t =tf2

et nulle en t = 0 et en t = tf . La valeur

extrèmale est : qmax = 2.|D|tf

.

On obtient l’évolution suivante (fig 2.16).

Page 94: cour robotique

84Modélisation géométrique des robots - Commande en position des

robots

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3Evolution de la variable q(t)

t (secondes)

q(t)

qf

qi

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

2.|D|/tf

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−6

−4

−2

0

2

4

6

Evolution de la variable d/dt(dq/dt)

t (secondes)

d/dt

(dq/

dt)

4.|D|/(tf.tf)

−4.|D|/(tf.tf)

Figure 2.16 – Loi bang-bang : Evolution de la position, de la vitesse et de l’accé-lération.

Page 95: cour robotique

2.5 Commande en position d’un robot 85

Remarque : temps minimum .

Si tf n’est pas spécifié, on recherche en général le temps minimum pour faire ledéplacement qi → qf en respectant les contraintes de vitesse et d’accélération.

Généralement on calcul le temps minimum sur chaque articulation séparemmentpuis on effectue la coordination des articulations sur un temps commun. La coordi-nation est nécessaire à deux titres :

– harmonie du mouvement global du robot– contrôle de la trajectoire et de la géométrie du robot.

Les deux étapes sont donc :– calcul du temps minimum tf : il dépend de la méthode d’interpolation retenue.

Il consiste en fait à saturer la vitesse et/ou l’accélération. Pour le calcul dechacun des tfj , on se sert des résultats suivants :

Interpolation linéaire tfj =|Dj |kvj

Interpolation de degré 3 tfj = MAX[

3·|Dj|2·kvj

,√

6·|Dj |kaj

]

Interpolation de degré 5 tfj = MAX[

15·|Dj |8·kvj

,√

10·|Dj |√3·kaj

]

Loi Bang-Bang tfj = MAX[

2·|Dj |kvj

, 2 ·√

|Dj |kaj

]

– Pour la coordination des axes, on impose pour chaque axe tf =MAX[tf1, tf2, · · · tfn].

Page 96: cour robotique

86Modélisation géométrique des robots - Commande en position des

robots

2.5.2.3 Loi trapèze : loi bang-bang avec palier de vitesse

Avec une loi bang-bang, le temps minimal est assuré, soit en saturant la vitesse,soit en saturant l’accélération.

Lorsque la vitesse est saturée, le fait d’ajouter un palier permet aussi de saturerl’accélération, et de diminuer le temps de parcours.

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

kv

Loi trapèze : saturation de l’accélération

Loi bang−bang : saturation de la vitesse

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−6

−4

−2

0

2

4

6

Evolution de la variable d/dt(dq/dt)

t (secondes)

d/dt

(dq/

dt)

ka

−ka

loi trapèze : saturation de l’accélération

loi bang−bang : saturation de la vitesse

Figure 2.17 – Loi trapèze et bang-bang : Evolution de de la vitesse et de l’accélé-ration.

Si la vitesse est saturée sur l’articulation j, d’après le tableau 2.5.2.2, on voitque :

– tf ≥ 2·|Dj |kvj

lorsque que l’on veut saturer la vitesse

Page 97: cour robotique

2.5 Commande en position d’un robot 87

– tf ≥ 2 ·√

|Dj |kaj

lorsque que l’on veut saturer l’accélération

par conséquent l’existence d’un palier de vitesse est donné par :

2 · |Dj|kvj

> 2 ·√

|Dj|kaj

(2.163)

En élevant au carré, on obtient la condition d’existance du palier :

|Dj| >k2

vj

kaj

(2.164)

La loi trapèze est optimale en temps : elle est parmi celles qui assurent unecontinuïté en vitesse.

La position est donnée par l’ensemble des relations suivantes :

qj(t) = qij + t2

2· kaj · sgn(Dj)

qj(t) = qij + (t− τj

2) · kvj · sgn(Dj)

qj(t) = qfj − 1

2· (tfj − t)2 · kaj · sgn(Dj)

pour

0 ≤ t ≤ τjτj ≤ t ≤ tfj − τj

tfj − τj ≤ t ≤ tfj

(2.165)

On en déduit les relations donnant la vitesse et l’accélération :

Pour 0 ≤ t ≤ τj

qj(t) = t · kaj · sgn(Dj)qj(t) = kaj · sgn(Dj)

(2.166)

Pour τj ≤ t ≤ tfj − τj

qj(t) = kvj · sgn(Dj)qj(t) = 0

(2.167)

Pour tfj − τj ≤ t ≤ tfj

qj(t) = (tfj − t) · kaj · sgn(Dj)qj(t) = −kaj · sgn(Dj)

(2.168)

avec

τj =kvj

kaj(2.169)

On obtient l’évolution suivante (fig 2.18).

Page 98: cour robotique

88Modélisation géométrique des robots - Commande en position des

robots

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3Evolution de la variable q(t)

t (secondes)

q(t)

qf

qi

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

kv

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−6

−4

−2

0

2

4

6

Evolution de la variable d/dt(dq/dt)

t (secondes)

d/dt

(dq/

dt)

ka

−ka

Figure 2.18 – Loi trapèze : Evolution de la position, de la vitesse et de l’accélération

.

Page 99: cour robotique

2.5 Commande en position d’un robot 89

L’aire du trapèze représentant l’évolution des vitesses, est égale à la distanceparcourue dans l’intervalle [0; tfj ]. On a donc :

|Dj| = |qfj − qi

j | = 2 ·∫ τj

0kaj · t · dt +

∫ tfj−τj

τjkvj · dt

|Dj| = kvj · tfj − kvj2

kaj

(2.170)

On en déduit le temps minimal pour l’axe j.

tfj =kvj

kaj+ |Dj|

kvj

tfj = τj + + |Dj|kvj

(2.171)

Pour synchroniser les différents mouvements des axes 1, 2, · · · , n deux méthodes ontété proposées.

Méthode du temps minimal [Tondu 84]Dans cette méthode le temps optimal tf = Maxj [tfj ] est conservé. Soit k

l’articulation contraignante imposant tf = tfk.

L’articulation j est synchronisée par rapport à sa loi propre en augmentant ladurée du palier de vitesse. Les phases d’accélération et de déccélération restantidentiques à celles de la loi propre.

La loi synchronisée s’obtient en réalisant une homothétie d’un rapport λj sur saloi propre. On obtient l’évolution suivante (fig 2.19).

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−1

−0.5

0

0.5

1

1.5

2Evolution de la variable dq/dt

t (secondes)

dq/d

t

kvj

lambdaj . kvj

Loi propre

Loi homothétique rapport lambdaj

kaj

lambdaj . kaj

tfj tfk

t

Figure 2.19 – Loi trapèze : Evolution de la vitesse.

tf = τj +|Dj |

λj ·kvjreprésente la durée de synchronisation. En fait, τj reste constant.

On peut reprendre le calcul de l’intégrale précédent en introduisant λj . Comme :

Page 100: cour robotique

90Modélisation géométrique des robots - Commande en position des

robots

tf = τj +|Dj|λj · kvj

=⇒ tf − τj =|Dj |λj · kvj

(2.172)

On en déduit :

λj =|Dj|

(tf − τj) · kvj=tfj − τjtf − τj

(2.173)

Méthode proportionnelleAvec cette méthode, les lois de vitesses des diverses articulations sont homothé-

tiques et comportent des phases d’accélération et de freinage de même durée τ .

On obtient l’évolution suivante (fig 2.20).

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−1

−0.5

0

0.5

1

1.5

2Evolution de la variable dq/dt

t (secondes)

dq/d

t

j=1

j=2

j=n

j=k

dq/dt = lambdaj . kvk

tau tf−tau tf

t

Figure 2.20 – Loi trapèze : Evolution de la vitesse.

On a alors :qj(t) = λj · qk(t) pour j = 1, 2, · · · , n (2.174)

Classiquement dans cette méthode les lois de vitesses sont déduites par homo-thétie de la loi de vitesse de l’articulation contraignante k.

On a :qk(t) = λk · qk(t) donc λk = 1 (2.175)

Dans certains cas, il n’est pas possible de respecter des contraintes d’accéléra-tions ou bien celles de vitesses pour une ou plusieurs articulations.

On est alors obligé d’introduire une marge de temps ∆t et de recalculer lesrapports d’homothétie compte tenu de la nouvelle durée du mouvement tf = tfk+∆t.

Page 101: cour robotique

2.5 Commande en position d’un robot 91

Cette méthode ne donne pas le temps minimum (car soit il faut ralonger τ(accélération), soit il faut ralonger la durée du palier de vitesse (vitesse)).

Il existe une alternative à cette méthode que nous allons présenter maintenant.Cette méthode suppose le calcul d’une constante de temps τ de la phase d’accé-lération à priori différent du τj optimal des lois propres de chacunes des articulations.

Soit λj · kvj la vitesse de la loi synchronisée pour l’articulation j.

Soit νj · kaj l’accélération de la loi synchronisée pour l’articulation j qui produitle mouvement.

Calculons τ qui assure un temps tf minimum. Considérons deux articulations.Les temps de parcours minimaux pour ces deux articulations sont :

tf1 = τ1 + |D1|kv1

tf2 = τ2 + |D2|kv2

On obtient l’évolution suivante (fig 2.21).

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−1

−0.5

0

0.5

1

1.5

2Evolution de la variable dq/dt

t (secondes)

dq/d

t

tau1

tau

tau2 tf tf2 tf1

lambda1 . kv1

lambda2 . kv2

kv1

kv2

Figure 2.21 – Loi trapèze : Evolution de la vitesse.

La loi synchronisée est telle que le temps tf :

tf = τ1 +|D1|kv1

= τ2 +|D2|kv2

(2.176)

avec

Page 102: cour robotique

92Modélisation géométrique des robots - Commande en position des

robots

τ1 = λ1·kv1

ν1·ka1

τ2 = λ2·kv2

ν2·ka2

et tf = MAX[tf1, tf2]

On doit calculer λj et νj pour rendre tf minimum. On veut un τ fixe. On a donc :

τ = τ1 = τ2 =λ1 · kv1

ν1 · ka1

=λ2 · kv2

ν2 · ka2

(2.177)

De plus, comme τ = τ1 = τ2 et tf = tf1 = tf2, on a :

|D1|λ1 · kv1

=|D2|λ2 · kv2

(2.178)

On en déduit deux relations :

λ2 = λ1 · kv1

kv2· |D2||D1|

ν2 = ν1 · ka1

ka2· |D2||D1|

(2.179)

Pour satisfaire les contraintes de vitesse, on a :

0 ≤ λ1 ≤ 1

0 ≤ λ2 ≤ 1⇒ 0 ≤ λ1 ≤

kv2

kv1

· |D1||D2|

(2.180)

Pour satisfaire les contraintes d’accélération, on a :

0 ≤ ν1 ≤ 1

0 ≤ ν2 ≤ 1⇒ 0 ≤ ν1 ≤

ka2

ka1· |D1||D2|

(2.181)

Le temps tf minimum est obtenu lorsque λ1 et ν1 sont les plus grands et satisfontles contraintes suivantes :

λ1opt = MIN[

1, kv2

kv1· |D1||D2|

]

ν1opt = MIN[

1, ka2

ka1· |D1||D2|

]

(2.182)

Dans ce cas la durée optimale de la phase d’accélération est :

τopt =λ1opt

ν1opt· kv1

ka1(2.183)

Page 103: cour robotique

2.5 Commande en position d’un robot 93

Ces relations sont généralisables à n articulations, en écrivant que :

λ1opt = MIN[

1,kvj

kv1· |D1||Dj |

]

ν1opt = MIN[

1,kaj

ka1· |D1||Dj |

]

τopt =λ1opt

ν1opt· kv1

ka1=

λjopt

νjopt· kvj

kaj

pour

j = 2, 3, · · · , n

j = 2, 3, · · · , n

j = 1, 2, · · · , n

(2.184)

Remarque : Si pour une articulation j donnée, la loi optimale n’atteint pas lavitesse maximale kvj , on remplace dans les formules précédentes le terme kvj parla vitesse maximale effectivement atteinte k

vj . Cette situation se présente lorsque :

|Dj| <k2

vj

kaj.

On obtient l’évolution suivante (fig 2.22).

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

2.5

3Evolution de la variable dq/dt

t (secondes)

dq/d

t

kvj

kvj’

tfj

t

Figure 2.22 – Loi trapèze : cas où la vitesse n’est pas saturée.

On en déduit : k′

vj =√

|Dj| · kaj

En effet, en laissant tomber le terme sgn(Dj), on a :

qj(tf2) = qi

j +(

tf

2)2

2· kaj

qj(tf2) =

tf2· kaj = k

vj

|Dj |2

=(

tf

2)2

2· kaj

k′

vj =√

|Dj| · kaj

⇒ (tf2) =

|Dj |kaj

Page 104: cour robotique

94Modélisation géométrique des robots - Commande en position des

robots

2.5.3 Génération de mouvement rectiligne dans l’espace opé-rationnel

Nous nous restreindrons à ce type de mouvement car la génération de mouve-ment dans l’espace opérationnel devient vite complexe.

On cherche à appliquer un mouvement rectiligne au point outil (OE origine durepère RE lié à l’outil).

Soit OTEi la matrice de transformation homogène décrivant la situtation initiale

de l’outil dans le repère R0.

Soit OTEf la matrice de transformation homogène décrivant la situtation finale

de l’outil dans le repère R0.

On définit : OTEi =

[

Ai P i

0 1

]

OTEf =

[

Af P f

0 1

]

On décompose le mouvement en un mouvement de :– rotation autour d’un axe u de l’organe terminal pour aligner Ai avec Af ,– translation en ligne droite entre les origines OE

i et OEf .

Les deux mouvements se terminent en même temps.

On a donc :

OTEf =O TE

i · T (u, θ) =

[

Ai P i

0 1

]

·[

A(u, θ) P0 1

]

(2.185)

Soit :– kv1 et ka1 les vitesses et accélérations maximales pour la rotation– kv2 et ka2 les vitesses et accélérations maximales pour la translationLe calcul de u et θ est obtenu à partir de la relation suivante :

Ai.A(u, θ) = Af (2.186)

A(u, θ) représente une rotation d’un angle θ autour d’un axe u.

A(u, θ) = [Ai]T · Af =

si

ni

ai

·[

sf nf af]

(2.187)

A(u, θ) =

si · sf si · nf si · af

ni · sf ni · nf ni · af

ai · sf ai · nf ai · af

(2.188)

Page 105: cour robotique

2.5 Commande en position d’un robot 95

or on a vu que :

A(u, θ) =

u2x.(1− cθ) + cθ uxuy.(1− cθ)− uz.sθ uxuz.(1− cθ) + uy.sθ

uxuy.(1− cθ) + uz.sθ u2y.(1− cθ) + cθ uyuz.(1− cθ)− ux.sθ

uxuz.(1− cθ)− uy.sθ uyuz.(1− cθ) + ux.sθ u2z.(1− cθ) + cθ

(2.189)

ou bien

A(u, θ) = u.uT .(1− cθ) + I3.cθ + u.sθ (2.190)

De ces différentes expressions on en déduit :

cθ = 12·[

si · sf + ni · nf + ai · af − 1]

sθ = 12·√

(ai · nf − ni · af)2 + (si · af − ai · sf )2 + (ni · sf − si · nf)2

θ = ATAN2(sθ, cθ)

u = 12·sθ ·

ai · nf − ni · af

si · af − ai · sf

ni · sf − si · sf

(2.191)

L’ensemble des méthodes d’interpolation mises en œuvre dans l’espace articu-laire peuvent être mises en œuvre dans l’espace opérationnel.

Compte tenu du déplacement total θ et des contraintes kv1 et ka1, on calcule letemps minimal tf1.

On procède de manière identique pour déterminer pour déterminer tf2 imposépar le mouvement de translation sachant que la distance parcourue est :

D = ‖P f − P i‖ =√

(P fx − P i

x)2 + (P f

y − P iy)

2 + (P fz − P i

z)2 (2.192)

La synchronisation des deux types de mouvement permet de trouver un communtf .

Le mouvement résultant est tel que :

OTE(t) =

[

A(t) P (t)0 1

]

avec

P (t) = P i + r(t)(P f − P i)A(t) = Ai · A(u, r(t) · θ) (2.193)

où r(t) représente la fonction d’interpolation retenue.

On pourrait également écrire :

P (t) = P f − (1− r(t))[P f − P i]A(t) = Af ·A(u,−(1− r(t)) · θ) (2.194)

Page 106: cour robotique

96Modélisation géométrique des robots - Commande en position des

robots

Remarque : Si l’on choisit de calculer la rotation autour d’un axe fixe par rap-port à R0, alors il faut réécrire la relation exprimant le mouvement de rotation encomposant à gauche :

A(u, θ).Ai = Af (2.195)

Page 107: cour robotique

Bibliographie

[DH55] Denavit J and Hartenberg R.S. A Kinematic notation for lower pair mechanism

based on matrices. Trans. of ACME, J. of Applied Mechanics, 22 :215–221, June

1955.

[Fou80] A. Fournier. Génération de mouvements en robotique : application des inverses

généralisées et des pseudo-inverses. PhD thesis, USTL, Mntpellier, April 1980.

[GBF85] A.A Goldenberg, B. Benhabib, and R.G. Fenton. A complete generalized so-

lution to inverse kinematics of robots. IEEE J. of Robotics and Automation,

RA-1(1) :14–20, 1985.

[KC] Khalil W. and Creusot D. Symoro+ : a system for the symbolic modeling of

robots. Robotica, 15 :153–161.

[LZ83] C.S.G. Lee and M. Ziegler. A geometric approach in solving the inverse kinema-

tics of PUMA robots. In Proc. 13th Int. Symp on Industrial Robots, volume 16,

pages 1–18, 1983.

[Pau81] R.C.P Paul. Robot manipulators : mathematics, programming an d control. 1981.

[Pie68] D.L Pieper. The Kinematics of manipulators under computer control. PhD thesis,

Stanford University, 1968.

[Ren80] M. Renaud. Contribution a la modélisation et à la commande dynamiques des

robots manipulateurs. PhD thesis, UPS, Toulouse, September 1980.

[SS94] L. Sicavicco and B. Sciavicco. Modeling and control of robot manipulators. Mc-

Graw Hill, 1994.

[WE84] W.A. Wolovich and H. Elliot. A computational technique for inverse kinema-

tics. In 23 IEEE Conf. on Decision and Control, pages 1359–1353, Las Vegas,

December 1984.