Introduction à la Robotique
Introduction à la Robotique
Introduction à la Robotique
3.4.2 Calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.3 Intérêt et exemple : voir TP (si le temps le permet) . . . . . . . 23
Bibliographie 29
Chapitre 1
1.1.1 Points
Soit un repère orthonormé cartésien noté R = (O, x, y, z) selon la convention de
Gibbs. La position d’un point M est donnée par un triplet de coordonnées. On choisit
par commodité de représenter ces coordonnées par un vecteur m de R3 , sous la forme
d’une matrice colonne :
mx
m = my .
mz
Le mouvement du point est la courbe paramétrée m(t) de R3 donnant sa position au
cours du temps. Le support du mouvement (la courbe non paramétrée) est la trajectoire
du point.
1.1.2 Solides
Un solide S est dit indéformable si, pour toute paire de points de ce solide de coor-
données m et n , ||m(t) − n(t)|| = ||m(0) − n(0)|| = constante au cours du temps. Par
la suite, les solides seront tous considérés comme indéformables.
Le mouvement rigide d’un solide S, considéré comme un sous-ensemble de R3 est
le mouvement de chacun de ses points.
1.2. Rotations 2
La situation d’un solide S est donnée par la position et l’orientation dans R d’un
repère lié à ce solide.
1.2 Rotations
1.2.1 Matrice de rotation
Soit deux repères orthonormés directs R = (O, x, y, z) et R0 = (O, x0 , y 0 , z 0 )
partageant la même origine O. Soit x0 , y 0 , z 0 les coordonnées des vecteurs de la base R0
exprimés dans R :
0 0 0
x .x y .x z .x
0 0 0
x = x .y , y = y .y et z = z 0 .y .
0 0
x0 .z y 0 .z z 0 .z
z0 z
y0
O
y
x
M x0
m0z
c’est-à-dire :
m = Rm0 . (1.1)
Cette relation rend compte du changement de base des coordonnées d’un point. On
peut en faire une analyse en terme de rotation si l’on considère que M est un point
d’un solide S (en pointillés sur la figure 1.2) ayant effectué, autour de O, une rotation
de matrice R. Alors m0 représentent les coordonnées initiales de M dans R et m ses
coordonnées finales, toujours dans R, une fois la rotation effectuée.
z0 z
y0
O
y
x x0
M
1.2.3 Exemple
√
On considère la rotation d’un point M de coordonnées initiales ( 3 0 1)T dans R,
comme cela est représenté à la figure 1.3 page suivante. On cherche à déterminer les
coordonnées du point transformé par une rotation de centre O et d’angle θ, autour de z.
Les coordonnées des vecteurs de base de R0 dans R sont :
cos θ − sin θ 0
x0 = sin θ , y 0 = cos θ et z 0 = 0
0 0 1
1.2. Rotations 4
y
x0
y0
θ
O z = z0 x
Premier cas Ce cas peut être analysé comme un problème de changement de base.
Soit M de coordonnées respectives m, m0 , m00 dans les repères R, R0 et R00 . Alors :
m = R1 m 0
m0 = R2 m00
et donc :
m = R1 R2 m00 .
Comme nous l’avons vu précédemment, les coordonnées m de M dans R sont aussi
les coordonnées d’un point de coordonnées m00 dans R auquel on aurait appliqué les
1
Les matrices identités, quel que soit leur ordre sont notées I.
1.2. Rotations 6
deux rotations successives. Par exemple considérons la combinaison des deux rotations
suivantes :
– une première rotation d’un angle π4 autour de z ;
– une seconde rotation d’un angle π autour de l’axe y 0 résultant de la première
rotation.
Ceci correspond à l’illustration de la figure 1.4. On considère le point de coordonnées
z z0
π
M y0
x00
O
x0
x
π
4
z 00
Second cas Ce cas peut être analysé comme un problème de rotations successives d’un
point. La transformation d’un point de coordonnées initiales m00 dans R donne un point
intermédiaire, qui, transformé par la seconde rotation donne un point de coordonnées m
dans R par R2 . Ainsi :
m = R2 (R1 m00 ).
1.2. Rotations 7
z z0
M
O x00
y
x0
x
π
4
z 00
Les éléments de cette matrice sont appelés cosinus directeurs car ils représentent les co-
ordonnées des trois vecteurs de la base R0 exprimés dans R. Par définition, les colonnes
de R sont orthogonales entre elles et par conséquent 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ètres restant sont appelés cosinus directeurs incomplets. Par ailleurs les
colonnes de R formant une base orthonormée :
– les deux colonnes restantes sont orthogonales et donc :
xx zx + xy zy + xz zz = 0 ;
Il existe donc six paramètres liés entre eux par trois relations si l’on définit l’orientation
d’un solide par une matrice de rotation. Malheureusement, les relations liant les cosinus
directeurs incomplets ne permettent pas de fournir trois paramètres uniques, mais une
collection de solutions : il faut donc conserver ces six paramètres ou utiliser un autre
mode de représentation de l’orientation.
z zψ
zθ zϕ
ψ yθ yϕ
yψ ϕ
y
θ
x xψ xθ xϕ
ψ = atan2(zx , −zy ),
θ = acos zz ,
ϕ = atan2(xz , yz ).
• si zz = ±1 :
θ = π(1 − zz )/2,
ψ + zz ϕ = atan2(yx , xx ),
et donc ψ et ϕ sont indéterminés.
z
α
γ y
β
x
F IG . 1.7 – Rotations successives dans le paramétrage par les angles de roulis, tangage
et lacet
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 d’établir les angles de roulis, tangage et lacet à 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 ) équivalent . . . normalement),
et donc α et γ sont indéterminés.
z0
z
y0
O0
p
O x0
y
M
x
repère lié au solide S en mouvement (voir figure 1.8). L’ensemble des transformations
rigides :
SE(3) = {(p, R)/p ∈ R3 , R ∈ SO(3)} = R3 × SO(3)
est appelé groupe spécial euclidien.
Soient m = (mx my mz )T et m0 = (m0x m0y m0z )T les coordonnées d’un point M
respectivement dans R et R0 . La transformation rigide résultant de la translation p du
repère R puis de la rotation du repère obtenu vers R0 , il en découle que :
m = p + Rm0 (1.2)
Ceci peut se mettre sous forme linéaire en introduisant les coordonnées homogènes
du point M qui sont représentées par un vecteur de dimension 4 × 1 :
0
mx mx
m0y
0
my m 0 m
dans R0 .
m̄ = =
dans R et m̄ = 0 =
mz 1 mz 1
1 1
Alors :
R1 R2 R1 p 2 + p 1
T1 T2 = , (1.4)
0 1
ce qui implique que la combinaison de deux transformations rigides est bien une
transformation rigide.
2. La matrice identité d’ordre 4 est la transformation rigide identité.
3. D’après le produit (1.4) l’inverse d’une transformation rigide (p, R) est représentée
par : T
−1 R −RT p
T = .
0 1
Il s’agit donc de la transformation rigide (−RT p, RT ).
Chapitre 2
bâti
(corps C0 ) liaison liaison liaison liaison liaison
L1 L2 L3 Ln−1 Ln
On désigne fréquemment les bras manipulateurs en acollant les lettres R (pour rotoı̈de)
et P (pour prismatique) pour décrire la succession des liaisons. Par exemple un bras
manipulateur de type anthropomorphe sera désigné par le sigle 6R alors qu’un bras ma-
nipulateur de type SCARA sera de type RRP ou RRP R (il existe plusieurs variantes).
αi−1 zi
xi
Oi
zi z i−1
ri
Oi−1 xi−1 zi
ai−1 xi
Ωi−1
θi
xi−1
axe liaison
axe liaison
Li−1
Li
le centre de ses mors. On choisit alors enfin Rn de sorte que le point On+1 se situe dans
le plan Ri = (On , xn , z n ), conformément à la figure 2.4.
rn+1
zn
On+1
z
On
xn
O
y an
Les repères étant choisis, la situation du repère d’un corps respectivement à celle du
repère du corps suivant peut être définie conformément à la figure 2.3. Les paramètres
αi−1 , ai−1 , θi et ri , avec i = 1, 2, . . . , n, placés sur cette figure sont appelés paramètres
de Denavit-Hartenberg modifiés. Textuellement, on peut les définir comme suit :
– αi−1 : angle algébrique entre z i−1 et z i , mesuré autour de xi−1 ;
– ai−1 : distance arithmétique de la perpendiculaire commune aux axes des liaisons
Li−1 et Li mesurée le long de xi−1 ;
2.2. Paramètres de Denavit-Hartenberg modifiés 16
a2 r4 r7
z0 , z1 x3 x4 , x 5 , x 6
z4 , z6 Organe terminal
x0 , x 1 , x 2
O7
O0 , O 1 , O 2 O3 O4 , O 5 , O 6
z2 z3 z5
articulation i 1 2 3 4 5 6
σi 0 0 0 0 0 0
π π π π
αi−1 0 0 −
2 2 2 2
ai−1 0 0 a2 0 0 0
θi q1 q2 q3 q4 q5 q6
ri 0 0 0 r4 0 0
soit :
cos θi − sin θi 0 ai−1
cos αi−1 sin θi cos αi−1 cos θi − sin αi−1 −ri sin αi−1
Ti−1, i =
sin αi−1 sin θi sin αi−1 cos θi cos αi−1
(2.1)
ri cos αi−1
0 0 0 1
f : N −→ M
(3.1)
q 7−→ x = f (q).
1
Autrement dit ses coordonnées opérationnelles en fonction de ses coordonnées généralisées.
3.2. Modèle géométrique direct 19
3.2.2 Calcul
Le calcul du MGD consiste donc à exprimer la position du point On+1 et l’orientation
du repère Rn lié à l’OT, en fonction de sa configuration. Il faut pour cela multiplier les
matrices de passage homogènes successives reliant le repère R0 lié au bâti au repère Rn
lié à l’OT :
T0,n (q) = T0,1 (q1 ) T1,2 (q2 ) . . . Tn−1,n (qn ). (3.2)
La matrice :
R0,n p0,n
T0,n =
0 1
permet donc de connaı̂tre l’orientation de l’OT dans le repère de base et la position
p0,n = (px py pz )T du point On . Comme précédemment, on note :
xx yx zx
R0,n = xy yy zy
xz yz zz
et l’on rappelle qu’il suffit de connaı̂tre les première et troisième colonne de cette
matrice pour définir de manière unique l’orientation du repère terminal. La position
(x1 x2 x3 )T du point On+1 se déduit alors facilement, compte tenu des coordonnées
(an 0 rn+1 )T de On+1 dans Rn :
x1 = px + an xx + rn+1 zx ,
x2 = py + an xy + rn+1 zy , (3.3)
x3 = pz + an xz + rn+1 zz .
Si = sin qi
Ci = cos qi
Si+j = sin (qi + qj )
Ci+j = cos (qi + qj )
...
Par ailleurs à chaque nouvelle opération effectuée on définit une variable in-
termédiaire qui permet de n’effectuer qu’une fois un produit ou une addition sur-
venant à de nombreuses reprises ;
3.2. Modèle géométrique direct 20
– si l’on mène le calcul en effectuant le produit (3.2) à rebours (de droite à gauche)
on peut s’abstenir de calculer la seconde colonne des différentes matrices. En
effet, si l’on considère le produit de deux matrices de passage homogènes A et B,
avec B possédant une seconde colonne indéterminée donne :
a11 a12 a13 0 b11 ∗ b13 0 a11 b11 + a12 b21 + a13 b31 ∗ a11 b13 + a12 b23 + a13 b33 0
a21 a22 a23
0 b21
∗ b23 0=
a21 b11 + a22 b21 + a23 b31
∗ a21 b13 + a22 b23 + a23 b33 0.
a31 a32 a33 0 b31 ∗ b33 0 a31 b11 + a32 b21 + a33 b31 ∗ a31 b13 + a32 b23 + a33 b33 0
0 0 0 1 0 0 0 1 0 0 0 1
3.2.4 Exemple
On traite ici le cas du bras manipulateur de type 6R dont le paramétrage a été établi
précédemment à la figure 2.5 page 16. On calcule tout d’abord les matrices de passage
homogènes successives. D’après ( 2.1 page 17), on obtient :
C1 −S1 0 0 C2 −S2 0 0
S1 C1 0 0 0 0 −1 0
T0, 1 = 0
T1, 2 =
0 1 0 S2 C2 0 0
0 0 0 1 0 0 0 1
C3 −S3 0 a2 C4 −S4 0 0
S3 C3 0 0 0 0 −1 −r4
T2, 3 =
0
T3, 4 =
0 1 0 S4 C4 0 0
0 0 0 1 0 0 0 1
C5 −S5 0 0 C6 −S6 0 0
0 0 1 0 0 0 −1 0
T4, 5 =
−S5 −C5
T5, 6 =
0 0 S6 C6 0 0
0 0 0 1 0 0 0 1
3.2. Modèle géométrique direct 21
La multiplication des matrices, selon les règles précédemment énoncées fait apparaı̂tre
les variables auxiliaires suivantes :
D1 = a2 C2
D2 = a2 S 2
D3 = C5 C6
D4 = −S5 C6
D5 = C4 D3 − S4 S6
D6 = C4 S5
D7 = S4 D3 + C4 S6
D8 = S 4 S5
D9 = C2+3 D5 + S2+3 D4
D10 = C2+3 D6 + S2+3 C5
D11 = r4 S2+3 + D1
px = C1 D11
py = S1 D11
pz = −r4 C2+3 + D2
xx = C1 D9 + S1 D7
xy = S1 D9 − C1 D7
xz = S2+3 D5 − C2+3 D4
zx = C1 D10 + S1 D8
zy = S1 D10 − C1 D8
zz = S2+3 D6 − C2+3 C5
yx = zy xz − zz xy
yz = zx xy − zy xx
x1 = px + r7 zx
x2 = py + r7 zy
x3 = pz + r7 zz
x4 = xx
x5 = xy
x6 = xz
x7 = zx
x8 = zy
x9 = zz
• 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.2 Calcul
Il n’existe pas de méthode analytique systématique pour calculer le MGI. Le mieux
est de reprendre les équations du MGD, préalablement calculé et de mener le calcul à
l’envers. Le calcul se fait alors au cas par cas. Il est généralement aisé pour un bras
manipulateur à moins de six axes, comme les bras manipulateur de type SCARA. Dans
2
Il n’est pas toujours facile de savoir si c’est le cas.
3.4. Modèle cinématique direct 23
le cas où n = 6, l’existence d’un poignet sphérique permet de débuter la résolution par
l’inversion du système 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 résout ensuite le système d’équations non-linéaires que constitue le MGD, pour ex-
primer les qi , pour i = 1, 2, . . . , n en fonction de px , py , pz et des cosinus directeurs.
ẋ = J q̇, (3.5)
J : Tq N −→ Tx M
∂f
q̇ 7−→ ẋ = J q̇, où J = .
∂q
La matrice jacobienne représente l’application linéaire df entre les espaces Tq N et
Tx M, respectivement tangents à N en q et à M en x = f (q).
On peut alternativement définir le modèle différentiel direct (MDD) qui donne l’ac-
croissement infinitésimal dx de la situation en fonction d’un accroissement dq de la
configuration :
dx = Jdq.
3.4.2 Calcul
Le calcul du MCD, dans le cadre générique, ne sera pas vu dans ce cours. On remar-
quera simplement que pour des structures simples le MCD peut être obtenu par simple
dérivation du MGD. Ceci n’est évidemment plus valable pour des structures possédant
plus de quatre liaisons.
A cause de leur cinématique, ces robots sont bien adaptés à tous les travaux de ma-
nipulation de palettes, de boı̂tes ou de cartouches, ou plus généralement d’objets devant
être saisis et déplacés soit parallèlement, soit perpendiculairement à l’horizontale. On
les rencontre notamment sur des chaı̂nes de production (voir figure A.2).
A.2. Robot Samsung RSM-5 : modélisation 25
Paramétrage
1. Quelle précaution concernant la configuration du robot est préconisée dans le
cours pour placer les repères selon la convention de Denavit-Hartenberg ? Si nécessaire
refaire un schéma cinématique du robot dans une configuration adaptée.
A.2. Robot Samsung RSM-5 : modélisation 26