Ecole supérieure des Sciences Appliquées
Exercices de Robotique
Exercice 1. Trouver la matrice de rotation correspondant à l’ensemble des angles d’Euler ZXZ
Solution 1. La composition des rotations par rapport au repère courant donne :
R(φ) = Rz (ϕ)Rx0 (θ)Rz00 (ψ)
avec :
cϕ −sϕ 0 1 0 0
Rz (ϕ) = sϕ cϕ Rz0 (θ) = 0 cθ −sθ
0 0 1 0 sθ cθ
cψ −sψ 0
Rz00 = sψ cψ 0
0 0 1
Le produit donne
cϕ cψ − sϕ cθ sψ −cϕ sψ − sϕ cθ cψ sϕ sθ
R(φ) = sϕ cψ + cϕ cθ sψ −sϕ sψ + cϕ cθ cψ −cϕ sθ
sθ sψ sθ cψ cθ
Exercice 2. Discuter la solution inverse pour les angles d’Euler ZYZ dans le cas sin ϑ = 0
Solution 2. Si sin ϑ = 0 c’est à dire ϑ = 0 ou ϑ = π, la matrice de rotation donnée dans le cours devient
dans le premier cas (ϑ = 0)
cϕ+ψ −sϕ+ψ 0
R(φ) = sϕ+ψ cϕ+ψ 0
0 0 1
si ϑ = π on a :
−cϕ−ψ −sϕ−ψ 0
R(φ) = −sϕ−ψ cϕ−ψ 0
0 0 −1
A parir des éléments (1, 2) et (2, 2) on ne peut calculer que la somme ou la différence entre les angles ϕ
et ψ soit,
ϕ ± ψ = Atan2(−r12 , r22 )
Le signe + correspond à ϑ = 0 et le signe − correspond à ϑ = π
Exercice 3. Vérifier que la matrice de rotation autour d’un axe arbitraire est donnée par la formule du
cours.
Solution 3. La matrice de rotation est obtenue comme dans le cours par :
R(θ, r) = Rz (α)Ry (β)Rz (θ)Ry (−β)Rz (−α)
1
avec
cα −sα 0 cβ 0 sβ
Rz (α) = sα cα 0 Ry (β) = 0 1 0
0 0 1 −sβ 0 cβ
cθ −sθ 0
Rz (θ) = sθ cθ 0
0 0 1
cα cβ −sα cα sβ
Rz (α)Ry (β) = sα cβ cα sα sβ
−sβ 0 cβ
et
cα cβ cθ − sα sθ −cα cβ cθ − sα cθ cα sβ
Rz (α)Ry (β)Rz (θ) = sα cβ cθ + cα sθ −sα cβ sθ + cα cθ sα sβ
−sβ cθ sβ sθ cβ
En remarquant que
Ry (−β)Rz (−α) = (Rz (α)Ry (β))T
on obtient
(s2α + c2α c2β )cθ + c2α s2β sα cα s2β (1 − cθ ) − cβ sθ
cα sβ cβ (1 − cθ ) + sα sβ sθ
R(θ, r) = sα cα s2β (1 − cθ ) + cβ sθ (s2α c2β + c2α )cθ + s2α s2β sα sβ cβ (1 − cθ ) − cα sβ sθ
cα sβ cβ (1 − cθ ) − sα sβ sθ sα sβ cβ (1 − cθ ) + cα sβ sθ s2β cθ + c2β
en utilisant les relations :
ry rx
sα = q cα = q
+ rx2 ry2 rx + ry2
2
q
sβ = rx2 + ry2 cβ = rz
rx2 + ry2 + rz2 = 1
On peut aussi déduire les identités suivantes :
s2α + c2α c2β = 1 − rx2
s2α c2β + c2α = 1 − ry2
c2α s2β = rx2
A l’aide de toutes ces identités on retrouve la formule du cours :
rx2 (1 − cθ) + cθ
rx ry (1 − cθ) − rz sθ rx rz (1 − cθ) + ry sθ
Rr (θ) = rx ry (1 − cθ) + rz sθ
ry2 (1 − cθ) + cθ ry rz (1 − cθ) − rx sθ
rx rz (1 − cθ) − ry sθ ry rz (1 − cθ) + rx sθ rz2 (1 − cθ) + cθ
Exercice 4. Montrer que l’angle et le vecteur unitaire de l’axe équivalent sont donnés par les formules
du cours. Trouver la formule inverse dans le cas où sin θ = 0
Solution 4. A partir de la solution de l’exercice précd́ent et de l’expression de R(θ, r) on a (somme des
éléments diagonaux) :
r11 + r22 + r33 = 1 + 2 cos θ
d’où :
r11 + r22 + r33 − 1
θ = arccos
2
2
on a aussi :
r32 − r23 = 2rx sin θ
r13 − r31 = 2ry sin θ
r21 − r12 = 2rz sin θ
d’où
r − r23
1 32
r= r13 − r31
2 sin θ
r21 − r12
Dans le cas sin θ = 0, si r11 + r22 + r33 = 3 alors θ = 0 cela veut dire qu’il n’y a pas de rotation et r est
arbitraire. Si r11 + r22 + r33 = −1, alors θ = π et l’expression de la matrice de rotation devient :
2
2rx − 1 2rx ry 2rx rz
R(π, r) = 2rx ry 2ry2 − 1 2ry rz
2rx rz 2ry rz 2rz2 − 1
Pour calculer les trois composantes du vecteur unitaire r, il suffit de considérer une des trois colonnes de
la matrice de rotation par exemple la première colonne donne :
r
r11 + 1
rx = ±
2
r12
ry =
2rx
r13
rz =
2rx
Exercice 5. Montrer que si 0
o01
R
A01 = T1
0 1
alors 0T
−R10T o01
1
−R01 o01
R1 R
A10 = = T0
OT 1 0 1
Solution 5. La matrice 0
o01
R1
A01 =
0T 1
peut être inversée en utilisant la formule d’inversion des matrices partitionnées par blocs :
−1 −1
−A−1 DB −1
A D A
=
0 B 0 B −1
et
(R10 )−1 = R10T = R01
et donc 0T
−R10T o01
1
−R01 o01
R1 R
A10 = = T0
0T 1 0 1
Exercice 6. Trouver le modèle géométrique direct du bras cylindrique (RPP) ci dessous.
3
Figure 1 – Robot cylindrique
Solution 6. Les paramètres de Denavit Hartenberg associés sont :
axes ai αi di θi
1 0 0 0 θ1
2 0 −π/2 d2 0
3 0 0 d3 0
Les transformations homogènes pour les 3 axes sont :
c1 −s1 0 0 1 0 0 0
s 1 c1 0 0 A12 (d2 ) = 0 0 1 0
A01 (θ1 ) =
0 0 1 0 0 −1 0 d2
0 0 0 1 0 0 0 1
1 0 0 0
0 1 0 0
A23 (d3 ) =
0 0 1 d3
0 0 0 1
4
et donc le modèle géométrique direct est donné par :
c1 0 −s1 −d3 s1
s 1 0 c1 d 3 c1
T30 (q) = A01 A12 A23 =
0 −1 0 d2
0 0 0 1
T
où q = θ1 d2 d3
Exercice 7. Trouver le modèle géométrique direct du bras SCARA ci dessous.
Figure 2 – Robot Scara
Solution 7. Avec le choix des repères indiqués sur la figure, les paramètres de Denavit Hartenberg sont
donnés par :
axes ai αi di θi
1 a1 0 0 θ1
2 a2 0 0 θ2
3 0 0 d3 0
4 0 0 0 θ4
5
Les matrices de transformations homogènes sont données par :
ci −si 0 ai ci
si ci 0 ai si
Ai−1
i (θi ) =
0
i = 1, 2
0 1 0
0 0 0 1
1 0 0 0 c4 −s4 0 0
2
0 1 0 0 3
s4 c4 0 0
A3 (d3 ) =
0
A4 (θ4 ) =
0 1 d3 0 0 1 0
0 0 0 1 0 0 0 1
Le modèle géométrique direct est donc donné par :
c124 −s124 0 a1 c1 + a2 c12
0 0 1 2 3
s124 c124 0 a1 s1 + a2 s12
T4 (q) = A1 A2 A3 A4 =
0 0 1 d3
0 0 0 1
Exercice 8. Trouver le modèle géométrique inverse pour le robot cylindrique
Solution 8. A partir du modèle géométrique direct de l’exercice, la position de l’effecteur est donnée
par :
px = −d3 s1
py = d3 c1
pz = d2
la première variable articulaire peut être calculée comme suit :
θ1 = Atan2(−px , py )
et q
d3 = p2x + p2y
finalement
d2 = pz
Exercice 9. Pour un robot plan à deux axes (a1 = 0.5m et a2 = 0.6m dessiner l’espace atteignable.
L’espace atteignable est l’anneau contenu entre les cercles concentriques de rayons a1 et a1 + a2
Exercice 10. Soit
0 −ωz ωy
S(ω) = ωz 0 −ωx
−ωy ωx 0
et R une matrice de rotation.
Montrer que
RS(ω)RT = S(Rω)
6
Solution 9. Soit T
R= x y z
où, le triplet (x, y, z) forme un trièdre [Link] :
T
x
RS(ω)RT = y T S(ω) x y z
zT
T
x S(ω)x xT S(ω)y xT S(ω)z
= y T S(ω)x y T S(ω)y y T S(ω)z
z T S(ω)x z T S(ω)y z T S(ω)z
T
x (ω × x) xT (ω × y) xT (ω × z)
= y T (ω × x) y T (ω × y) y T (ω × z)
z T (ω × x) z T (ω × y) z T (ω × z)
A cause des propriètés du produit mixte (scalaire et vectoriel), cette matrice est antisymetrique, et donc :
0 0
0 −ωz ωy
0 0 0
RS(ω)RT = S(ω ) = ωz 0 −ωx
0 0
−ωy ωx 0
où 0
ωx = z T (ω × y) = ω T (y × z) = ω T x
0
ωy = xT (ω × z) = ω T (z × x) = ω T y
0
ωz = y T (ω × x) = ω T (x × y) = ω T z
Donc :
0 0 0 0 T
ω = ωx ωy ωz
T
= ωT x y z
= Rω
En utilisant le résultat montré plus haut, on a
0
RS(ω)RT = S(ω ) = S(Rω)
Exercice 11. Calculer le Jacobien du robot cylindrique
Solution 10. Le bras cylindrique est du type RPP, donc, le Jacobien géométrique est donné par :
z × (p − p0 ) z1 z2
J(q) = 0
z0 0 0
où les divers vecteurs sont calculés à partir du modèle géométrique direct.
0 −d3 s1 0 −s1
p0 = 0 p = d3 c1 z0 = z1 = 0 z2 = c1
0 d2 1 0
d’où
−d3 c1 0 −s1
−d3 s1 0 1
0 1 0
J =
0
0 0
0 0 0
1 0 0
Ce qui montre clairement qu’il est impossible de tourner l’effecteur autour des axes x et y.
7
Exercice 12. Calculer le Jacobien du robot SCARA
Solution 11. Le robot SCARA est du type RRPR, donc, son Jacobien géométrique est donné par :
z0 × (p − p0 ) z1 × (p − p1 ) z2 z3 × (p − p3 )
J(q) =
z0 z1 0 z3
Les divers vecteurs sont donnés par :
0 a1 c1 a1 c1 + a2 c12 a1 c1 + a2 c12
P0 = 0 p1 = a1 s1 p3 = a1 s1 + a2 s12 p = a1 s1 + a2 s12
0 0 d3 d3
0
z0 = z1 = z2 = z3 = 0
1
Le Jacobien est donc :
−a1 s1 − a2 s12 −a2 s12 0 0
a1 c1 + a2 c12 a2 c12 0 0
0 0 1 0
J =
0 0 0 0
0 0 0 0
1 1 0 1
Ce qui montre qu’il est impossible de tourner autour des axes x et y. Donc, si on est intéressé par un
espace opérationnnel de dimension 4 (r = 4), alors le Jacobien analytique (4 × 4) peut être extrait de J
en éliminant les lignes 4 et 5, c’est à dire :
−a1 s1 − a2 s12 −a2 s12 0 0
a1 c1 + a2 c12 a2 c12 0 0
JA =
0 0 1 0
1 1 0 1
Exercice 13. On considère le robot plan PRP avec 3 axes comme indiqué sur la figure. Les repères de
base RFw = (xw , yw , zw ) (w pour world)et de l’effecteur RFe = (xe , ye , ze ) (e pour effecteur) sont indiqués
sur la figure.
8
1) Assigner des repères aux différents axes selon la convention DH et trouver les paramètres de DH.
2) Trouver le modèle géométrique de ce robot.
3) Trouver les transformations T30 et Tew .
4) Calculer le Jacobien analytique J(q) pour une tâche impliquant uniquement la position de l’effecteur
dans le plan du mouvement et analyser ses configurations singulières
Solution 12. On reprend le schéma
1)
axes ai αi di ϑi
1 0 π/2 q1 0
2 0 π/2 0 q2
3 0 0 q3 0
2) Le modèle géométrique du robot est :
cos q2 0 sin q2 q3 sin q2
0 −1 0 0
T30 (q) = A01 (q1 )A12 (q2 )A23 (q3 ) =
sin q2 0 − cos q2 q1 − q3 cos q2
0 0 0 1
3)
1 0 0 0 0 1 0 0 sin q2 cos q2 0 q3 sin q2
0 0 1 0 0 0 1 0 −
cos q2 sin q2 0 q1 − q3 cos q2
Tew (q) = T0w T30 Te3 = T 0 (q)
1 0 0 0 = 0
0 −1 0 0 3 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1
w
Re (q) Pew (q)
=
0T 1
(
On constate que la matrice de rotation Re q) à la forme d’une matrice de rotation élémentaire d’un
angle φ = q2 − π/2 autour de l’axe zw ; en effet :
cos(q2 − π2 ) − sin(q2 − π2 )
cos φ − sin φ 0 0 sin q2 cos q2 0
sin φ cos φ 0 = sin(q2 − π ) cos(q2 − π ) 0 = − cos q2 sin q2 0
2 2
0 0 1 0 0 1 0 0 1
— Pour la tâche impliquant uniquement la position de l’effecteur dans le plan, on a
w
p q3 sin q2
r1 = f 1(q) = xw =
py q1 − q3 sin q2
9
Le Jacobien analytique (2 × 3) est alors :
∂f1 (q) 0 q3 cos q2 sin q2
J1 (q) = =
∂q 1 q3 sin q2 − cos q2
Le rang de la matrice J1 (q) chute si et seulement si sin q2 = 0 et q3 = 0 c’est à dire quand le
troisième axe du robot est orienté le long de la direction verticale et la troisième articulation est
complètement rétractée, dans cette configuration le Jacobien devient :
0 0 0
J1 (q0) =
1 0 ±1
10