Vous êtes sur la page 1sur 28

Chapitre 2

Chapitre 2

Robotique (Modlisation Gomtrique)

Modlisation Gomtrique

2.1 Introduction
Un manipulateur en boucle ouverte consiste en un certain nombre de liens dont la position
relative est dfinie par les variables darticulations. Ces dernires peuvent tre des rotations
ou des translations. Puisque chacun des liens constitue un corps rigide, il est logique de lui
associer un rfrentiel cartsien. La configuration du robot est ainsi dfinie par la position
relative des rfrentiels associs chacun des liens.
Premirement, la position dun objet sera dfinie par lorigine du systme de coordonnes.
Cette position sera donc donne par trois valeurs, ou encore par un vecteur de trois
dimensions:
p = [px, py, pz]T
(2.1)
Il est cependant moins vident de trouver comment on reprsente lorientation. On remarque
que le systme de coordonnes est reprsent par trois vecteurs unitaires orthogonaux. On
peut donc penser que si on donne ces trois vecteurs par rapport un systme de rfrence on
connatra lorientation. On reprsente alors lorientation par une matrice 3x3 forme par ces 3
vecteurs.
Z
xx yx z x
Y
x y z = x y y y z y
(2.2)
Z0

x z y z z z
P
X
Y0
X0
Fig 2.1

Exemple 2.1
On devrait facilement voir sur la figure que la position du systme de coordonnes b par
rapport au systme 0 est:
xx yx z x
2

3
P= et que son orientation est donne par : x y y y z y

0
x z y z z z

Chapitre 2

Robotique (Modlisation Gomtrique)

En pratique, il y aura plusieurs systmes de coordonnes. Il faudra alors prciser par rapport
quel systme on donne la position et lorientation. Supposons qu on appelle le systme de
rfrence le systme 0, la position dun systme de coordonnes par rapport au systme 0 sera
crit:

et lorientation: 1
0

0
0
1

1
0
0

On peut donc penser que pour donner une orientation on doit donner 9 valeurs (matrice 3x3).
En ralit ce nest pas vrai car ces 9 valeurs ne sont pas indpendantes. En effet les 3 vecteurs
doivent tre orthogonaux, c--d. leur produit scalaire est nul.
xy=zx=yz=0
Ce qui donne 3 relations entre ces 9 valeurs. De plus ces vecteurs sont unitaires. On a donc 3
autres relations :
xx=yy=zz=1
On a donc en ralit que 3 inconnues. On peut donc conclure que la position dun objet est
donne par un vecteur (3x1) et lorientation par une matrice 3x3.

Compte tenu de ce que, par dfinition,

on a

Cette importante relation est du reste une consquence immdiate de lorthogonalit de R.


On verra plus tard qu on regroupe en gnral la position et lorientation en une seule matrice
4x4.

2.2 Transformations linaires


si un robot veut aller prendre un objet, le contrleur du robot doit savoir les transformations
ncessaires pour que le systme de coordonnes de loutil concide avec celui de lobjet. Il y a
plusieurs transformations classiques, La plus simple est probablement la translation. En se
referant la (Fig. 2.2), on voit que

Fig.2.2
p2 =0p1 + op

(2.3)

Chapitre 2

Robotique (Modlisation Gomtrique)

Pour trouver le nouvel origine, on na donc qua faire une addition vectorielle. On remarque
galement que Lorientation na pas chang. La matrice orientation restera donc identique
aprs une translation.
Une autre transformation classique est la rotation autour dun axe. Si on regarde une rotation
autour de laxe z (Fig. 2.3), pour trouver la position dun objet aprs rotation il suffit de
trouver les relations entre les nouveaux axes (x2, y2, z2), par rapport aux anciens (x1, y1, z1). On
trouve facilement que ces relations sont donnes par:
0
px2 = 0px1 cos 0py1 sin
0
py2 = 0px1 sin + 0py1 cos
(2.4)
0
pz2 = 0pz1
Il sera trs intressant, pour rendre les oprations plus systmatiques, de reprsenter ces
oprations sous forme de matrices. Ainsi la dernire relation peut scrire

Fig.2.3
Ou on a remplac cos par c pour simplifier lcriture. Cette notation sera suivie dans tout le
reste des notes de cours. Pour trouver la nouvelle orientation, il suffit dappliquer la mme
transformation chaque vecteur unitaire. On aura ainsi:

O2 = Rotz()O1
O1, O2 : reprsentent les matrice dorientations.
Rotz() : reprsente la transformation.

2.2.1 Coordonnes Homognes


Une transformation approprie rigide gnrale dun corps est donne par une paire (O(),P),
o, O() est une matrice de rotation et P un vecteur de Position, ces paires ont l'effet suivant
sur les vecteurs de position v:
(O(),P): v
O()v+P
o deux transformations successives donneront :
3

Chapitre 2

Robotique (Modlisation Gomtrique)

(O(2),P2) : O(1)v+P1
O(2) O(1)v+ O(2)P1+P2
C'est quivalent une transformation rigide simple donne par la paire :
(O(2) O(1), O(2)P1+P2)
Ainsi nous obtenons une sorte de rgle "simple" de multiplication pour ces paires :
(O(2),P2)(O(1),P1)=(O(2) O(1), O(2)P1+P2)
Noter ici que la translation pure sont reprsentes par des paires de la forme (I, P), o I est la
matrice d'identit. Les rotations pures, ces des rotations au tour de l'origine, donn par des
paires (O(),0).
L'ordre que ces transformation est trs important. Par ce que la multiplication n'est pas
commutative. Pour l'exemple, le rsultat de la rotation puis de la translation est diffrent de la
translation d'abord et ensuite la rotation. Dans le premier cas nous avons :
(I, P)( O(),0) = (O(), P)
O le contraire donne :
( O(),0)(I, P) = (O(), O()P)
Alors les coordonnes homognes. Sont former par une matrice 4x4 qui contienne la matrice
orientation et le vecteur position. On a ainsi

xx yx zx Px
x y z P
y y y y
xz yz zz Pz

(2.5)

0 0 0 1
Exemple 2.2 :
une translation dans la direction x dune grandeur a va donner:
px2 = px1 + a
py2 = px1
pz2 = pz1
Ceci revient au mme que dcrire

p2 = Transx(a)p1
une rotation en z :

une rotation en y :

Pos

Ori

(2.6)

Chapitre 2

Robotique (Modlisation Gomtrique)

une rotation en x :

Remarque: Ici il faut faire trs attention au sens des rotations et de suivre toujours la mme
convention pour le sens positif. La convention la plus utilise est ce quon appelle la
convention de la main droite. Pour savoir si un angle de rotation en z est positif, il suffit de
penser quon tourne une vis. Si la rotation produit une dplacement de la vis vers laxe z
positif, langle est positif, sinon ngatif. On trouve ainsi que le sens positif pour les trois axes
est illustre sur la figure suivante:

fig.2.4

2.2.2 Sries de Transformations


pour trouver la matrice de transformation dune suite de plusieurs transformations, il suffira
de multiplier les matrices de transformations lmentaires.
Il faudra juste faire attention du sens dans lequel on fait la multiplication car en gnral la
multiplication de matrices nest pas commutatif. Regardons un exemple simple dune rotation
autour de laxe z de 45 suivie translation dans le sens x de 1 unit. Plaons-nous dans un plan
pour simplifier. Faisons concider un systme daxes de rfrence fixe et un autre mobile qui
subira les transformations. On a premirement la matrice de rotation autour de z

Chapitre 2

Robotique (Modlisation Gomtrique)

a)

b)
fig.2.5

et une translation dans le sens x.


Ici on peut se demander si cest dans lancien x ou le
nouveau. En fait, on peut tout fait faire les deux si on
veut mais on voit sur la figure que cest dans la direction
de lancien x. Dans ce cas, on voit quil faut multiplier la
nouvelle matrice gauche de lancienne.

Ici on doit faire tout de suite une observation importante. La matrice rsultante peut tre
interprte dau moins 2 faons diffrentes. Premirement, elle reprsente la srie
doprations ncessaires pour faire passer un systme de coordonnes un autre, mais elle
reprsente galement lorientation et la position du nouveau systme daxes par rapport au
premier. En effet les trois premires colonnes reprsentent lorientation et la dernire la
position de lorigine.
Si on avait multiplier par la droite on aurait eu

Chapitre 2

Robotique (Modlisation Gomtrique)

qui naurait pas donn le bon rsultat pour la position. Si on regarde la figure de droite
maintenant, on voit quon aurait pu arriver au mme rsultat en commenant par une
translation en x suivi dune rotation de 45 en z mais autour du nouveau z et non lancien.
Comme le rsultat est le mme, il faut que la matrice soit la mme et donc que la
multiplication soit :

La deuxime matrice (Rotation) a donc maintenant t multiplie droite de lancienne car on


a effectu la rotation autour du nouvel axe z. En rsum on a:
- Lorsquon effectue une nouvelle transformation par rapport au systme de rfrence fixe, on
multiplie la nouvelle matrice gauche.
- Lorsquon effectue une nouvelle transformation par rapport au nouveau systme daxes, on
multiplie la nouvelle matrice droite.
Une autre conclusion trs importante est quon peut interprter le rsultat de deux faons
possibles:
1. Soit la srie de transformations ncessaires pour faire passer un systme de coordonnes
un autre
2. ou encore la position et lorientation du nouveau systme daxes par rapport lancien.
On introduira la notation suivante
(2.8)
pour indiquer la matrice de transformation pour faire passer le systme daxe B au systme
daxe A. ou encore la position et lorientation de A, par rapport B. Dans la premire
interprtation, la sous-matrice 3x3 de gauche reprsentait la partie rotation et la 4me colonne,
une translation (2.7). Dans la deuxime interprtation, on aurait plutt

Pos

Ori

(2.9)

Exemple 2.3
Regardons la transformation obtenue aprs les 4 transformations lmentaires suivantes:

On peut donc penser faire ces transformations de 2 faons diffrentes. Premirement


en allant de droite gauche en considrant les transformations par rapport au systme
daxes de rfrence

Chapitre 2

Robotique (Modlisation Gomtrique)

fig.2.6

On peut galement arriver au mme rsultat en faisant les oprations par rapport aux
nouveaux systmes daxes et en multipliant de gauche droite

Chapitre 2

Robotique (Modlisation Gomtrique)

fig.2.7

On remarque lutilit de la notation utilise. En effet, si on regarde la deuxime approche, les


matrices individuelles sont donnes par :

On remarque quaprs une premire multiplication, on obtient effectivement la matrice


reprsentant le systme 2 par rapport au systme de rfrence. Aprs la deuxime, le systme
3 par rapport au systme de rfrence, etc... Par contre dans la premire approche, bien que le
rsultat final soit identique, les rsultats intermdiaires sont moins faciles interprter. En
pratique, on utilisera trs peu cette approche et on utilisera surtout la deuxime faon de faire
des transformations composes .
Dans ce dernier exemple, on a galement introduit la position dun point q pour illustrer une
autre application des matrices de transformation. En effet, on remarque sur la figure que la
position du point q par rapport au repre initial est donne par

Ce mme point exprim par rapport au repre 4 est

Chapitre 2

Robotique (Modlisation Gomtrique)

En multipliant ce dernier vecteur par la matrice 0T4, on trouve


qui est bien la position
du point q, par rapport
au premier systme de
rfrence.
Symboliquement, on trouve
O on remarque encore une fois lintrt de la notation pour nous aider faire les calculs dans
le bon sens. On pourrait se demander comment, partir de 0pq , trouver 4pq mais pour cela on a
besoin de 4T0 qui est linverse de ce quon a trouv et on doit attendre lautre section. Par
contre, on pourrait regarder ce que a donne si on multiplie notre matrice 0pq. Ceci donne

Ceci reprsente la nouvelle position du point q, q sur le dessin, si on lattache au systme de


coordonnes mobile. Symboliquement la notation est moins descriptive que dans lautre cas.
On a
Il serait peut-tre prfrable dutiliser une autre notation pour la matrice dans ce dernier cas,
quelque chose comme
mais comme on nutilise pas trs souvent cette interprtation, nous garderons toujours la
mme notation pour nos matrices de transformations en faisant attention linterprtation
quon en fait.

2.2.3 Orientation des systmes de coordonnes


On a dit que lorientation dun repre tait donn par une matrice 3x3 reprsentant les 3
vecteurs unitaires. On a cependant indiqu que dans ces 9 valeurs, plusieurs taient
redondantes et quen fait, il tait possible de donner lorientation en donnant simplement 3
valeurs. Supposons, par exemple, quon dsire avoir un robot qui suive une certaine
trajectoire dans lespace en lui donnant une centaine de points intermdiaires passer. Si
chacun des points est donn par 3 positions et une matrice 3x3 (9 chiffres), a risque de
prendre assez de mmoire. Il est prfrable de ne prendre que 3 chiffres pour lorientation. En
fait il y a une infinit de choix possibles pour dfinir une orientation dun repre par rapport `a
un autre. Lide est de trouver 3 transformations qui vont faire passer le premier dans le
deuxime. Un choix possible est de trouver trois rotations autour des axes du systme de
rfrence.
. une rotation autour de x de (angle de lacet)
. une rotation autour de y de (angle de tangage)
. une rotation autour de z de (angle de roulis)
10

Chapitre 2

Robotique (Modlisation Gomtrique)

Comme cest autour des axes de rfrences, on doit multiplier par la gauche.

ou encore, si on regarde seulement la sous-matrice rotation:


(2.10)

Exemple 2.4
Prenons par exemple un objet auquel on attache un repre (voir figure) (xb, yb, zb) et dont on
cherche dfinir lorientation. On peut facilement trouver la matrice de rotation simplement
par inspection. Ainsi on trouve:

Si on veut reprsenter lorientation maintenant par les trois angles (, , ), on peut le faire
de deux faons. Soit en essayant de trouver les trois rotations visuellement ou en comparant
cette dernire matrice (2.10). Comme ici, cest relativement simple, on trouve que pour
passer de R b, on doit avoir = 0, = 90, = 0. Dans un cas gnral, il nest pas possible
de le faire loeil. Il faut utiliser (2.10). Bien que a ait lair gros, ce nest pas si compliqu. Il
suffit de commencer par le plus simple ( la troisime ligne). Ainsi, dans notre exemple, on a
z

R
xb
zb
x

yb

fig. 2.8 :
Connaissant maintenant un des angles, on simplifie la matrice initiale par les valeurs de
s et c. On obtient:

11

Chapitre 2

Robotique (Modlisation Gomtrique)

Llment de la 1re range et 2me colonne nous dit que s( + ) = 0 alors que llment de la
2me range 2me colonne donne c( + ) = 1 On a alors
En ralit, il y a une infinit de possibilits du moment que + = 0. On prend alors
le plus simple ( = = 0)
Il existe plusieurs autres dfinitions dangles de rotation possibles (24 en tout). Certaines sont
autour daxes fixes comme la convention quon a choisi et certaines sont autour daxes
variables, Angles dEuler.

2.3 Transformation inverse


Comme on vient de le dire, le passage entre diffrents systmes de coordonnes se fera par
multiplication de matrices. Dans certains cas on devra inverser des matrices. Ainsi, si on
connat 0T1 la position (et lorientation) du repre 1 par rapport 0 et 0T2, celle du repre 2 par
rapport 0, pour trouver la position de 2 par rapport 1, on aura:

Il faudra donc inverser une matrice 4x4. De faon gnrale, ce nest pas trs facile faire. En
effet linverse dune matrice est donn par (2.10)
(2 11)
o la matrice adjointe, est la transpose de la matrice forme par les cofacteurs. Sauf que dans
notre cas, notre matrice est trs spciale. Premirement, dans la dernire range, il y toujours
3 zros. Deuximement, les 3 premiers vecteurs sont toujours orthogonaux entre eux. On peut
montrer assez facilement que linverse dune matrice reprsentant un systme de coordonnes
sera donne par:

(2.12)

Exemple 2.5
Soit la matrice
de transformation suivante
trouvons la matrice inverse

Exemple 2.6
En se rfrant lexemple
de la section prcdente, trouvons la position du point q
par rapport au systme de coordonnes 4, connaissant sa position par rapport au systme de
rfrence.
12

Chapitre 2

Robotique (Modlisation Gomtrique)

Notre notation nous permet facilement de chercher ce quon a besoin. En effet, il suffit de
trouver

Or
qui vient dtre trouv `a lexemple prcdent. On a alors

ce quon savait dj par inspection.

3 Modlisation Gomtrique
3.1 Modlisation Gomtrique direct
Cette partie est consacr la description gomtrique directe des manipulateurs en boucle
ouverte, cest dire la liaison entre la position et lorientation de lorgane terminal du robot et
les variables darticulations. Nous nous limiterons au cas o chaque articulation a un seul
degr de libert, de translation ou de rotation (ceci ne constitue pas une limitation physique
puisque une articulation possdant plus dun degr de libert peut tre modlise en
introduisant des liens fictifs de longueur nulle).
Pour effectuer la description gomtrique du manipulateur, nous associerons un rfrentiel
chaque bras du robot, et nous dcrirons leur position relative laide des paramtres de
Denavit-Hartenberg. La description gomtrique du manipulateur complet est alors obtenue
trs simplement, par rcurrence.

3.2 Paramtres de Denavit-Hartenberg


Du point de vue gomtrique, un lien est un corps rigide qui est entirement caractris par la
position relative de ses axes (figure 2.9). Celle-ci est compltement dfinie par les deux
paramtres l et qui mesurent sa longueur et son vrillage ( pour le lien i1 sur la figure). l
reprsente la longueur de la perpendiculaire commune et est langle de rotation autour de la
perpendiculaire commune permettant de rendre les axes parallles.
La position relative de deux liens successifs est dfinie laide des deux paramtres et d.
est langle de rotation dont il faut tourner autour de laxe {i} pour amener la perpendiculaire
commune du lien i1 parallle celle du lien i. d est la distance dont il faut ensuite la
translater le long de laxe i pour lamener en concidence. Un des paramtres ou d constitue
la variable darticulation, pour une articulation de rotation et d pour une articulation de
translation. Les quatre paramtres , l , et d constituent les paramtres de DenavitHartenberg; ils constituent une caractrisation gomtrique minimale dun lien et de sa
relation avec le lien suivant. Il existe de lgres variantes dans la dfinition des paramtres.
Afin dexprimer formellement la relation gomtrique entre liens successifs, il convient de
leur associer des rfrentiels. On exprimera alors la matrice de transformation homogne en
fonction des paramtres de Denavit-Hartenberg. La convention qui gouverne le choix des
rfrentiels est exprime la figure 2.9. Pour chaque lien, laxe z est orient suivant laxe de
la premire articulation et laxe x est orient suivant la perpendiculaire commune,
li

13

Chapitre 2

Robotique (Modlisation Gomtrique)

Fig 2.9 choix des rfrentiels


Compte tenu de ce qui prcde, la signification des paramtres de Denavit-Hartenberg peut
tre rsume comme suit:
li : distance entre zi1 et zi mesure le long de xi
i: angle entre zi1 et zi mesur autour de xi
di: distance entre xi1 et xi mesure le long de zi-1
i: angle entre xi1 et xi mesur autour de zi-1
La matrice de transformation entre un joint n 1 et n ainsi obtenue devient alors :
1. une rotation en z dun angle suivi.
2. dune translation le long du nouveau z dune distance d suivi.
3. dune translation le long du nouveau x dune distance l suivi.
4. dune rotation le long du nouveau x dun angle .

c
s

s c
c c
s
0

s s
c s
c
0

lc
ls
d

(2.12)

En plus de prendre cette convention pour les transformations lmentaires, il sera important
de choisir la mme convention pour le choix des axes. Ainsi, pour un joint rotatif, on va
toujours prendre laxe z dans laxe de rotation. De mme dans le cas dun joint prismatique,
on choisira laxe z dans le sens de la translation. Ainsi, dans le cas dun joint rotatif, la
rotation autour de z va changer. La rotation sera donc une variable (appele variable de joint
et les autres paramtres seront des constantes. Pour un joint prismatique, ce sera d, la
translation selon z, qui sera la variable de joint. Une fois laxe z choisi, on choisira laxe x.
Une fois laxe x choisi, laxe y est directement donn par la rgle de la main droite.

14

Chapitre 2

Robotique (Modlisation Gomtrique)

Gomtrique directe dun robot - Mthode gnrale


1re tape
- On identifie le nombre de segments du robot (1 n)
- On identifie le nombre de joints (1 n)
- On identifie le nombre de systmes de coordonnes (n + 1) (0 n)
2me tape
- On place le robot ( tous ses joints) dans leur position zro
- Ceci peut tre arbitraire, mais il est conseill de prendre la position suggre par
le fabricant si il y en a une
3me tape - Assignation des systmes de coordonnes
1) On fait concider le systme de rfrence (0 ou R) avec le joint 1
2) On place les autres systmes daxes lextrmit des segments
systme 1 concide avec le joint 2
systme 2 concide avec le joint 3 etc...
3) On identifie laxe z de tous les systmes de coordonnes
joint rotatif - axe de rotation
joint prismatique - axe de translation
4) On identifie laxe x
- laxe xn concide avec le segment de droite perpendiculaire la fois laxe zn1 et laxe zn
- Si zn1 est parallle zn ( ce qui est frquent) on choisit xn de manire le plus simple possible
- Si zn1 intersect laxe zn on choisit xn perpendiculaire au plan zn1 et zn passant par le point
dintersection .
- laxe yn est trouv par la rgle de la main droite
5) Dans cette convention laxe zn et laxe x0 sont arbitraires. On les choisit le plus simple
possible
4me tape
- On trouve les 4 variables associes chaque segment
n : angle de rotation par rapport zn1
dn : distance de translation le long de laxe zn1
ln : distance de translation le long de laxe xn
n : angle de vrillage , rotation par rapport xn
- On identifie les variables de joints (n joint rotatif, dn joint prismatique)
5me tape
- Formation des matrices de transformation

3.3 Paramtres de Denavit-Hartenberg modifi


Les paramtres de Denavit-Hartenberg modifi permettent de disposer d'un paramtrage des
liaisons tel que les matrices de passage aient toutes la mme forme littrale, ce qui facilite les
calculs.

Notations :
On numrote les solides par ordre croissant en partant du socle. Ainsi le robot est compos de
n+1 corps, nots C0......... Cn , et de n articulations . Le corps C0 dsigne le socle (la base) du
robot,
Le repre Ri est li au corps Ci du robot.
La variable de l'articulation i, qui lie le corps Ci au corps Ci+1, est note qi.
(La convention de Denavit-Hartenberg (non modifi) est telle que laxe zi du repre Ri est
confondu avec laxe n i+1 ,(et non i) du robot.)
15

Chapitre 2

Robotique (Modlisation Gomtrique)

Fig.2.10: systme daxes de Denavit-Hartenberg modifi


Le passage du repre Ri-1 au repre Ri s'exprime en fonction des 4 paramtres suivants :
- On note i l'angle de rotation entre les axes zi-1 et zi autour de l'axe xi-1 ,
- On note li la distance entre zi-1 et zi mesure le long de l'axe xi-1,
- On note i l'angle de rotation entre les axes xi-1 et xi autour de l'axe zi ,
- On note di la distance entre xi-1 et xi mesure le long de l'axe zi .
Il en rsulte la matrice de transformation homogne i-1 Ti suivante

Ti 1,i Rot x ( i ) Trans x (li ) Rot z ( i ) Trans z (d i )


i 1

=
0
0
1

0 cos( i ) sin( i )
0 sin( ) cos( )
i
i

0
0
0

i 1

0 1 0

0 0 1

0 0 0

1 0 0

0 l i cos( i )

0 0 sin( i )

1 0
0

0 1
0

sin( i )
cos( i )
0
0

0
0
1
0

0 1 0

0 0 1

0 0 0

1 0 0

0 0

0 0
1 di

0 1

cos( i )
sin( i )
0
li

cos( i ) sin( i ) cos( i ) cos( i ) sin( i ) d i sin( i )


=
sin( i ) sin( i ) sin( i ) cos( i ) cos( i )
d i cos( i )

0
0
0
1

Exemple 3.1
Prenons le manipulateur simple illustr la figure suivante: On a 2 joints rotatifs, on aura
donc 3 systmes daxes, 2 mobiles et 1 fixe. On prend z0 le long de la premire rotation, z1
dans laxe de la 2me rotation. z2 est arbitraire. En gnral, on le prendra le plus simple
possible. Par exemple ici, on le met dans le mme sens que

16

Chapitre 2

Robotique (Modlisation Gomtrique)

Fig.2.11
z1.Remarquons que bien que laxe z soit laxe de rotation, le sens positif est arbitraire.
On peut le prendre d un sens ou lautre
On choisit ensuite les axes x. x0 est arbitraire mais pas x1. Comme z0 et z1 sont parallles, il y a
une infinit de perpendiculaires communes aux 2 axes. On choisit la plus simple, cest--dire
au centre du joint. On fait la mme chose pour x2. Pour x0, on prend galement le plus simple
possible, en gardant la mme direction que x1 ( la position zro).
Une fois les systmes daxes en place, il suffit de trouver les paramtres de DenavitHartenberg et de remplacer dans (3.1). On trouve ainsi

On forme ensuite les 2 matrices

o pour simplifier davantage lcriture on a enlev le . On trouve de la mme faon

Et

o on a pris comme convention dcriture


Une fois la matrice trouve, il est toujours bon de vrifier le rsultat en essayant quelques
valeurs dangles. Ainsi, si on essaie avec 1 = 0 et 2 = 90 on aura comme matrice
17

Chapitre 2

Robotique (Modlisation Gomtrique)

ce qui a du sens. Il serait bon de faire au moins 2 vrifications.


Exemple 3.2
Refaisons les mmes tapes avec un manipulateur deux degrs de libert indiqu sur la
figure. Les systmes daxes lorsque le robot est linitialisation sont donns sur la figure. Les
paramtres sont:

Fig.2.12

et les matrices de transformations sont trouves de la mme faon

En essayant avec par exemple, 1 = 0, 2 = 90, on a

18

Chapitre 2

Robotique (Modlisation Gomtrique)

qui est bien ce quoi on sattendait


Exemple 3.3
Terminons avec un exemple ayant un joint prismatique 3 degrs de libert Les systmes

Fig.2.13
daxes sont reprsents sur la figure. Ici, il y a videmment un peu darbitraire au niveau de la
position de loutil `a la position zro. On peut trs bien choisir qu linitialisation, les 3
systmes daxes 1,2 et 3 concident o mettre le dernier une certaine distance des 2 autres.
a na pas tellement dimportance. Avec le choix qui a t fait, on obtient:

Les matrices de transformations sont:

On peut encore une fois vrifier en essayant par exemple 1 = 90, d2 = 0, 3 = 90

19

Chapitre 2

Robotique (Modlisation Gomtrique)

Remarque :
Les exemples prcdents sont des problmes de gomtrique directe. Ces relations nous
donnent le lien qui existe entre les variables joints(c--d ou d) et variables cartsiennes (c-d positions et orientations). On dit quon passe de lespace articulaire(joint) lespace
oprationnel (cartsien).
A

O
espace articulaire
espace oprationnel
Ainsi dans le dernier exemple, si prend par exemple 1 = 90,d2 = 4, 2 = 90, on en dduit
directement que la position de loutil est (4, 0, d1) de lorigine et que son orientation est (0,
90, 180). On verra cependant que cest souvent le contraire quon veut. On devra alors
trouver la gomtrique inverse.

3.4 Gomtrique inverse


Imaginons quon fasse le contrleur dun robot ayant trois moteurs. On devra faire une
interface usager permettant lutilisateur du robot de lui faire faire des tches utiles. Si on
offre la possibilit lutilisateur de donner une certaine trajectoire, par exemple venant dun
dessin dAutocad, comment devrons-nous procder pour gnrer la trajectoire. Premirement,
avec trois degrs de libert, il sera impossible de fixer la position et lorientation de loutil,
alors occupons-nous simplement de la position pour linstant. La premire chose faire sera
de gnrer un certain nombre de points par lesquels loutil de notre robot devra passer. On
devra exprimer ces points en fonction dun repre de rfrence connu. Connaissant tous ces
points, on devra envoyer les commandes nos moteurs de manire ce que le robot (son outil
en fait) passe par ces oints. Pour cela, comme chaque actionneur (pour nous ce sera surtout
des moteurs) est associ `a un joint, on devra connatre les valeurs de toutes les variables de
joints. Ceci est appel la gomtrique inverse On passe de lespace oprationnel lespace
articulaire.
Exemple 3.4
Reprenons lexemple (3.1) o la matrice de transformation tait donne par

Ici, on a deux degrs de libert. On ne peut donc pas imposer six valeurs pour la position et
lorientation. On peut simplement imposer deux valeurs pour la position ou encore une
position une orientation. Prenons les deux positions px, py. Ici la configuration du
manipulateur impose que pz = 0. Lide est de trouver 1, 2, connaissant px, py.
Identifions donc les deux termes:
px = l1c1 + l2c12
py = l1s1 + l2s12
Bien que ce manipulateur peut paratre trs simple, ce nest pas du tout vident de rsoudre
ces deux quations cause des termes trigonomtriques. Cest videmment ce qui pose
souvent des problmes lorsquon fait la gomtrique inverse. Heureusement cest souvent le

20

Chapitre 2

Robotique (Modlisation Gomtrique)

mme genre dquations qui reviennent et en faisant quelques exemples, on finit par
reconnatre des situations semblables. Dailleurs dans la table suivante, on donne certaines
astuces pour rsoudre des quations trigonomtriques. Ici on utilise le cas 3. On a alors

En sommant les deux expressions, on trouve:

On trouve alors

Pour trouver 1, on doit dcomposer chacun des termes

On peut isoler s1, c1. On trouve

Do finalement
Remarque:
On doit faire trs attention lorsquon utilise des fonctions trigonomtriques inverses car ces
fonctions sont `a valeur multiple. En effet, si on value tan(45) et tan(225) on aura 1 dans
les 2 cas. Donc si on calcule tan1 1, on devrait avoir un ou lautre mais en ralit, une
calculatrice et un ordinateur va toujours donner 45. En ralit, pour savoir dans quel quadrant
on se trouve ,on doit regarder la fois le signe du sin et le signe du cos et non pas simplement
le rapport entre les deux. A partir de l, on trouve le bon angle. Si on fait un programme
dordinateur et quon utilise un langage dordinateur qui possde que la fonction tangente
inverse, on devra crire une procdure pour cela. La plupart des langages volus comme C et
Matlab possdent dj ces fonctions, appeles atan 2 dans leur librairies. Il est donc toujours
prfrable dutiliser cette fonction si possible plutt que les autres. Dans lexemple prcdent,
on valuait 2 en faisant un cosinus inverse car on navait pas le choix. Encore l, i l faut faire
attention car il y a deux valeurs possibles. Ainsi, si on a acos(0.5), on pourra avoir 60 ou
60. Il faudra garder les deux et vrifier ensuite si les deux sont acceptables ou non. Dans
lexemple prcdent les deux valeurs sont acceptables. On a ce quon appelle une redondance
Connaissant maintenant les variables joints, si on veut on doit en dduire les variables
moteurs. La plupart du temps chaque moteur est associ `a un seul joint. Le moteur peut tre
coupl au joint directement ou par lintermdiaire dun rducteur ou par des courroies. Dans
tous ces cas la relation est assez simple, ce sera simplement un changement dchelle quon
peut crire par

21

Chapitre 2

Robotique (Modlisation Gomtrique)

(2.13)
x1 reprsente un changement dunits. Supposons, par exemple, quentre le moteur et laxe du
joint, on ait un rducteur 10:1, que 1 est en radians et quun tour de moteur correspond
4000 pulses. On a alors

Finalement y1 est simplement un changement dorigine. En pratique, lorsquon fait une mise
zro dun moteur, on le fait tourner jusquau moment o`u il passe devant un capteur de fin de
courses, souvent un capteur de proximit et on remet alors son encodeur zro. Or ce zro ne
correspond pas ncessairement 1 = 0. On ajuste alors le zro laide de y1. Toutes ces
valeurs sont trouves par calibration. Evidemment lorsquon utilise un robot dj fait, on na
pas soccuper de ces particularits.
Equations trigonomtriques utiles pour la solution de la gomtrique inverse

alors

cas : 1 Si on a
s = f
c = g
= atan2 (f, g)
cas : 2 Si on a
a c + b s = d

On divise par

les coefficients devant le cos et le sin peuvent tre considrs comme tant les composantes
dun vecteur unitaire formant un angle . En posant
,
on trouve

On en dduit
cas : 3 Si on a une paire dquations du type
a c1 + b c12 = f
a s1 + b s12 = g
on met au carr chaque quation et on additionne pour obtenir

Do on trouve 2. Connaissant 2, on remplace dans c12 et s12 et on retrouve le cas 3

cas : 4 Si on a une paire dquations du type


a s12 + b c12 + d c1 = f
-a c12 + b s12 + d s1 = g
on met au carr chaque quation et on additionne pour obtenir
l s2 + mc2 = h
22

Chapitre 2

Robotique (Modlisation Gomtrique)

et on trouve 2 en faisant comme le cas 2.


cas : 5 Si on a une paire dquations du type
a1s1 + b1c1 = d1
a2s1 + b2c1 = d2
On rsoud le systme linaire et on trouve
1 = atan2 (d1b2 d2b1, a1d2 a2d1)

Exemple 3.5
Faisons comme 2me exemple la gomtrique inverse du robot de lexemple 3.2. La matrice de
transformation est donne par

On a encore ici que deux degrs de libert. On ne peut donc imposer que deux grandeurs
physiques. On peut par exemple imposer la position px et py. On a alors
px = l2c2c1
py = l2c2s1
On trouve alors facilement que
1 = atan2 (py, px)
Pour trouver 2, une fois quon connait 1, cest trs simple. Par exemple on pourrait
simplement crire:

Il faudrait cependant faire attention car si 1 = 90, on aura une division par zro. On peut
toujours faire un test mais il est prfrable de faire de la faon suivante:

Bien quil soit possible de trouver un angle laide dun sinus inverse ou cosinus inverse, il
est toujours prfrable, si on peut dutiliser la tangente inverse. Cest beaucoup plus prcis.
Ainsi dans notre exemple, si on pouvait fixer pz, il serait prfrable de trouver galement le
sinus de la faon suivante:
s2 = (pz d1)/l2
2 = atan2 (pz d1, pxc1 + pys1)
Par contre ici on ne peut pas et il faut utiliser le sinus inverse.
Dans ce dernier exemple, ce manipulateur trs simple excute une trajectoire circulaire. Ce
nest pas trs logique dimposer une position en x et y comme on vient de le faire car on na
aucune ide quel z on sera. Il est plus logique dimposer les deux coordonnes sphriques.
Ainsi si on a
x = r sin cos
y = r sin sin
z = r cos
on trouve directement
23

Chapitre 2

Robotique (Modlisation Gomtrique)


1 = (angle dazimuth)
2 = 90 (angle de znith)

Encore une fois, dans la plupart des livres, lorsquon traite de la gomtrique inverse, on
sarrte l, cest--dire en trouvant la relation entre les variables cartsiennes et les variables
joints. Cependant en pratique, ce sont des moteurs quon commande, et il faut, partir de la
connaissance des variables de joints (ici 1, 2), trouver les variables moteurs. Dans lexemple
prcdent, on a vu que lorsquun moteur tait directement coupl `a un joint, la relation tait
linaire et tr`es simple. Par contre ce nest pas toujours le cas. Prenons par exemple le robot
de notre exemple. Sur la figure, la forme est trs schmatise, mais une faon pratique de
raliser le deuxime joint serait possiblement davoir un arrangement tel quillustr sur la
figure suivante: On remarque que la rotation du joint 2 nest pas ralise directement un
moteur coupl sur le joint mais via une vis. La relation entre la variable joint et la variable
moteur est alors un peu plus complexe.

Fig 2.14
Premirement il faut trouver le lien entre langle de joint et la longueur de la vis. Ceci se fait
par la loi des cosinus:
L2 = A2 + B2 2AB cos(90 + 2)
Connaissant, L, la longueur de la vis, la relation entre le boteur et la position de lcrou est
relativement simple, elle ne dpend que du pas de vis. On trouve une relation linaire
similaire `a (2.14).
M2 = x2L + y2
o le facteur dchelle x2, est simplement le nombre de pulses de moteur par tour fois le pas
de vis en mtres par tour. y2 sert ajuster lorigine.

Exemple 3.6
Faisons la gomtrique inverse de lexemple 3.3. La matrice de transformation tait donne
par:

On a ici trois degrs de libert. On peut donc imposer 3 grandeurs. On ne peut cependant pas
imposer une valeur de pz car cette grandeur est fixe. On peut donc soit imposer deux positions

24

Chapitre 2

Robotique (Modlisation Gomtrique)

px, py et une orientation ou encore une position et deux orientations (, , car = 0) . Si on


impose px, py, ,on aura:
1 = atan2(-px, py)
d2 = pyc1 - pxs1
3 =

Exemple 3.7
Terminons les exemples de gomtrique avec un vrai robot. Le robot ASEA se trouvant au
laboratoire. Commenons par mettre le robot une position initiale et plaons les systmes
daxes.

Fig.2.15
Les paramtres de Denavit-Hartenberg sont:

On en dduit les matrices de transformation:

25

Chapitre 2

Robotique (Modlisation Gomtrique)

Fig.2.16

26

Chapitre 2

Robotique (Modlisation Gomtrique)

On effectue ensuite les multiplications en vrifiant si les rsultats ont du sens.

Gomtrique inverse
Si on veut faire le contrleur de ce robot, on doit connatre la relation entre les moteurs et les
positions cherches. Pour trouver ces relations, on pose la matrice de transformation gale la
matrice voulue

A partir de px, py on trouve


1 = atan2 (py, px)

(2.14)

On a aussi

(2.15)
On peut rcrire lquation de px et pz de la faon suivante:
Posons

27

Chapitre 2

Robotique (Modlisation Gomtrique)

On a alors
En prenant le carr de chacune de ces expressions on obtient
(2.16)

(2.17)
A partir de (2.18),(2.17),(2.16) on trouve
(2.18)
Finalement on a que si c234 0,
(2.19)
Dans le cas contraire, on a
Do
(2.20)

28