Académique Documents
Professionnel Documents
Culture Documents
2.1 Introduction
Un manipulateur en boucle ouverte consiste en un certain nombre de liens dont la position
relative est définie par les variables d’articulations. Ces dernières peuvent être des rotations
ou des translations. Puisque chacun des liens constitue un corps rigide, il est logique de lui
associer un référentiel cartésien. La configuration du robot est ainsi définie par la position
relative des référentiels associés à chacun des liens.
Premièrement, la position d’un objet sera définie par l’origine du système de coordonnées.
Cette position sera donc donnée 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 représente l’orientation. On remarque
que le système de coordonnées est représenté par trois vecteurs unitaires orthogonaux. On
peut donc penser que si on donne ces trois vecteurs par rapport à un système de référence on
connaîtra l’orientation. On représente alors l’orientation par une matrice 3x3 formée 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 système de coordonnées b par
rapport au système 0 est:
2 xx yx z x
P= 3 et que son orientation est donnée par : x y y y z y
0 x z y z z z
1
Chapitre 2 Robotique (Modélisation Géométrique)
En pratique, il y aura plusieurs systèmes de coordonnées. Il faudra alors préciser par rapport à
quel système on donne la position et l’orientation. Supposons qu on appelle le système de
référence le système 0, la position d’un système de coordonnées par rapport au système 0 sera
écrit:
0 0 1
et l’orientation: − 1 0 0
0 − 1 0
On peut donc penser que pour donner une orientation on doit donner 9 valeurs (matrice 3x3).
En réalité ce n’est pas vrai car ces 9 valeurs ne sont pas indépendantes. En effet les 3 vecteurs
doivent être orthogonaux, c-â-d. leur produit scalaire est nul.
x·y=z·x=y·z=0
Ce qui donne 3 relations entre ces 9 valeurs. De plus ces vecteurs sont unitaires. On a donc 3
autres relations :
x·x=y·y=z·z=1
On a donc en réalité que 3 inconnues. On peut donc conclure que la position d’un objet est
donnée par un vecteur (3x1) et l’orientation par une matrice 3x3.
Fig.2.2
2
Chapitre 2 Robotique (Modélisation Géométrique)
0
p2 =0p1 + op (2.3)
Pour trouver le nouvel origine, on n’a donc qu’a faire une addition vectorielle. On remarque
également que L’orientation n’a pas changé. La matrice orientation restera donc identique
après une translation.
Une autre transformation classique est la rotation autour d’un axe. Si on regarde une rotation
autour de l’axe z (Fig. 2.3), pour trouver la position d’un objet après 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 données par:
0
px2 = 0px1 cos Ø − 0py1 sin Ø
0
py2 = 0px1 sin Ø + 0py1 cos Ø (2.4)
0
pz2 = 0pz1
Il sera très intéressant, pour rendre les opérations plus systématiques, de représenter ces
opérations sous forme de matrices. Ainsi la dernière relation peut s’écrire
Fig.2.3
Ou on a remplacé cos par ’’c’’ pour simplifier l’écriture. Cette notation sera suivie dans tout
le reste des notes de cours. Pour trouver la nouvelle orientation, il suffit d’appliquer la même
transformation à chaque vecteur unitaire. On aura ainsi:
O2 = Rotz(Ø)O1
O1, O2 : représentent les matrice d’orientations.
Rotz(Ø) : représente la transformation.
(O(θ),P): v O(θ)v+P
où deux transformations successives donneront :
3
Chapitre 2 Robotique (Modélisation Géométrique)
Noter ici que la translation pure sont représentées 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 très important. Par ce que la multiplication n'est pas
commutative. Pour l'exemple, le résultat de la rotation puis de la translation est différent de la
translation d'abord et ensuite la rotation. Dans le premier cas nous avons :
Alors les coordonnées homogènes. Sont former par une matrice 4x4 qui contienne la matrice
orientation et le vecteur position. On a ainsi
xx yx zx Px
x yy zy Py
y (2.5)
xz yz zz Pz
0 0 0 1
O Pos
ri
(2.6)
0 0 0 1
Exemple 2.2 :
une translation dans la direction x d’une grandeur a va donner:
px2 = px1 + a
py2 = px1
pz2 = pz1
Ceci revient au même que d’écrire
p2 = Transx(a)p1
4
Chapitre 2 Robotique (Modélisation Géométrique)
une rotation en x :
Remarque: Ici il faut faire très attention au sens des rotations et de suivre toujours la même
convention pour le sens positif. La convention la plus utilisée est ce qu’on appelle la
convention de la main droite. Pour savoir si un angle de rotation en z est positif, il suffit de
penser qu’on tourne une vis. Si la rotation produit une déplacement de la vis vers l’axe z
positif, l’angle est positif, sinon négatif. On trouve ainsi que le sens positif pour les trois axes
est illustre sur la figure suivante:
fig.2.4
5
Chapitre 2 Robotique (Modélisation Géométrique)
a) b)
fig.2.5
Ici on peut se demander si c’est dans l’ancien x ou le nouveau. En fait, on peut tout à fait faire
les deux si on veut mais on voit sur la figure que c’est dans la direction de l’ancien x. Dans ce
cas, on voit qu’il faut multiplier la nouvelle matrice à gauche de l’ancienne.
Ici on doit faire tout de suite une observation importante. La matrice résultante peut être
interprétée d’au moins 2 façons différentes. Premièrement, elle représente la série
d’opérations nécessaires pour faire passer un système de coordonnées à un autre, mais elle
représente également l’orientation et la position du nouveau système d’axes par rapport au
premier. En effet les trois premières colonnes représentent l’orientation et la dernière la
position de l’origine.
Si on avait multiplier par la droite on aurait eu
6
Chapitre 2 Robotique (Modélisation Géométrique)
qui n’aurait pas donné le bon résultat pour la position. Si on regarde la figure de droite
maintenant, on voit qu’on aurait pu arriver au même résultat en commençant par une
translation en x suivi d’une rotation de 45° en z mais autour du nouveau z et non l’ancien.
Comme le résultat est le même, il faut que la matrice soit la même et donc que la
multiplication soit :
La deuxième matrice (Rotation) a donc maintenant été multipliée à droite de l’ancienne car on
a effectué la rotation autour du nouvel axe z. En résumé on a:
- Lorsqu’on effectue une nouvelle transformation par rapport au système de référence fixe, on
multiplie la nouvelle matrice à gauche.
- Lorsqu’on effectue une nouvelle transformation par rapport au nouveau système d’axes, on
multiplie la nouvelle matrice à droite.
Une autre conclusion très importante est qu’on peut interpréter le résultat de deux façons
possibles:
1. Soit la série de transformations nécessaires pour faire passer un système de coordonnées à
un autre
2. ou encore la position et l’orientation du nouveau système d’axes par rapport à l’ancien.
On introduira la notation suivante
(2.8)
pour indiquer la matrice de transformation pour faire passer le système d’axe B au système
d’axe A. ou encore la position et l’orientation de A, par rapport à B. Dans la première
interprétation, la sous-matrice 3x3 de gauche représentait la partie rotation et la 4ème colonne,
une translation (2.7). Dans la deuxième interprétation, on aurait plutôt
O Pos
ri
(2.9)
0 0 0 1
Exemple 2.3
Regardons la transformation obtenue après les 4 transformations élémentaires suivantes:
7
Chapitre 2 Robotique (Modélisation Géométrique)
fig.2.6
On peut également arriver au même résultat en faisant les opérations par rapport aux
nouveaux systèmes d’axes et en multipliant de gauche à droite
8
Chapitre 2 Robotique (Modélisation Géométrique)
fig.2.7
9
Chapitre 2 Robotique (Modélisation Géométrique)
qui est bien la position du point q, par rapport au premier système de référence.
Symboliquement, on trouve
Où on remarque encore une fois l’intérêt 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 l’inverse de ce qu’on a trouvé et on doit attendre à l’autre section. Par
contre, on pourrait regarder ce que ça donne si on multiplie notre matrice à 0pq. Ceci donne
Il serait peut-être préférable d’utiliser une autre notation pour la matrice dans ce dernier cas,
quelque chose comme
mais comme on n’utilise pas très souvent cette interprétation, nous garderons toujours la
même notation pour nos matrices de transformations en faisant attention à l’interprétation
qu’on en fait.
10
Chapitre 2 Robotique (Modélisation Géométrique)
Comme c’est autour des axes de références, on doit multiplier par la gauche.
(2.10)
Exemple 2.4
Prenons par exemple un objet auquel on attache un repère (voir figure) (xb, yb, zb) et dont on
cherche à définir l’orientation. On peut facilement trouver la matrice de rotation simplement
par inspection. Ainsi on trouve:
Si on veut représenter l’orientation maintenant par les trois angles (ψ, θ , Ø), on peut le faire
de deux façons. Soit en essayant de trouver les trois rotations visuellement ou en comparant
cette dernière matrice à (2.10). Comme ici, c’est relativement simple, on trouve que pour
passer de R à b, on doit avoir ψ = 0, θ = −90◦, Ø = 0. Dans un cas général, il n’est pas possible
de le faire à l’oeil. Il faut utiliser (2.10). Bien que ça ait l’air gros, ce n’est pas si compliqué. Il
suffit de commencer par le plus simple ( la troisième ligne). Ainsi, dans notre exemple, on a
R y
xb
zb
x B 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 (Modélisation Géométrique)
L’élément de la 1ére rangée et 2ème colonne nous dit que −s(Ø + ψ) = 0 alors que l’élément de
la 2ème rangée 2ème colonne donne c(Ø + ψ) = 1 On a alors
Il existe plusieurs autres définitions d’angles de rotation possibles (24 en tout). Certaines sont
autour d’axes fixes comme la convention qu’on a choisi et certaines sont autour d’axes
variables, Angles d’Euler.
Il faudra donc inverser une matrice 4x4. De façon générale, ce n’est pas très facile à faire. En
effet l’inverse d’une matrice est donné par (2.10)
(2 11)
où la matrice adjointe, est la transposée de la matrice formée par les cofacteurs. Sauf que dans
notre cas, notre matrice est très spéciale. Premièrement, dans la dernière rangée, il y toujours
3 zéros. Deuxièmement, les 3 premiers vecteurs sont toujours orthogonaux entre eux. On peut
montrer assez facilement que l’inverse d’une matrice représentant un système de coordonnées
sera donnée par:
(2.12)
Exemple 2.5
Soit la matrice de transformation suivante
12
Chapitre 2 Robotique (Modélisation Géométrique)
Exemple 2.6
En se référant à l’exemple de la section précédente, trouvons la position du point q
par rapport au système de coordonnées 4, connaissant sa position par rapport au système de
référence.
Notre notation nous permet facilement de chercher ce qu’on a besoin. En effet, il suffit de
trouver
Or
qui vient d’être trouvé `a l’exemple précèdent. On a alors
3 Modélisation Géométrique
3.1 Modélisation Géométrique direct
Cette partie est consacré à la description géométrique directe des manipulateurs en boucle
ouverte, c’est à dire la liaison entre la position et l’orientation de l’organe terminal du robot et
les variables d’articulations. 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 possédant plus d’un degré de liberté peut être modélisée en
introduisant des liens fictifs de longueur nulle).
Pour effectuer la description géométrique du manipulateur, nous associerons un référentiel à
chaque bras du robot, et nous décrirons leur position relative à l’aide des paramètres de
Denavit-Hartenberg. La description géométrique du manipulateur complet est alors obtenue
très simplement, par récurrence.
13
Chapitre 2 Robotique (Modélisation Géométrique)
La position relative de deux liens successifs est définie à l’aide des deux paramètres α et d. α
est l’angle de rotation dont il faut tourner autour de l’axe {i} pour amener la perpendiculaire
commune du lien i−1 parallèle à celle du lien i. d est la distance dont il faut ensuite la
translater le long de l’axe i pour l’amener en coïncidence. Un des paramètres α ou d constitue
la variable d’articulation, α pour une articulation de rotation et d pour une articulation de
translation. Les quatre paramètres θ , l , α et d constituent les paramètres de Denavit-
Hartenberg; ils constituent une caractérisation géométrique minimale d’un lien et de sa
relation avec le lien suivant. Il existe de légères variantes dans la définition des paramètres.
li
14
Chapitre 2 Robotique (Modélisation Géométrique)
cθ − sθ cα sθ sα lcθ
sθ cθ cα − cθ sα lsθ
= (2.12)
0 sα cα d
0 0 0 1
En plus de prendre cette convention pour les transformations élémentaires, il sera important
de choisir la même convention pour le choix des axes. Ainsi, pour un joint rotatif, on va
toujours prendre l’axe z dans l’axe de rotation. De même dans le cas d’un joint prismatique,
on choisira l’axe z dans le sens de la translation. Ainsi, dans le cas d’un joint rotatif, la
rotation autour de z va changer. La rotation θ sera donc une variable (appelée variable de joint
et les autres paramètres seront des constantes. Pour un joint prismatique, ce sera d, la
translation selon z, qui sera la variable de joint. Une fois l’axe z choisi, on choisira l’axe x.
Une fois l’axe x choisi, l’axe y est directement donné par la règle de la main droite.
15
Chapitre 2 Robotique (Modélisation Géométrique)
Notations :
On numérote les solides par ordre croissant en partant du socle. Ainsi le robot est composé de
n+1 corps, notés C0......... Cn , et de n articulations . Le corps C0 désigne le socle (la base) du
robot,
Le repère Ri est lié au corps Ci du robot.
La variable de l'articulation i, qui lie le corps Ci au corps Ci+1 , est notée qi.
(La convention de Denavit-Hartenberg (non modifié) est telle que l’axe zi du repère Ri est
confondu avec l’axe n° i+1 ,(et non i) du robot.)
16
Chapitre 2 Robotique (Modélisation Géométrique)
1 0 0 0 1 0 0 l i cos(θ i ) − sin(θ i ) 0 0 1 0 0 0
0 cos(α i ) − sin(α i ) 0 0 1 0 0 sin(θ i ) cos(θ i ) 0 0 0 1 0 0
= × × ×
0 sin(α i ) cos(α i ) 0 0 0 1 0 0 0 1 0 0 0 1 di
0 1 0 0 1 0 0 0 1
0 0 0 0 1 0 0
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 systèmes d’axes, 2 mobiles et 1 fixe. On prend z0 le long de la première rotation, z1
dans l’axe de la 2éme rotation. z2 est arbitraire. En général, on le prendra le plus simple
possible. Par exemple ici, on le met dans le même sens que
Fig.2.11
z1.Remarquons que bien que l’axe z soit l’axe de rotation, le sens positif est arbitraire.
On peut le prendre d ´un sens ou l’autre
On choisit ensuite les axes x. x0 est arbitraire mais pas x1. Comme z0 et z1 sont parallèles, il y a
une infinité de perpendiculaires communes aux 2 axes. On choisit la plus simple, c’est-à-dire
au centre du joint. On fait la même chose pour x2. Pour x0, on prend également le plus simple
possible, en gardant la même direction que x1 (à la position zéro).
Une fois les systèmes d’axes en place, il suffit de trouver les paramètres de Denavit-
Hartenberg et de remplacer dans (3.1). On trouve ainsi
17
Chapitre 2 Robotique (Modélisation Géométrique)
Et
Une fois la matrice trouvée, il est toujours bon de vérifier le résultat en essayant quelques
valeurs d’angles. Ainsi, si on essaie avec θ1 = 0° et θ2 = 90° on aura comme matrice
Exemple 3.2
Refaisons les mêmes étapes avec un manipulateur à deux degrés de liberté indiqué sur la
figure. Les systèmes d’axes lorsque le robot est à l’initialisation sont donnés sur la figure. Les
paramètres sont:
Fig.2.12
18
Chapitre 2 Robotique (Modélisation Géométrique)
Exemple 3.3
Terminons avec un exemple ayant un joint prismatique à 3 degrés de liberté Les systèmes
Fig.2.13
d’axes sont représentés sur la figure. Ici, il y a évidemment un peu d’arbitraire au niveau de la
position de l’outil `a la position zéro. On peut très bien choisir qu’à l’initialisation, les 3
systèmes d’axes 1,2 et 3 coïncident où mettre le dernier à une certaine distance des 2 autres.
ça n’a pas tellement d’importance. Avec le choix qui a été fait, on obtient:
19
Chapitre 2 Robotique (Modélisation Géométrique)
On peut encore une fois vérifier en essayant par exemple θ1 = 90°, d2 = 0, θ3 = 90°
Remarque :
Les exemples précédents sont des problèmes de géométrique directe. Ces relations nous
donnent le lien qui existe entre les variables joints(c-à-d θ ou d) et variables cartésiennes (c-
à-d positions et orientations). On dit qu’on passe de l’espace articulaire(joint) à l’espace
opérationnel (cartésien).
A → O
espace articulaire espace opérationnel
Ainsi dans le dernier exemple, si prend par exemple θ1 = 90°,d2 = 4, θ2 = 90°, on en déduit
directement que la position de l’outil est à (−4, 0, d1) de l’origine et que son orientation est (0,
90°, 180°). On verra cependant que c’est souvent le contraire qu’on veut. On devra alors
trouver la géométrique inverse.
20
Chapitre 2 Robotique (Modélisation Géométrique)
joints. Ceci est appelé la géométrique inverse On passe de l’espace opérationnel à l’espace
articulaire.
Exemple 3.4
Reprenons l’exemple (3.1) où la matrice de transformation était donnée par
Ici, on a deux degrés de liberté. On ne peut donc pas imposer six valeurs pour la position et
l’orientation. 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. L’idée est de trouver θ1, θ2, connaissant px, py.
Identifions donc les deux termes:
px = l1c1 + l2c12
py = l1s1 + l2s12
Bien que ce manipulateur peut paraître très simple, ce n’est pas du tout évident de résoudre
ces deux équations à cause des termes trigonométriques. C’est évidemment ce qui pose
souvent des problèmes lorsqu’on fait la géométrique inverse. Heureusement c’est souvent le
même genre d’équations qui reviennent et en faisant quelques exemples, on finit par
reconnaître des situations semblables. D’ailleurs dans la table suivante, on donne certaines
astuces pour résoudre des équations trigonométriques. Ici on utilise le cas 3. On a alors
On trouve alors
D’où finalement
21
Chapitre 2 Robotique (Modélisation Géométrique)
Remarque:
On doit faire très attention lorsqu’on utilise des fonctions trigonométriques 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 tan−1 1, on devrait avoir un ou l’autre mais en réalité, une
calculatrice et un ordinateur va toujours donner 45°. En réalité, 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
d’ordinateur et qu’on utilise un langage d’ordinateur qui possède que la fonction tangente
inverse, on devra écrire une procédure pour cela. La plupart des langages évolués comme C et
Matlab possèdent déjà ces fonctions, appelées atan 2 dans leur librairies. Il est donc toujours
préférable d’utiliser cette fonction si possible plutôt que les autres. Dans l’exemple précèdent,
on évaluait θ2 en faisant un cosinus inverse car on n’avait 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 vérifier ensuite si les deux sont acceptables ou non. Dans
l’exemple précèdent les deux valeurs sont acceptables. On a ce qu’on appelle une redondance
Connaissant maintenant les variables joints, si on veut on doit en déduire 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 l’intermédiaire d’un réducteur ou par des courroies. Dans
tous ces cas la relation est assez simple, ce sera simplement un changement d’échelle qu’on
peut écrire par
(2.13)
x1 représente un changement d’unités. Supposons, par exemple, qu’entre le moteur et l’axe du
joint, on ait un réducteur 10:1, que θ1 est en radians et qu’un tour de moteur correspond à
4000 pulses. On a alors
Finalement y1 est simplement un changement d’origine. En pratique, lorsqu’on fait une mise à
zéro d’un moteur, on le fait tourner jusqu’au moment o`u il passe devant un capteur de fin de
courses, souvent un capteur de proximité et on remet alors son encodeur à zéro. Or ce zéro ne
correspond pas nécessairement à θ1 = 0. On ajuste alors le zéro à l’aide de y1. Toutes ces
valeurs sont trouvées par calibration. Evidemment lorsqu’on utilise un robot déjà fait, on n’a
pas à s’occuper de ces particularités.
• cas : 1 Si on a
sθ = f
cθ = g
alors θ = 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 considérés comme étant les composantes
d’un vecteur unitaire formant un angle Ø. En posant
22
Chapitre 2 Robotique (Modélisation Géométrique)
,
on trouve
On en déduit θ
• cas : 3 Si on a une paire d’équations du type
a c1 + b c12 = f
a s1 + b s12 = g
D’où on trouve θ2. Connaissant θ2, on remplace dans c12 et s12 et on retrouve le cas 3
Exemple 3.5
Faisons comme 2ème exemple la géométrique inverse du robot de l’exemple 3.2. La matrice de
transformation est donnée par
On a encore ici que deux degrés 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
23
Chapitre 2 Robotique (Modélisation Géométrique)
Il faudrait cependant faire attention car si θ1 = 90°, on aura une division par zéro. On peut
toujours faire un test mais il est préférable de faire de la façon suivante:
Bien qu’il soit possible de trouver un angle à l’aide d’un sinus inverse ou cosinus inverse, il
est toujours préférable, si on peut d’utiliser la tangente inverse. C’est beaucoup plus précis.
Ainsi dans notre exemple, si on pouvait fixer pz, il serait préférable de trouver également le
sinus de la façon suivante:
s2 = (pz − d1)/l2
θ2 = atan2 (pz − d1, pxc1 + pys1)
Dans ce dernier exemple, ce manipulateur très simple exécute une trajectoire circulaire. Ce
n’est pas très logique d’imposer une position en x et y comme on vient de le faire car on n’a
aucune idée à quel z on sera. Il est plus logique d’imposer les deux coordonnées sphériques.
Ainsi si on a
x = r sin θ cosØ
y = r sin θ sinØ
z = r cos θ
on trouve directement
θ1 = Ø (angle d’azimuth)
θ2 = 90° − θ (angle de zénith)
Encore une fois, dans la plupart des livres, lorsqu’on traite de la géométrique inverse, on
s’arrête là, c’est-à-dire en trouvant la relation entre les variables cartésiennes et les variables
joints. Cependant en pratique, ce sont des moteurs qu’on commande, et il faut, à partir de la
connaissance des variables de joints (ici θ1, θ2), trouver les variables moteurs. Dans l’exemple
précèdent, on a vu que lorsqu’un moteur était directement couplé `a un joint, la relation était
linéaire et tr`es simple. Par contre ce n’est pas toujours le cas. Prenons par exemple le robot
de notre exemple. Sur la figure, la forme est très schématisée, mais une façon pratique de
réaliser le deuxième joint serait possiblement d’avoir un arrangement tel qu’illustré sur la
figure suivante: On remarque que la rotation du joint 2 n’est pas réalisée 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
24
Chapitre 2 Robotique (Modélisation Géométrique)
Premièrement il faut trouver le lien entre l’angle de joint et la longueur de la vis. Ceci se fait
par la loi des cosinus:
où le facteur d’échelle x2, est simplement le nombre de pulses de moteur par tour fois le pas
de vis en mètres par tour. y2 sert à ajuster l’origine.
Exemple 3.6
Faisons la géométrique inverse de l’exemple 3.3. La matrice de transformation était donnée
par:
On a ici trois degrés 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 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 géométrique avec un vrai robot. Le robot ASEA se trouvant au
laboratoire. Commençons par mettre le robot à une position initiale et plaçons les systèmes
d’axes.
Fig.2.15
25
Chapitre 2 Robotique (Modélisation Géométrique)
Fig.2.16
26
Chapitre 2 Robotique (Modélisation Géométrique)
Géométrique inverse
Si on veut faire le contrôleur de ce robot, on doit connaître la relation entre les moteurs et les
positions cherchées. Pour trouver ces relations, on pose la matrice de transformation égale à la
matrice voulue
27
Chapitre 2 Robotique (Modélisation Géométrique)
(2.15)
On peut réécrire l’équation de px et pz de la façon suivante:
Posons
On a alors
(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
D’où
(2.20)
28