Académique Documents
Professionnel Documents
Culture Documents
Introduction a` la Robotique
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
2
2
3
3
4
5
5
7
10
10
12
13
13
14
17
18
18
18
18
19
19
20
22
22
22
23
23
23
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.4.2
3.4.3
ii
Calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interet et exemple : voir TP (si le temps le permet) . . . . . . .
23
23
24
24
25
25
Bibliographie
29
Chapitre 1
Representation des transformations
rigides
Ce chapitre contient des rappels mathematiques sur les transformations rigides et
lorientation des corps dans lespace [Murray 94, Renaud 86, Craig 89].
1.1
Notations et definitions
1.1.1
Points
1.1.2
Solides
Un solide S est dit indeformable si, pour toute paire de points de ce solide de coordonnees m et n , ||m(t) n(t)|| = ||m(0) n(0)|| = constante au cours du temps. Par
la suite, les solides seront tous consideres comme indeformables.
Le mouvement rigide dun solide S, considere comme un sous-ensemble de R3 est
le mouvement de chacun de ses points.
1.2. Rotations
La situation dun solide S est donnee par la position et lorientation dans R dun
rep`ere lie a` ce solide.
1.1.3
Transformations rigides
On appelle transformation rigide le resultat dun mouvement rigide amenant le solide dune situation initiale a` une situation finale. Une transformation rigide est representee par une application unique qui transforme les coordonnees des points du solide
S de leur position initiale vers leur position finale.
A linverse, une application representera une transformation rigide si elle conserve
a` la fois les distances et lorientation. Cela signifie notamment quun rep`ere orthonorme
direct reste orthonorme direct par application dune telle transformation.
1.2
1.2.1
Rotations
Matrice de rotation
x = x .y , y = y .y et z = z 0 .y .
x0 .z
y 0 .z
z 0 .z
La matrice R = (x0 y 0 z 0 ) de dimension 3 3 est appelee matrice de rotation (ou
encore matrice de passage ou matrice de changement de base) du rep`ere R vers le
rep`ere R0 . Elle peut en effet e tre vue comme la matrice rendant compte de la rotation
dun solide lie a` un rep`ere orthonorme, initialement en R, et deplace en R0 par la rotation
autour de O, conformement a` la figure 1.1.
z0
z
y0
O
x
y
M
x0
1.2. Rotations
1.2.2
0
m
x
m = x0 y 0 z 0 m0y
m0z
cest-`a-dire :
m = Rm0 .
(1.1)
Cette relation rend compte du changement de base des coordonnees dun point. On
peut en faire une analyse en terme de rotation si lon consid`ere que M est un point
dun solide S (en pointilles sur la figure 1.2) ayant effectue, autour de O, une rotation
de matrice R. Alors m0 representent les coordonnees initiales de M dans R et m ses
coordonnees finales, toujours dans R, une fois la rotation effectuee.
z0
z
y0
O
x
y
x0
M
1.2.3
Exemple
cos
sin
0
x0 = sin , y 0 = cos et z 0 = 0
0
1
0
1.2. Rotations
M
y
x0
y0
O z = z0
cos sin 0
R(z, ) = sin cos 0 .
0
0
1
Les coordonnees du point M dans R0 sont :
3
m0 = 0 .
1
Dans R ses coordonnees sont :
cos sin 0
3
cos
m = ( 23 32 1)T .
1.2.4
La rotation sapplique aussi bien e videmment aux vecteurs. Les coordonnees dun
vecteur sont en effet la difference des coordonnees de deux points de R3 . On peut ainsi
appliquer la rotation a` un vecteur de coordonnees v = m n dans R :
m n = Rm0 Rn0 = R(m0 n0 ),
soit, en posant v 0 = m0 n0 :
v = Rv 0 .
1.2. Rotations
1.2.5
1.2.6
Combinaison de rotations
Les matrices identites, quel que soit leur ordre sont notees I.
1.2. Rotations
deux rotations successives. Par exemple considerons la combinaison des deux rotations
suivantes :
une premi`ere rotation dun angle 4 autour de z ;
une seconde rotation dun angle autour de laxe y 0 resultant de la premi`ere
rotation.
Ceci correspond a` lillustration de la figure 1.4. On consid`ere le point de coordonnees
z0
y0
x00
O
x0
x
z 00
m00 = ( 2 0 0)T dans R00 et on souhaite exprimer ses coordonnees dans R. On a donc :
2
m=
2
2
2
22 0
1 0 0
1
2
2
0
1
0
1 .
=
0
0
2
0 0 1
0
0
0
1
1.2. Rotations
z0
M
x00
O
x0
z 00
initiales m00 = ( 2 0 0)T dans R (et donc de coordonnees finales m00 dans R00 ). On a :
2
2
1 0 0
0
1 0 0
1
1
2
2
2
2
2
0 1 0
0 1 0
1 =
1 .
m=
=
0
0
2
2
0 0 1
0 0 1
0
0
0
0
0
1
1.2.7
1.2. Rotations
xx yx zx
R = xy yy zy .
xz yz zz
Les e lements de cette matrice sont appeles cosinus directeurs car ils representent les coordonnees des trois vecteurs de la base R0 exprimes dans R. Par definition, les colonnes
de R sont orthogonales entre elles et par consequent la connaissance de deux colonnes
suffit. En robotique, on omet ainsi souvent la seconde colonne :
xx zx
R = xy zy .
xz zz
Les six param`etres restant sont appeles cosinus directeurs incomplets. Par ailleurs les
colonnes de R formant une base orthonormee :
les deux colonnes restantes sont orthogonales et donc :
xx zx + xy zy + xz zz = 0 ;
les deux colonnes restantes sont de norme unite et donc :
x2x + x2y + x2z = 1,
zx2 + zy2 + zz2 = 1.
Il existe donc six param`etres lies entre eux par trois relations si lon definit lorientation
dun solide par une matrice de rotation. Malheureusement, les relations liant les cosinus
directeurs incomplets ne permettent pas de fournir trois param`etres uniques, mais une
collection de solutions : il faut donc conserver ces six param`etres ou utiliser un autre
mode de representation de lorientation.
Angles dEuler classiques
Les angles dEuler classiques permettent de decrire lorientation dun solide par
trois rotations successives donnant au solide lorientation en question. Les rotations
successives, conformement a` la figure 1.6 page suivante, sont R(z, ), R(x , ) et
enfin R(z , ) o`u x et z sont deduits des vecteurs du rep`ere de base conformement
a` la figure 1.6 page suivante. Les angles , et sont connus respectivement sous
les termes de precession, nutation et rotation propre. Chaque nouvelle rotation e tant
effectuee par rapport a` un rep`ere ayant tourne :
R = R(z, ) R(x , ) R(z , ).
1.2. Rotations
cos sin 0
1
0
0
cos sin 0
R = sin cos 0 0 cos sin sin cos 0
0
0
1
0 sin cos
0
0
1
soit finalement :
cos cos sin cos sin cos sin sin cos cos sin sin
R = sin cos + cos cos sin sin sin + cos cos cos cos sin .
sin sin
sin cos
cos
La transformation inverse permet detablir les angles dEuler a` partir des cosinus directeurs2 :
si zz 6= 1 :
= atan2(zx , zy ),
= acos zz ,
= atan2(xz , yz ).
si zz = 1 :
= (1 zz )/2,
+ zz = atan2(yx , xx ),
et donc et sont indetermines.
Angles roulis, tangage et lacet
Pour cette representation, la litterature donne de nombreuses definitions [Paul 81,
Craig 89, Khalil 99, Renaud 86]. Ces angles, tr`es utilises par les anglo-saxons et donc
par les industriels, portent les noms de roll, pitch et yaw en anglais. Il sagit en fait
dangles dEuler non classiques en cela que les rotations seffectuent autour daxes fixes.
Nous adoptons la definition de [Craig 89] : les rotations successives, conformement
a` la figure 1.7 page suivante, sont R(x, ), R(y, ) puis R(z, ). Les angles , , et
sont respectivement designes sous les noms dangles de roulis, tangage et lacet. Chaque
2
Pour cela il faut definir la fonction atan2, qui permet dassocier lunique angle < x 6 tel que
x = atan2(sin x, cos x).
10
F IG . 1.7 Rotations successives dans le parametrage par les angles de roulis, tangage
et lacet
nouvelle rotation e tant effectuee par rapport a` un axe du rep`ere fixe R :
R = R(z, ) R(y, ) R(x, ).
Sous forme developpee :
cos sin 0
cos 0 sin
1
0
0
1
0 0 cos sin ,
R = sin cos 0 0
0
0
1
sin 0 cos
0 sin cos
soit finalement :
cos cos sin cos + cos sin sin sin sin + cos sin cos
R = sin cos cos cos + sin sin sin cos sin + sin sin cos
sin
cos sin
cos cos
La transformation inverse permet detablir les angles de roulis, tangage et lacet a` partir
des cosinus directeurs :
si 6= 2 :
= atan2(xy , xxp
),
= atan2(xz , x2x + x2y ),
= atan2(yz , zz ).
si = 2 :
signe() = atan2(zy , zx ),
(ou signe() = atan2(yx , yy ) e quivalent . . . normalement),
et donc et sont indetermines.
1.3
1.3.1
Transformations rigides
Matrices de passage homog`enes
11
z0
z
y0
O0
p
O
x0
y
M
(1.2)
Ceci peut se mettre sous forme lineaire en introduisant les coordonnees homog`enes
du point M qui sont representees par un vecteur de dimension 4 1 :
0
mx
mx
0
my
m0y
m
m
0
m
= =
dans R0 .
dans R et m
= 0=
mz
1
1
mz
1
1
On peut alors exprimer la transformation rigide (1.2) par la relation matricielle :
0
m
R p
m
=
1
0 1
1
(1.3)
R p
.
0 1
1.3.2
12
T1 T2 =
R1 R2 R1 p 2 + p 1
,
0
1
(1.4)
ce qui implique que la combinaison de deux transformations rigides est bien une
transformation rigide.
2. La matrice identite dordre 4 est la transformation rigide identite.
3. Dapr`es le produit (1.4) linverse dune transformation rigide (p, R) est representee
par :
T
R RT p
1
T =
.
0
1
Il sagit donc de la transformation rigide (RT p, RT ).
Chapitre 2
Description des bras manipulateurs
On se propose par la suite detablir les mod`eles geometriques et cinematiques des
bras manipulateurs. Pour cela on definit la forme des chanes cinematiques qui seront
e tudiees et le parametrage usuel de ces structures [Renaud 96]. .
2.1
corps
C1
bati
(corps C0 ) liaison
L1
corps
C2
liaison
L2
14
corps
Cn1
liaison
L3
liaison
Ln1
corps
Cn
liaison
Ln
2.2
A la fois celle a` laquelle on attribue la plus grande generalite [Gorla 01] et la plus intuitive en pratique.
15
zi
i1
xi
Oi
z i1
zi
ri
Oi1
zi
xi1
ai1
xi
i1
xi1
axe liaison
Li1
axe liaison
Li
xn
an
16
a2
r4
z0 , z1
r7
x3
x4 , x 5 , x 6
O0 , O 1 , O 2
z2
Organe terminal
z4 , z6
x0 , x 1 , x 2
O3
O7
O4 , O 5 , O 6
z3
z5
articulation i
i1
ai1
2
0
a2
2
0
2
0
2
0
q1
q2
q3
q4
q5
q6
ri
r4
2.3
Ti1, i
17
Relations geometriques
1 0 0 ai1
1
0
0
0
cos i sin i 0
0 cos i1 sin i1 0 0 1 0 0 sin i cos i 0
=
0 sin i1 cos i1 0 0 0 1 0 0
0
1
0 0 0 1
0
0
0
1
0
0
0
|
{z
}|
{z
}|
{z
R(xi1 , i1 )
R(z i , i )
matrice de rota
1
0
0 0
0 0
0
1
}|
0
1
0
0
0
0
1
0
{z
translation de ri z i
soit :
cos i
sin i
0
ai1
cos i1 sin i cos i1 cos i sin i1 ri sin i1
=
sin i1 sin i sin i1 cos i cos i1
ri cos i1
0
0
0
1
Ti1, i
(2.1)
Ri1, i pi1, i
0
1
0
0
ri
1
}
o`u Ri1, i represente la rotation entre les rep`eres Ri1 et Ri et pi1, i la translation entre
ces memes rep`eres.
Chapitre 3
Modelisation des bras manipulateurs
3.1
3.2
3.2.1
(3.1)
3.2.2
19
Calcul
T0,n =
R0,n p0,n
0
1
xx yx zx
R0,n = xy yy zy
xz yz zz
et lon rappelle quil suffit de connatre les premi`ere et troisi`eme colonne de cette
matrice pour definir de mani`ere unique lorientation du rep`ere terminal. La position
(x1 x2 x3 )T du point On+1 se deduit alors facilement, compte tenu des coordonnees
(an 0 rn+1 )T de On+1 dans Rn :
x1 = px + an xx + rn+1 zx ,
x2 = py + an xy + rn+1 zy ,
x3 = pz + an xz + rn+1 zz .
3.2.3
(3.3)
R`egles pratiques
=
=
=
=
...
sin qi
cos qi
sin (qi + qj )
cos (qi + qj )
Par ailleurs a` chaque nouvelle operation effectuee on definit une variable intermediaire qui permet de neffectuer quune fois un produit ou une addition survenant a` de nombreuses reprises ;
20
si lon m`ene le calcul en effectuant le produit (3.2) a` rebours (de droite a` gauche)
on peut sabstenir de calculer la seconde colonne des differentes matrices. En
effet, si lon consid`ere le produit de deux matrices de passage homog`enes A et B,
avec B possedant une seconde colonne indeterminee donne :
0
b11
0 b21
0 b31
1
0
b13
b23
b33
0 0
0
0
=
0
1
0
0
.
0
1
si deux transformations se composent aisement on effectue tout dabord leur produit : cest le cas en particulier de la transformation due a` deux rotations successives daxes parall`eles. Par exemple si lon consid`ere deux rotations pures successives de q1 et q2 autour dun meme axe y 1 = y 2 :
C1
0
S1
0
3.2.4
0 S1
1 0
0 C1
0 0
0
C2
0 0
0 S2
1
0
0 S2
1 0
0 C2
0 0
0
C1+2
0 0
=
0 S1+2
1
0
0 S1+2
1
0
0 C1+2
0
0
0
0
0
1
Exemple
C1 S1 0 0
C2 S2 0 0
S1 C1 0 0
0
0 1 0
T0, 1 =
T1, 2 =
0
0 1 0
S2 C2
0 0
0
0 0 1
0
0
0 1
T2, 3
C3 S3
S3 C3
=
0
0
0
0
T4, 5
C5 S5
0
0
=
S5 C5
0
0
0 a2
0 0
1 0
0 1
0
1
0
0
0
0
0
1
T3, 4
C4 S4 0
0
0
0 1 r4
=
S4 C4
0
0
0
0
0
1
T5, 6
C6 S6 0 0
0
0 1 0
=
S6 C6
0 0
0
0
0 1
21
La multiplication des matrices, selon les r`egles precedemment e noncees fait apparatre
les variables auxiliaires suivantes :
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
px
py
pz
xx
xy
xz
zx
zy
zz
yx
yz
x1
x2
x3
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
a2 C2
a2 S 2
C5 C6
S5 C6
C4 D3 S4 S6
C4 S5
S4 D3 + C4 S6
S 4 S5
C2+3 D5 + S2+3 D4
C2+3 D6 + S2+3 C5
r4 S2+3 + D1
C1 D11
S1 D11
r4 C2+3 + D2
C1 D9 + S1 D7
S1 D9 C1 D7
S2+3 D5 C2+3 D4
C1 D10 + S1 D8
S1 D10 C1 D8
S2+3 D6 C2+3 C5
zy xz zz xy
zx xy zy xx
px + r7 zx
py + r7 zy
pz + r7 zz
=
=
=
=
=
=
xx
xy
xz
zx
zy
zz
22
si zz 6= 1 :
x4 = = atan2(xz , yz )
x5 = = acos zz
x6 = = atan2(xz , zy )
si zz = 1 :
x5 = (1 zz )/2
x6 + zz x6 = atan2(yx , xx )
3.3
3.3.1
3.3.2
Calcul
23
le cas o`u n = 6, lexistence dun poignet spherique permet de debuter la resolution par
linversion du syst`eme 3.3, soit :
px = x1 an xx rn+1 zx ,
py = x2 an xy rn+1 zy ,
pz = x3 an xz rn+1 zz .
On resout ensuite le syst`eme dequations non-lineaires que constitue le MGD, pour exprimer les qi , pour i = 1, 2, . . . , n en fonction de px , py , pz et des cosinus directeurs.
3.3.3
3.4
3.4.1
Exemple : voir TD
(3.5)
f
.
q
3.4.2
Calcul
Le calcul du MCD, dans le cadre generique, ne sera pas vu dans ce cours. On remarquera simplement que pour des structures simples le MCD peut e tre obtenu par simple
derivation du MGD. Ceci nest e videmment plus valable pour des structures possedant
plus de quatre liaisons.
3.4.3
Annexe A
Modelisation dun bras manipulateur
de type SCARE
A.1
A cause de leur cinematique, ces robots sont bien adaptes a` tous les travaux de manipulation de palettes, de botes ou de cartouches, ou plus generalement dobjets devant
e tre saisis et deplaces soit parall`element, soit perpendiculairement a` lhorizontale. On
les rencontre notamment sur des chanes de production (voir figure A.2).
A.2
25
A.2.1
Geometrie du robot
Espace de travail
On sinteresse tout dabord a` lespace de travail du robot. En labsence dobstacles
particuliers, le premier axe vertical, les butees articulaires du robot et bien e videmment
la longueur des differents axes constituent les seules limitations de lespace de travail
du robot.
1. Relever les valeurs des butees articulaires du robot.
2. Le robot e tant symetrique, ses butees ont e te placees en respectant cette symetrie.
Representer en vue de dessus (et en grand) les positions limites du robot, lorsque
celui-ci est en butee sur les articulations 1 et 2. Il est conseille de respecter une
e chelle coherente.
3. Sur cette meme figure, dessiner lenveloppe de lespace de travail, dans un plan
horizontal donne (les articulations 3 et 4 ne sont pas actionnees). Cela se fera
aisement a` laide dun compas et dun rapporteur (`a defaut, essayer detre realiste).
4. Donner les points particuliers de cette enveloppe.
5. Quelle est la dimension de lespace operationnel du robot ? Toutes les articulations
influent-elles de mani`ere identique sur la position de lorgane terminal ? Dapr`es
ces remarques, representer sur un schema en perspective lallure du volume de
travail du robot, pour une orientation quelconque de son organe terminal.
6. Pour e viter la collision de lorgane terminal avec le premier corps vertical, lorgane terminal ne peut sapprocher a` moins de 155 mm cet de laxe de ce corps.
Verifier que cette condition est remplie. On se rememorera pour cela lantique
theor`eme dAl Kashi.
26
2. Placer les rep`eres R0 a` R5 sur le schema, en respectant les conventions de parametrage vues en cours (param`etres de Denavit-Hartenberg modifies).
3. Rassembler dans un tableau les param`etres de Denavit-Hartenberg modifies :
ai1 , i1 , ri , i , dont on rappellera bri`evement la definition. On ajoutera a` ce
tableau une ligne donnant la valeur des param`etres de configuration, notes qi , dans
la configuration du schema cinematique.
4. Relever les valeurs numeriques de ces param`etres. On continuera neanmoins les
calculs en conservant les notations symboliques. Les valeurs numeriques seront
utilises a` des fins de verification.
Mod`ele geometrique direct
1. Rappeler la definition du mod`ele geometrique direct. On notera q la configuration
du robot et x sa situation. Quelle sont les dimensions respectives de q et x ? Quel
est le degre de liberte de lorgane terminal du robot ?
2. Rappeler la formulation generale de la matrice de passage Ti1, i dun rep`ere Ri1
a` un rep`ere Ri , dans le cas o`u lon respecte la convention des param`etres de
Denavit-Hartenberg modifies.
3. Calculer les matrices de passage successives du robot Ti1, i , pour i = 0, 1, . . . , 5.
On notera Ci = cos qi , Si = sin qi , Ci+j = cos qi+j et Si+j = sin qi+j , . . .
4. Multiplier les matrices de passage entre elles (dans le bon ordre) pour obtenir
le mod`ele geometrique direct du robot. On prendra l`a encore soin de respecter
les recommandations du cours concernant la methode de calcul. En particulier,
on introduira des variables intermediaires notees D1 , D2 , . . ., a` chaque nouvelle
addition ou multiplication entre variables dej`a definies.
5. Verifier le mod`ele obtenu dans au moins deux configurations : la configuration du
schema cinematique et une configuration plus quelconque, par exemple correspondant a` un des points particuliers releves sur lenveloppe de lespace de travail.
6. Donner lorientation de lorgane terminal exprimee par les angles dEuler. Est-ce
la representation de lorientation de lorgane terminal adaptee au robot e tudie ?
Proposer une alternative.
Mod`ele geometrique inverse
1. Rappeler la definition du mod`ele geometrique inverse. Dapr`es la premi`ere question de la section A.2.1, que peut-on dire sur le nombre de solutions admises par
ce mod`ele ?
2. Calculer le mod`ele geometrique inverse du robot.
Mod`ele cinematique direct
1. Rappeler la definition du mod`ele cinematique direct du robot et de sa matrice
jacobienne, notee J(q).
27
Bibliographie
[Craig 89]
[Gorla 01]
[Khalil 86]
[Khalil 99]
[Khatib 86]
[Renaud 86] M. Renaud. Comment definir lorientation dun corps ? Rapport technique 86159, LAASCNRS, 1986.
[Renaud 96] M. Renaud. Calcul analytique iteratif des mod`eles dun robot manipulateur. Rapport technique 86159, LAASCNRS, 1996.