Mr Malik MALLEM
Modélisations géométrique
et cinématique de Robots
Février ENSIIE 2 Option Robotique et
2011 Réalité Virtuelle
M. Mallem 1
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
ENSIIE2
Option : Robotique & Réalité Virtuelle
Cours : Robotique (IRO)
« MODELISATIONS GEOMETRIQUE ET
CINEMATIQUE DE ROBOTS »
Avertissement : Certains transparents de ce document proviennent du cours de Florent Chavand, qu'il en soit
remercié.
Malik MALLEM
M. Mallem 2
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 3
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
1. Introduction
La Robotique
Définition :
Robot = bras manipulateur / base mobile / bras manipulateur monté sur 1 base mobile,
+ motorisation + système de perception + programmation et interface homme machine.
Un robot est conçu pour réaliser des tâches entièrement autonome ou sous le contrôle d'un
opérateur humain.
Types de robotiques :
M. Mallem 4
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Génie Informatique
5
Génie Mécanique Robotique
6 7 4
1 2 3 Génie Electrique
M. Mallem 5
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 6
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Modélisation de capteurs
Modelisation d'environnement Perception
Plan - Stratégie
Décision
Direct("Play Back")
Apprentissage
Indirect : poignet de commande
Boite à boutons
CAO
M. Mallem 7
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
5.1 Hypothèses
Le robot est considéré comme une succession de corps solides Ci reliés par des articulations Ai.
Une articulation (rotoïde/prismatique) est supposée parfaite (sans jeux, ni frottements).
C1 , C2 ,C3 représente la structure de base du robot dite le porteur .
C4 , C5 ,C6 représente la structure de terminale du robot dite le poignet auquel est attaché l'effecteur.
A1 , A2 ,A3 sont quelconques,
A4 , A5 ,A6 sont rotoïdes à axes concourants et perpendiculaires 2 à 2,
Nous étudierons les modèles des structures ouvertes series. Ceux-ci sont facilement extensibles aux cas des
chaînes arborescentes. Les modèles des chaînes fermées sont plus complexes.
M. Mallem 8
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
5.2 Définitions
Le calcul des modèles d'un robot manipulateur nécessite la définition d'un système de coordonnées articulaires
attaché aux articulations robot et d'un système de coordonnées opérationnelles attaché à la base du robot.
M. Mallem 9
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Le MGD permet d'effectuer un contrôle en absolu du robot. C'est la fonction f qui exprime la situation(X
:position+orientation) de l'effecteur en fonction de la configuration du robot(Q) :
Le calcul du MGD nécessite la détermination des matrices Ti-1,i de passage du repère Ri-1 au repère Ri (i=1..n).
Ces matrices sont dites homogènes et expriment simultanément la position(translation) et l'orientatio(rotation).
La position est exprimée par :
P = (x1 , x2 , x3 )t : coordonnées cartésiennes/cylindriques/sphériques
L'orientation est exprimée par :
ϕ= (x4 , x5 …xm )t : angles d'Euler/cosinus directeurs/…
Le calcul de la fonction f revient à determiner la matrice Ton de passage du repère de base du robot à celui de
l'effecteur.
Le MGI permet d'effectuer une commande en absolu de l'effecteur du robot. C'est la fonction f-1 , si elle existe,
qui exprime la configuration du robot(Q) en fonction de la situation(X :position+orientation) de l'effecteur:
Le calcul du MGI est obtenu à partir du MGD soit en inversant la matrice Ton soit en determinant, par
substitution , Q .
Le MDD permet d'effectuer un contrôle en relatif du robot. Il s'agit d'une linéarisation de la fonction f qui
exprime la situation(X :position+orientation) de l'effecteur en fonction de la configuration du robot(Q) :
∂f
J (Q) = (Q)
∂Q
∂f i
J ij (Q) = (Q) (i = 1..m ; j = 1..n)
∂q j
Il s'agit du calcul des dérivées partielles des éléments de la matrice Ton (cf. §5.3)
M. Mallem 10
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
- Contribution de la rotation:
dϕi = dqi. zi
⎛ ... zr r
... z j × o j on ...⎞⎟
⎜ i / Ro
J =⎜ r
/ Ro
⎟
⎜ ... 0 r
⎝ ... z j / Ro ...⎟⎠
M. Mallem 11
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Le MDI permet d'effectuer une commande en relatif de l'effecteur du robot. Il s'agit d'une linéarisation de la
fonction f-1 , si elle existe, qui exprime la configuration du robot(Q) en fonction de la situation(X
:position+orientation) de l'effecteur:
⎛A 0 3 x3 ⎞
J 6 x 6 = ⎜⎜ 3 x 3 ⎟
⎝ C 3 x3 D3 x 3 ⎟⎠
⎛ A −1 3 x 3 0 3x3 ⎞
J −1 6 x 6 = ⎜⎜ ⎟
−1 −1
⎝ − D 3 x3 C 3 x3 A 3 x3 D −1 3 x 3 ⎟⎠
M. Mallem 12
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Volume =
M. Mallem 13
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 14
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 15
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
6.2.2. Exemples
1.
IM = 2
Z
O
Y
X
IL = 1 IL = 2
2.
IM=3
IL = 2 IL = 3
Robot non Redondant
Robot localement Redondant
M. Mallem 16
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M
R
O y Y
θ2
x
θ1 L
- Cartésiennes : x, y, z
- Polaires : θ1, θ2, R
- Cylindriques : θ1, L, z
θ x, θ y, θ z
M. Mallem 17
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Z
L 2+ T 2
T1
z
Y
O y
L
x θ1
X
⎛ dx ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟
dX = J ( q ).dq ⇔ ⎜ dy ⎟ = ⎜ ⎟
⎜ dz ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠
⎛ dT1 ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟
dq = J (q ).dX ⇔ ⎜ dθ 1 ⎟ = ⎜
−1
⎟
⎜ dT ⎟ ⎜ ⎟
⎝ 2⎠ ⎝ ⎠
M. Mallem 18
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Z
l3
l2
θ3
θ2
l1 z
Y
O y
L
x θ1
X
⎛θ1 ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟
q = ⎜θ2 ⎟ = ⎜ ⎟
⎜θ ⎟ ⎜ ⎟
⎝ 3⎠ ⎝ ⎠
Notation :
cos(q i ) = cq i ; sin( q i ) = sq i
M. Mallem 19
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 20
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 21
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 22
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 23
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
M. Mallem 24
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
zi
zi-1 xi
αi
θi
ri
ai
xi-1
⎛1 0 0 ai ⎞ ⎛ cθ i − sθ i 0 0⎞
⎜ ⎟⎜ ⎟
⎜ 0 cα i − sα i − ri s α i ⎟ ⎜ s θ i cθ i 0 0⎟
T i − 1 ,i = ⎜ .
0 sα i cα i ri c α i ⎟ ⎜ 0 0 1 0⎟
⎜ ⎟⎜ ⎟
⎜0 ⎟ ⎜ 0 1 ⎟⎠
⎝ 0 0 1 ⎠⎝ 0 0
⎛ cθ i − sθ i 0 ai ⎞
⎜ ⎟
⎜ c α s θ c α c θ − s α − r s α i ⎟
= ⎜ i i i i i i
sα i sθ i sα icθ i cα i ri c α i ⎟
⎜ ⎟
⎜ ⎟
⎝ 0 0 0 1 ⎠
Règles de construction des repères associés aux articulations du robot :
. Considérer le robot dans une configuration initiale("zéro") qui simplifie les calculs(q=0)
. Tout axe zi doit être placé le long de l'articulation i .
. A chaque articulation i est associé un repère Ri dont l'emplacement doit être judicieusement choisi pour
simplifier les calculs.
M. Mallem 25
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisations géométrique et cinématique de robots
Z2 X4, X5, X6
Z3, Z4, Z6
Z0, Z1
O0, O1
X0, X1
Parmètre\ i 1 2 3 4 5 6
σi 0 1 1 0 0 0
αi 0 0 -π/2 0 -π/2 π/2
ai 0 0 0 0 0 0
θi q1 0 0 q4 q5 q6
ri 0 q2 q3 0 0 0
qi selon fig. 0 >0 >0 -π/2 0 0
q i = σ iθ i + σ i ri
σi = 0 (rotoïde) / σi=1 (prismatique) ;
⎛ c1 − s1 0 0⎞ ⎛1 0 0 0 ⎞ ⎛1 0 0 0 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜s c1 0 0⎟ ⎜ 0 1 0 0 ⎟ ⎜0 0 1 q3⎟
T 01 = ⎜ 1 ; T 12 = ⎜ ; T 23 = ⎜
0 0 1 0⎟ 0 0 1 q2 ⎟ 0 −1 0 0 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0 ⎟ ⎜ ⎟ ⎜ 1 ⎟⎠
⎝ 0 0 1⎠ ⎝0 0 0 1 ⎠ ⎝0 0 0
⎛c4 − s4 0 0⎞ ⎛ c5 − s5 0 0⎞ ⎛ c6 − s6 0 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜s c4 0 0⎟ ⎜ 0 0 1 0⎟ ⎜ 0 0 −1 0⎟
T 34 = ⎜ 4 ; T = ; T 56 =
0⎟ ⎜− s − c5 0 0⎟ ⎜s 0⎟
45
0 0 1 c6 0
⎜ ⎟ ⎜ 5
⎟ ⎜ 6 ⎟
⎜ 0 1 ⎟⎠ ⎜ 0 0 1 ⎟⎠ ⎜ 0 1 ⎟⎠
⎝ 0 0 ⎝ 0 ⎝ 0 0
cos(qi ) = ci ; sin(qi ) = si
M. Mallem 26
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Z0, Z1 X3
X4, X5, X6
X1, X2 Z4, Z6
O3 .
O0,O1,O O4, O5, O6 O7
X0, Z2 Z3 Z5
Paramètre\ i 1 2 3 4 5 6
σi
αi
ai
θi
ri
qi selon fig.
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
T 01 = ⎜ ⎟ ; T 12 = ⎜ ⎟ ; T 23 = ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ ⎞ ⎛ ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
T 34 = ⎜ ⎟ ; T 45 = ⎜ ⎟ ; T 56 = ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
M. Mallem 27
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
⎛ c1 − s1 0 0⎞ ⎛1 0 0 0 ⎞ ⎛1 0 0 0 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜s c1 0 0⎟ ⎜0 1 0 0 ⎟ ⎜0 0 1 q3⎟
T 01 = ⎜ 1 ⎟ ; T 12 = ⎜ ⎟ ; T 23 = ⎜
0 0 1 0 0 0 1 q2 0 −1 0 0 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0 ⎟ ⎜ ⎟ ⎜ 1 ⎟⎠
⎝ 0 0 1⎠ ⎝0 0 0 1 ⎠ ⎝0 0 0
⎛ c4 − s4 0 0⎞ ⎛ c5 − s5 0 0⎞ ⎛ c6 − s6 0 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜s c4 0 0⎟ ⎜ 0 0 1 0⎟ ⎜ 0 0 −1 0⎟
T 34 = ⎜ 4 ⎟ ; T 45 = ⎜ ; T 56 =
0 0 1 0 − s5 − c5 0 0⎟ ⎜ s6 c6 0 0⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 0 ⎟ ⎜ 0 1 ⎟⎠ ⎜ ⎟
⎝ 0 0 1⎠ ⎝ 0 0 ⎝ 0 0 0 1⎠
Poignet :
(xr 6 r r
)/ Ro
6
T 06 = ∏ T i − 1 , i = y6 z6 O6
i =1
⎛ px ⎞ ⎛ xx ⎞ ⎛ zx ⎞
⎜ ⎟ r ⎜ ⎟ r ⎜ ⎟
O 6 / Ro = ⎜ p y ⎟ et x6 = ⎜ x y ⎟; z 6 = ⎜zy ⎟
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎝ pz ⎠ ⎝ xz ⎠ ⎝ zz ⎠
Pince définie dans R 7 :
r r r r r
O 6 O 7 = r 7 z 6 et x 7 = x6 ; z7 = z6
⎛x ⎞ ⎛ p x + r7 z x ⎞
⎜ ⎟ ⎜ ⎟
O 7 / Ro = ⎜ y ⎟ = ⎜ p y + r7 z y ⎟
⎜z ⎟ ⎜⎜ ⎟⎟
⎝ ⎠ ⎝ p z + r7 z z ⎠
⎛ xx yx z x x ⎞
⎜ ⎟
r r r ⎜ xy yy z y y⎟
T07 = ( x7 y 7 z 7 O7 ) = ⎜
x yz zz z ⎟
⎜ z ⎟
⎜ 0 0 0 1⎟
⎝ ⎠
⎛ c1c 4 c5 c 6 − c1 s 4 s 6 + s1 s5 c6 − c1c 4 c5 s 6 − c1 s 4 c6 + s1 s 5 s 6 c1c 4 s 5 − s1c5 − s1 q3 + r7 z x ⎞
⎜ ⎟
⎜ s c c c − s s s − c s c − s1c 4 c5 s 6 − s1 s 4 c 6 − c1 s5 s 6 s1c 4 s5 + c1c5 c1 q3 + r7 z y ⎟
=⎜ 1 4 5 6 1 4 6 1 5 6
− s 4 c5 c 6 − c 4 s 6 s 4 c5 s 6 − c 4 c 6 − s 4 s5 q 2 + r7 z z ⎟
⎜ ⎟
⎜ ⎟
⎝ 0 0 0 1 ⎠
M. Mallem 28
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
⎛ dp x ⎞ ⎛ dq 1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ dp y ⎟ ⎜ dq ⎟
⎜ 2 ⎟
⎜ ⎟ ⎜ dq 3 ⎟
dp = J . dq ⇔ ⎜⎜
dp z ⎟
= J .⎜ ⎟
dϕ x ⎟ ⎜ dq 4 ⎟
⎜ ⎟ ⎜ ⎟
⎜ dϕ y ⎟
⎜ dq 5 ⎟
⎜⎜dϕ z ⎠
⎟
⎟ ⎜⎜ dq ⎟⎟
⎝ ⎝ 6 ⎠
⎛ zr × O O r
z
r
z
r
z × O O
r
z × O O
r
z × O O ⎞
J = ⎜⎜ r 1 1 6 r2 r2 r
4 4 6
r
5 5 6
r
6 6 6 ⎟
⎟⎟
⎜z 0 0 z z z
⎝ 1 4 5 6 ⎠
⎛0⎞
r r r ⎜ ⎟ r r
avec z 0 = z 1 = z 2 = ⎜ 0 ⎟ ; z 3 = z 4 ∀ q i et O 4 = O 5 = O 6
⎜1 ⎟
⎝ ⎠ / Ro
D ' où :
r r r
⎛ zr × O O r
z
r
z 0 0 0 ⎞⎟
J = ⎜⎜ r 0 0 6 r0 r3 r r r
⎜z 0 0 z z z ⎟⎟
⎝ 1 4 5 6 ⎠
⎛0 ⎞ ⎛ − s1 ⎞ ⎛ − c1 s 4 ⎞ ⎛zx ⎞ ⎛ p ⎞
r ⎜ ⎟ r ⎜ ⎟ r ⎜ ⎟ r ⎜ ⎟ ⎜ x
⎟
avec z 0 / Ro = ⎜ 0 ⎟ ; z 3 / Ro = ⎜ c 1 ⎜
⎟ ; z 5 / Ro = − s 1 s 4 ⎟ ; z 6 / Ro = ⎜ z y ⎟ et O 0 O = ⎜ p y ⎟
⎜ ⎟
6 / Ro
⎜1 ⎟ ⎜0 ⎟ ⎜− c4 ⎟ ⎜⎜ ⎟⎟ ⎜⎜ p ⎟⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝zz ⎠ ⎝ z ⎠
D ' où :
⎛− p 0 − s1 0 0 0 ⎞
⎜ y
⎟
⎜ px 0 c1 0 0 0 ⎟
⎜0 1 0 0 0 0 ⎟
J = ⎜ ⎟
⎜0 0 0 − s1 − c1 s 4 zx ⎟
⎜ ⎟
⎜0 0 0 c1 − s1 s 4 z y ⎟
⎜1 − c4 ⎟
⎝ 0 0 0 z z ⎠
Ainsi la différentielle de position du poignet est :
dp x = − p y dq1 − s1dq3 = −c1q3dq1 − s1dq3
dp y = p x dq1 + c1dq3 = − s1q3 dq1 + c1dq3
dp z = dq2
la différentielle d ' orientation du poignet est :
dϕ x = − s1dq4 − c1s4 dq5 + z x dq6 = − s1dq4 − c1s4 dq5 + (c1c4 s5 − s1c5 ) dq6
dϕ y = c1dq4 − s1s4 dq5 + z y dq6 = c1dq4 − s1s4 dq5 + ( s1c4 s5 + c1c5 ) dq6
dϕ z = dq1 − c4 dq5 + z z dq6 = dq1 − c4 dq5 − s4 s5 dq6
M. Mallem 29
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
⎛ dz = dϕ y zz − dϕ z z ⎞
r ⎜ x y
⎟
d z7 = d z 6 = d ϕ × z 6 = ⎜ dz = dϕ z zx − dϕ x zz ⎟
⎜ ⎟
y
⎜ dz = dϕ x z − d ϕ y z x ⎟⎠
⎝ z y
⎛ dx ⎞ ⎛ dp + a 7 x x + r7 z x ⎞
⎜ ⎟ ⎜ x
⎟
d ( O 0 O 7 ) = ⎜ dy ⎟ = ⎜ dp y + a 7 x y + r7 z y ⎟
⎜ dz ⎟ ⎜⎜ ⎟
⎝ ⎠ ⎝ dp z + a 7 x z + r 7 z z ⎟⎠
M. Mallem 30
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Calculer les coordonnées articulaires Q = (q1 , q2 …q6 )t, en fonction des coordonnées opérationnelles
X = (x , y ,z , xx , xy , xz , zx , zy , zz)t en utilisant le MGD calculé précédemment.
Æ q2 ?
Æ q3 ?
Æ q1 ?
M. Mallem 31
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Æ q5 ?
Æ q4 ?
Æ q6 ?
M. Mallem 32
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Calculer les différentielles des coordonnées articulaires dQ = (dq1 ,d q2 …dq6 )t, en fonction des différentielles
des coordonnées opérationnelles
dX = (dx ,d y ,dz , dxx ,dxy , dxz , dzx , dzy , dzz)t en utilisant le MDD calculé précédemment.
Æ dq2 ?
Æ dq3 ?
Æ dq1 ?
M. Mallem 33
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Æ dq5 ?
Æ dq6 ?
Æ dq4 ?
M. Mallem 34
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
M. Mallem 35
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Le robot SCARA (IBM), représenté ci-dessous, est constitué d’un porteur de type torique(RRR) et d’un poignet
à un degré de liberté. Ce robot est utilisé pour effectuer des tâches d’assemblage planaire.
Z0, Z1 Z2
Z3, Z4
X0, X1 X2 X3, X4
M. Mallem 36
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Niveau de commande
Tâche (Xe, Xf,…)
robot
ROBOT
(effecteur) Points de passage contraints
(Xe, … , Xe ,…, Xf)
Génération de
trajectoire
ARTICULATION
(actionneur)
Qn
Asservissement des
articulations
M. Mallem 37
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
10.Générateur de trajectoire
10.1 Principe
M. Mallem 38
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Pas 1 :
- C hem in en coordonnées opérationnelles transform é en
chem in en coordonnées articulaires :
{ qn }=M G I[Xn}],
- calcul des points de passage précis et vitesses associées,
- calcul des points de passage approchés et des erreurs
acceptables associées
{dqn }=M DI[dXn}],.
Pas 2 :
Pour chacun des axes k = 1,… ,n
1. Etablir une trajectoire en tenant com pte des points de
passage précis et leur vitesse et des points de passage
approchés et des erreurs acceptables.
2. Décom poser cette trajectoire en tranches de tem ps telles
que q¨=cte sur chacune(phases),
3. Lorsque q¨≠ 0, faire |q¨|=q¨m ax, vérifier si la phase vitesse
constante existe et choisir le profil adapté,
4. Calculer les tem ps ti k (phases à vitesse variable),
tij k (phases à vitesse constante).
Pas 3 :
Pour chaque phase (définie par q¨=cste) déterm iner l’axe le
plus contraint et synchroniser les autres sur lui.
ti = M ax { ti k } ; tij = M ax { tij k }
k k
Pas 4 :
Définir une com m ande synchrone qk(t) sur chacun des axes
selon ti et tij com m uns à tous les axes.
Pas 5 :
A partir des ti et tij, déterm iner les q¨i k pour chacune des
phases et des chacun des axes.
M. Mallem 39
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
P1: x1=0,y1=1,z1=0.5,
Z (dx=0.1, dy=dz=0);
(dx/dt=dy/dt=0,dz/dt=0.2m/s)
P2: x2=0.86, y2=0,z2=1) L2=1m
q2
L1=0.5m
O Y
q1
X P0: xo=0.86,
y=z=0)
q¨max=±50°/s2
M. Mallem 40
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
11.1 Introduction :
Un manipulateur parallèle est constitué d’une base fixe et d’un organe terminal à
n degrés de liberté reliés entre eux par des chaînes cinématiques (« jambes »)
fermées motorisée partiellement.
Domaines d’applications : simulateurs de conduite, de vol. Testeurs de
pneumatiques. Assemblage, transfert rapide de pièces. Machines outils,…
M. Mallem 41
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
MGI :P(X,Y) et L(distance entre les points pivots A et B), calculer ρ1 et ρ2 connus:
M. Mallem 42
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Configuration singulière :
Une singularité se caractérise par une perte de rang d’une matrice jacobienne (perte de degrés de liberté
de l’organe terminal). Les singularités induisent :
- instabilité de l’organe terminal (exemple ci-dessous, (y=0) )
- atteinte des limites de l’espace de travail (Si ρ1= ρ2 = 0 )
M. Mallem 43
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
MGI :
où c2 = ||A1 A2|| ; c3 = ||A1 A3(projeté sur X)|| ; d3 = ||A1 A3(projeté sur Y)||
Singularités :
M. Mallem 44
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
6 RR-P-RRR
M. Mallem 45
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
b-Conventions
M. Mallem 46
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Où :
M. Mallem 47
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
M. Mallem 48
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
Exercice 1 :
avertissement: la résolution de cet exercice ne suppose pas d'avoir à développer de longs calculs ( sauf peut-être
pour la question 3).
Soit le robot parallèle 3RPR représenté Figure 1
l l Y
O
(Ro) B2 B1
l q1 YE
q2
q3 A1
B3
θ
E
(RE) L
A2
X XE
Figure 1: robot //
OXY constitue la base fixe du robot. A1A2 de longueur L est la partie mobile. Les segments(vérins) B1A1, B2A2 et
B3A1 sont de longueurs variables q1, q2, q3. Les qi sont les variables articulaires. Les coordonnées opérationnelles sont
X, Y et θ ( X, Y sont les coordonnées cartésiennes dans Ro de E , confondu avec A2).
1. exprimer le modèle géométrique inverse q = F-1 ( X,Y,θ) où q = ( q1, q2,q3)t.
2. donner des éléments du calcul du modèle géométrique direct. X>0, Y>0 et θ ∈]0,π/2[. On ne développera pas tous les
calculs, mais on précisera la démarche.
Par la suite, on supposera connues les trois expressions suivantes:
X = f1(q), Y = f2(q), θ = f3 (q)
3. déterminer entièrement le modèle différentiel inverse dq = J-1 ( dX, dY, dθ)
Comment trouver les singularités du robot ( s'il en a !)
4. Exprimer en fonction de f1, f2, f3 la matrice homogène de passage de Ro à RE(repère attaché à la partie mobile).
M. Mallem 49
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
M. Mallem 50
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
ANNEXES[KHALIL&DOMBRE1999]
Cet annexe décrit les formalismes des cosinus directeurs, des angles nautiques, du vecteur de rotation permettant
la représentation de l’orientation d’un solide dans l’espace
• RAPPELS
Soit Ri un repère ayant subi des transformations consécutives connues Tk=1..n qui l’amènent au repère Rj. La
transformation finale Tij exprimant le repère Rj dans le repère Ri est calculée selon deux cas de figures :
- Si les transformations Tk=1..n sont exprimées par rapport au repère courant Rk=1..n, Tij s’obtient par
multiplications à droite : Tij = T12 T23 .. Tn-1 n
- Si les transformations Tk=1..n sont exprimées par rapport au repère d’origine Ri, Tij s’obtient par
multiplications à gauche : Tij = Tin .. Ti2 Ti1
• 2. Pré-produit vectoriel :
r r
Soient u et v deux vecteurs, leur produit vectoriel s’écrit :
⎡u y v z − u z v y ⎤
r r ⎢ ⎥
u ∧ v = ⎢u z v x − u x v z ⎥
⎢u x v y − u y v x ⎥
⎣ ⎦
⎡ 0 − uz u y ⎤ ⎡v x ⎤
r r ⎢ ⎥
− u x ⎥ ⎢⎢v y ⎥⎥ = X (u ) ⋅ v
r r
u ∧ v = ⎢ uz 0
⎢− u y ux 0 ⎥⎦ ⎢⎣ v z ⎥⎦
⎣
r r
X (u ) est la matrice du pré-produit vectoriel de u .
M. Mallem 51
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
• COSINUS DIRECTEURS
⎡i jx kx ⎤
r
R= i [ r r ⎢x
]
j k = ⎢i y jy k y ⎥⎥ (A3.1)
⎢⎣i z jz k z ⎥⎦
Ses éléments représentent les cosinus directeurs d’orientation de trois vecteurs. Elle ne contient que deux
r
paramètres indépendants, car le vecteur k se déduit par un produit vectoriel des deux autres dont la norme est
r r
égale à 1 et le produit scalaire i ⋅ j = 0 . Cette représentation redondante n’est pas optimale d’où l’intérêt de
Les angles de Roulis – Tangage – Lacet expriment l’orientation par trois rotations successives d’un repère
autour de ses trois axes principaux (z, y puis x). Les trois rotations étant exprimées par rapport au repère
courant, la rotation finale s’obtient par multiplications à droite :
⎛ cos(θ y )cos(θ z ) sin(θ x ) sin(θ y )cos(θ z ) − cos(θ x ) sin(θ z ) cos(θ x ) sin(θ y )cos(θ z ) + sin(θ x ) sin(θ z )⎞
⎜ ⎟
R = ⎜ cos(θ y )sin(θ z ) sin(θ x ) sin(θ y )sin(θ z ) + cos(θ x ) cos(θ z ) cos(θ x ) sin(θ y )sin(θ z ) − sin(θ x ) cos(θ z )⎟
⎜ − sin(θ ) sin(θ x ) cos(θ y ) cos(θ x ) cos(θ y ) ⎟
⎝ y ⎠
L’avantage de ce formalisme est qu’il présente directement la commande d’un robot (la rotation autour de
chaque axe signifie l’envoi direct d’une commande au moteur spécifique). L’inconvénient est que le produit des
trois matrices dans l’équation (A3.2) n’est pas commutatif. L’ordre dans laquelle s’effectuent les trois rotations
conditionne donc la valeur finale de la rotation. Un autre inconvénient majeur est que le problème inverse
(trouver les trois angles à partir de R) présente plusieurs solutions et des positions singulières.
M. Mallem 52
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
• VECTEUR DE ROTATION
r
Considérons une rotation R( u ,θ) autour d’un axe portant un vecteur unitaire
r
[
u = ux uy uz ]
T
passant par
r
l’origine d’un repère Ri ([.]T signifie transposé). Supposons que u soit le vecteur unitaire suivant l’axe z d’un
repère Rj dont l’origine est confondu avec Ri (Figure A3.1). Rj peut être obtenu à partir de Ri par deux rotations
successives exprimées par la transformation suivante :
i r r
Tj = R( z ,α)R( x ,β) (A3.3)
zi
r
u = zj θ α
yj
β
β
α
yi
α
xi β
xj r r
Figure A3.1 : Rj est obtenu de Ri par 2 rotations α autour z et β autour x
⎡u x ⎤ ⎡ sin α sin β ⎤
u = ⎢u y ⎥ = ⎢− cos α sin β ⎥⎥
r ⎢ ⎥ ⎢
(A3.4)
⎢⎣u z ⎥⎦ ⎢⎣ cos β ⎥⎦
r r
Tourner autour de u est équivalent à tourner autour de l’axe z du repère Rj. Ceci revient à faire une
r
transformation de Ri vers Rj, une rotation R( z ,θ) puis une transformation inverse vers Ri, on en déduit que :
r r r r r r
R( u ,θ) = R( z ,α)R( x ,β)R( z ,θ)R( x ,-β)R( z ,-α)
⎡ u x 2 (1 − Cθ ) + Cθ u x u y (1 − Cθ ) − u z Sθ u x u z (1 − Cθ ) + u y Sθ ⎤
r ⎢ ⎥
R( u ,θ) = ⎢u x u y (1 − Cθ ) + u z Sθ u y (1 − Cθ ) + Cθ u y u z (1 − Cθ ) − u x Sθ ⎥
2
(A3.5)
⎢u u (1 − Cθ ) − u Sθ u y u z (1 − Cθ ) + u x Sθ u z (1 − Cθ ) + Cθ ⎥⎦
2
⎣ x z y
M. Mallem 53
ENSIIE2.2 Option : Robotique & Réalité Virtuelle
Cours : Modélisation géométrique et différentielle de robots 6ddl
r
avec : Cθ = cos(θ) et Sθ = sin(θ). En utilisant la matrice du pré-produit vectoriel de u , nous obtenons la
formule de Rodrigues :
r r rr
R(u ,θ ) = I 3 Cθ + SθX (u ) + (1 − Cθ )uu T (A3.6 a)
r r r
R(u ,θ ) = I 3 + SθX (u ) + (1 − Cθ )( X (u )) 2 (A3.6 b)
Ces deux équations sont équivalentes, où I3 représente la matrice unité d’ordre trois.
• Problème inverse :
Le problème inverse est celui de trouver le vecteur et l’angle de rotation correspondant à une matrice de rotation
donnée. En faisant la somme des termes diagonaux dans les équations (A3.1) et (A3.5), on trouve :
1
Cθ = (i x + j y + k z − 1) (A3.7)
2
2u x Sθ = j z − k y ⎫
⎪
2u y Sθ = k x − i z ⎬ (A3.8)
⎪
2u z Sθ = i y − j x ⎭
1
d’où : Sθ = ( j z − k y ) 2 + (k x − i z ) 2 + (i y − j x ) 2 (A3.9)
2
En analysant les signes dans l’équation (A3.8) et en utilisant les expression de (A3.1) et de (A3.5), on obtient :
u x = Signe( j z − k y ) (i x − Cθ ) (1 − Cθ ) ⎫
⎪
u y = Signe(k x − i z ) ( j y − Cθ ) (1 − Cθ ) ⎬ (A3.11)
u z = Signe(i y − j x ) (k z − Cθ ) (1 − Cθ ) ⎪⎭
r r
Il existe donc deux solutions pour le problème inverse : R( u ,θ) et R(- u ,-θ). Un inconvénient remarqué est que
la solution représente une singularité au voisinage de θ = 0.
M. Mallem 54