Transcript q - Moodle

2.1.7 Modèle Géométrique
Direct
Forward Kinematics
Coordonnées opérationelles (pos. &
orientation de la main ou de l'outil)
en fonction des variables robot
{x,y,z, a } =
F (q1, q2, … qi, …. qn )
Position & orientation d’un outil
q4
TCP
y
MGD complet
« à la main »
q2
L4
q1
x
x = L1 c1 +
L2c12 + L4c124
y = L1 s1 +
L2s12 + L4s124
z = q3
j = q1 + q2 + q4
MGD d’un robot à 6 ddl?
La même démarche pour un robot à 6 ddl devient
très difficile => utiliser les matrices homogènes!
Exercice 9 !
Ex. 9b
1. Rot. de q4 de autour de [ L1 + L2 , 0 ]T
2. Rot. de q2 de autour de [ L1 , 0 ]T
3. Rot. de q1 de autour de [ 0 , 0 ]T
c4
R p  Rp 

 = s 4
1 
0
 0
1.)

s4
c4
0
?

?
1
Ex. 9b
1. Rot. de q4 de autour de [ L1 + L2 , 0 ]T
c4
R p  Rp 

 = s 4
1 
0
 0
s4
c4
0
L12 v4 

L12 s4 
1 
avec
les définitions versine(q) = 1– cosq
donc
v4 = 1– cos q4
et
L1 2
=
L1 + L2
Ex. 9b
MGD complet:
c1 s1 0c2


s1 c1 0s2
 0 0 1 0
c12

= s12
 0
s12
c12
0
L1v2 c4

L1s2 s4
1  0
s4
c4
0
L12 v4 

L12 s4 
1 
L1 (c1v2  s1s2 )c4

L1 (s1v2  c1s2 )s4
 0
1
s4
c4
0
L12 v4 

L12 s4 
1 
s2
c2
0
Ex. 9b
c12

s12
 0
c124

= s124
 0
MGD complet:
s12
c12
0
s124
c124
0
L1 (c1v2  s1s2 )c4

L1 (s1v2  c1s2 )s4
 0
1
s4
c4
0
L12 v4 

L12 s4 
1 
L12 (c12 v4  s12 s4 ) L1 (c1v2  s1s2 )

L12 (s12 v4 – c12 s4 ) L1 (s1v2  c1s2 )

1
Application du MGD
y
Ex. 10
x c124
  
y = s124
1  0
s124
c124
0
L1
L2
L4
x
L12 (c12 v4  s12 s4 ) L1 (c1v2  s1s2 )L124 
 
L12 (s12 v4 – c12 s4 ) L1 (s1v2  c1s2 ) 0 
 1 
1
TCP
y
q2
L4
q1
x
x = L1 c1 +
L2c12 + L4c124
y = L1 s1 +
L2s12 + L4s124
Etablissement du MGD:
1. Définir les variables robots
2. Définir leurs positions de référence
3. Définir les paramètres du robot
4. Enchainer les mouvements successifs
(multiplication de matrices homogènes)
y
L1
L2
L4
x
MGD d’un robot 6ddl
1.
Variables robot
q3
q2
q6
q5
q1
q4
Convention:
Partir de la
base vers la main
2. Positions de référence
z
qi = 0
q5
Les flèches indiquent
le sens de rotation positif
The arrows indicate positive
rotation
y
Le référentiel (x,y,z) est fixe
(coordonnées opérationelles)
Fixed coordinate frame!
q1
q4 , q6
q3
q2
x
Généralisation de la paramétrisation:
Paramètres Denavit-Hartenberg
Les axes successifs sont reliés par les perpendiculaires
communes, définissant ainsi des points de repère Pi
q3
q2
P2
L2
L1
P1
q1
P2'
P3
Passage de l'axe 1 à l'axe 2:
Déplacement de L1,
rotation de a1 autour de L1
Li: Link length
ai: Twist angle
Distance de Pi à Pi':
Joint offset Di
Joint prismatique: Di devient variable, qi fixe
z
3. Paramètres du robot
q1
Les axes q1 et q2 se croisent => L1=0
cross each other
Les axes q2 et q3 sont parallèles, dist. L2
q5
Les axes q3 et q4 se croisent => L3=0
Les axes q4 et q5 se croisent => L4=0
D3
y
Les axes q3 et q5 sont décalés sur l'axe q4 d'une distance D4
D4
q3
L2
Les axes q1 et q4 sont décalés sur l'axe q3 d'une distance D3
Distance between q1 and q4 along q3 : D3
q4 , q6
q2
x
4. Enchainement des mouvements z
1. Rot. de q6 autour de l'axe z ,
décalée de p = [D3,0,0]'
 I3 3
01 3
p 31  R
1  0
D3  c6
  
p  Rp =  0   s6
 0   0
0 I
1 0
s6
c6
0
c6
 R
p  Rp s6

=
1  0
0 0 0
0
p R
=

1  0
s6
c6
0
0
q5
D4
q3
p  Rp
1 
0D3   D3v6 
  

0 0  = D3 s6 
1 0   0 
0 D3v6 

0 D3 s6 
= K6
1
0 
0
1 
q4 , q6
D3
L2
x
y
q2
z
2. Rot. de q5 autour de l'axe x ,
décalé de p = [0,0, L2+D4]'
 0  1 0
  
p  Rp =  0   0 c5
L24  0 s5
q5
0  0   0 
  

s5  0  =  L24 s5 
c5 L24  L24 v5 
D4
q3
D3
1 0
0
0 
 R
p  Rp 0 c5 s5 L24 s5 
 = K5

=
1  0 s5 c5 L24 v5 
0 0 0
0 0
0
1 
et ainsi de suite pour K4 ,K3 , K2 , K1
q4 , q6
L2
x
y
q2
MGD du robot 6ddl
P0
q3
q2
q6
P(qi)
q5 q4
q1
P(qi) = (K1 K2 K3 K4 K5 K6 ) P0
2.1.8 Représentation de l’orientation: Angles d'Euler
L'orientation est exprimée
1)en quaternions (angle/axe)
2)en matrice de cosinus directeurs
3)en angles autour de trois axes fixés au corps en mouvement.
(Figures p. 2.1-11)
Historiquement ce sont précession, nutation,
rotation propre (axes z,x,z liés au corps)
Généralisation: On trouve 12 jeux d'angles possibles
Orientation is often expressed as angles around body-fixed axes.
Historically, these were first defined by Euler as precession,
nutation and proper rotation of a gyroscope (top, Kreisel)
Orientation: Poignet à 3 axes concurrents
Wrist with three axes through a common intersection
q6
q4
q5
Fig 10
q 5=  z
Poignet à 3 axes: Angles d’Euler
Gruber p. 209
( ,  ,j )
q6 =j
q4
Précession
nutation
y
q5
x
q 4= 
rotation propre
axes z,x,z
(liés au corps)
body-fixed
Fig 10) p. 12
Poignet cardanique:
Fig. 13 P 14
Roulis (roll)
j
tangage (pitch)
J aut. axe y = q4
lacet (yaw)

aut. axe z, direction d'approche = q6
aut. axe x = q5
Angles d'Euler (x,y,z), axes fixes
x
q5
q4
Cardanic wrist
z
y
q6
Angles d’Euler:
Blocage de cardan
z
q5
q5 = ± 
q4
x
y
Alignement de deux axes, perte d’un ddl
(Gimbal lock)
q6
MGD:
P(qi) = (K1 K2 K3 K4 K5 K6 ) P0
Comment trouver les angles (j, J,
rapport à des axes fixes x,y,z?
R1 R2 R3 R4 R5 R6 = Rtot =
Rtot = Rz Ry Rx =
cj cJ

sj cJ
 sJ
cj sJ s  sj c
...= r22
 ...= r
32
r11

r21
r31
) par
r12
r22
r32
r13 

r23 
r33 
cj sJ c  sj s 

...= r23 
...= r33 
Solution:
j = Atan2(±r21,±r11)
J = Atan2(r31, r
2
32
r
2
33
=
Atan2(±r32,±r33)
Signes négatifs pour p/2 < J < 3p/2
(Sciavicco, Siciliano, p32,33)
)
2.1.9 MGI
Tâche pratique:
Quelles variables pour qi un P donné?
z
q3
y
q2
x
q6
P(qi)
q5 q4
q1
On cherche qi(P) , donc la
fonction inverse du MGD P(qi)
Modèle Géométrique Inverse (indirect)
Inverse Kinematics, rückwärts Kinematik
Problème mathématiquement difficile!
Exemple très simple:
q2
L2
L1
q1
x
Donnés x & y, quels sont
MGD
x = L1 c1 +
L2c12
y = L1 s1 +
L2s12
q1 et q2 ?
1. Remplacer cos(q1  q2) par cosq1 et cosq2
x = L1 c1 +
L2c12 = L1 c1 + L2c1c2 – L2s1s2
y = L1 s1 +
L2s12 = L1 c1 + L2s1c2 + L2c1s2
2. L'introduction des sinus nécessite d'ajouter
les relations entre sinus et cosinus
s12 + c12 = 1
s22 + c22 = 1
4 équations, 4 inconnues
mais des équations quadratiques!
Nous constatons donc que le MGI est
beaucoup plus complexe que le MGD!
1. Les équations sont non-linéaires
2. Des solutions analytiques générales comme
dans le cas d'équ. linéaires sont inconnues
3. Solutions multiples possibles!
4. Infinité de solutions possible (redondance)
Robot redondant:
Plus de ddl que nécessaires au positionement
Raison: Accessabilité
Applications typiques: Soudure, peinture sur
des éléments complexes (carosserie d'auto)
Solution des 4 équations:
(x2 + y2) = L12 + L22 + 2 L1 L2 c2
Cela donne cos(q2) et donc deux angles q2
Exercice: Trouvez q1
Robot à 6 ddl
Position:
On peut trouver le MGI en combinant deux fois
l'exemple planaire qui vient d'être fait.
Nous avons donc déjà 2x2=4
postures possibles
Lefty, up
Lefty, down
righty, up
righty, down
MGI du robot à 6 ddl
Orientation: Les angles sont des angles d'Euler
par rapport à l'orientation du troisième membre.
R(consigne) = R(base) R(q4,q5,q6)
donc
R(q4,q5,q6) = R(base)–1 R(consigne)
Postures? (nombre de solutions?)
q6
Postures du poignet
q5
q5 => q5
q4
q4 => q4±p
q6 => q6±p
Récapitulation MGD et MGI
•Le MGD se trouve de façon systématique.
(Paramètres Denavit Hartenberg, matrices homogènes)
•Il y a toujours une solution dans le domaine de travail
•Le MGI ne peut pas se calculer systématiquement
dans tous les cas (besoin d'astuces)
•Solutions multiples (postures) possible
•Nombre de solutions inconnu en général!
•Méthodes numériques ne donnent pas toutes les solutions
Robots parallèles?
f
(x, y)
q1
q3
q2
MGD: Données q1, q2, q3,
Quels sont
(x, y, f) ?
Solutions:
Constat:
Pour les robots parallèles,
c'est le modèle géométrique direct MGD
qui aura plusieurs solutions.
On les appelle les "contorsions"
MGI?
f
(x, y)
q1
q3
q2
MGI: Données
Quels sont
(x, y, f) ,
q1, q2, q3 ?
MGI
(x, y)
f
A l'évidence, il n'y a qu'une seule solution.
Fin section 2.1 "Cinématique"
Robots sériels:
•Le MGD a une seule solution; méthode "infaillible" existe
•Le MGI a des solutions multiples! (Les postures)
Robots parallèles, c'est juste l'inverse:
•Le MGD a des solutions multiples! (Les contorsions)
•Le MGI n'a qu'une solution, souvent facile à trouver
Robots hybrides: Difficile dans les deux cas
Ces questions sont objet de recherche en robotique.
(publications, conférences...)