Modèle ciném, ch.3, part. 4

UFR des Sciences, Département EEA
M1 EEAII
Parcours ViRob
Fabio MORBIDI
E-mail: [email protected]!
http://home.mis.u-picardie.fr/~fabio/Teaching.html
Année Universitaire 2014/2015
Plan du cours
Chapitre 1 : Généralités
1.1 Définitions
1.2 Constituants d’un robot
1.3 Classification des robots
1.4 Caractéristiques d’un robot
1.5 Les générations de robot
1.6 Programmation des robots
1.7 Utilisation des robots
Chapitre 2 : Degrés de liberté - Architecture
2.1 Positionnement
• Rotation et représentation de la rotation
• Attitude et matrices homogènes
2
Plan du cours
2.2 Cinématique
• Vitesse d’un solide
• Vecteur vitesse de rotation
• Mouvement rigide
• Torseur cinématique
Chapitre 3 : Modélisation d’un robot
3.1 Modèle géométrique
• Convention de Denavit-Hartenberg
• Modèle géométrique direct
• Modèle géométrique inverse
3.2 Modèle cinématique
• Jacobien direct d’un robot
• Jacobien inverse d’un robot
3.3 Modèle dynamique
• Equation d’Euler-Lagrange
3
Cinématique différentielle
effecteur
θ˙4
d˙3
p˙ e
ωe
θ˙2
θ˙1
Cinématique différentielle: elle nous donne la relation entre
˙ et la vitesse linéaire p˙ e et angulaire ω e
la vitesse des articulations q
de l’effecteur du robot par rapport au repère de la base
Le mappage q˙ −→ (p˙ e , ω e ) est décrit par une matrice,
le jacobien géométrique, qui dépend de la configuration q
du manipulateur
4
Jacobien géométrique
• Le jacobien est l'un des outils les plus importants pour la caractérisation
d’un manipulateur
• En effet, le jacobien est utile pour:
o Trouver les singularités
o Analyser la redondance
o Déterminer des algorithmes pour le modèle géométrique inverse
o Décrire la relation entre les forces appliquées à l'effecteur et
les forces résultantes au niveau des articulations (“efforts statiques”)
o Dériver les équations dynamiques du mouvement
o Développer des stratégies de contrôle dans l’espace opérationnel
Remarque:
Soit F(x) : R −→ R , le jacobien
de F est une matrice m × n
définie par:
n
m

∂ F1
∂ x1
∂F

J=
=  ...
∂x
∂F
m
∂ x1
···
..
.
···
∂ F1
∂ xn
..
.
∂ Fm
∂ xn



5
Jacobien géométrique
Considérons un manipulateur avec n articulations. Nous pouvons
écrire le modèle géométrique direct:
Te (q) =
�
Re (q)
pe (q)
01×3
1
�
T
où q = [q1 , . . . , qn ] est le vecteur des variables des articulations.
La position et orientation de l’effecteur varie lorsque q varie.
˙ e et la vitesse angulaire ω e
Objectif: exprimer la vitesse linéaire p
de l’effectuer en fonction de la vitesse des articulations q
˙
6
Jacobien géométrique
Les relations cherchées sont toutes les deux linéaires par rapport
˙:
à les vitesses des articulations q
p˙ e = JP (q) q˙
ω˙ e = JO (q) q˙
où
JP (q) ∈ R3×n : matrice qui met en relation la contribution des vitesses
˙ avec la vitesse linéaire de l’effecteur p˙ e
des articulations q
JO (q) ∈ R3×n : matrice qui met en relation la contribution des vitesses
˙ avec la vitesse angulaire de l’effecteur ω e
des articulations q
Sous une forme compacte:
ve =
�
p˙ e
ωe
�
= J(q) q˙
Équation de la cinématique
différentielle du manipulateur
7
Jacobien géométrique
La matrice:
J =
�
JP
JO
�
∈ R6×n
est le jacobien géométrique du manipulateur (une fonction des
variables d’articulation, en général)
Pour calculer explicitement le jacobien géométrique, on va utiliser les
propriétés des matrices de rotation et les formules pour la cinématique
du corps rigide vues dans le Chapitre 2, partie 2
8
Vitesse des segments d’un robot
Art. i
Repère i - 1
Caractérisation d’un
segment générique i
d’un manipulateur
(en utilisant la
convention de DH)
Segment i
Art. i + 1
Repère 0
Repère i
Soient:
pi−1 , pi : vecteurs de la position des origines des repères i – 1 et i
ri−1
i−1,i
: position de l’origine du repère i par rapport au repère i – 1
exprimée dans le repère i – 1
Assumption: Le repère 0 et n sont les repères de la base et de l’effecteur du robot.
On va aussi omettre l’exposant “0” du repère de base.
9
Vitesse des segments d’un robot
On trouve que:
pi = pi−1 +
Ri−1 ri−1
i−1,i
Ri−1 : rotation du
repère i – 1 par
rapport au repère 0
Si on calcule la dérivée par rapport au temps de cette équation, et on utilise
encore les formules vues dans le Chapitre 2, partie 2, nous trouvons:
i−1
p˙ i = p˙ i−1 + Ri−1 r˙ i−1
+
ω
×
R
r
i−1
i−1
i−1,i
i−1,i
où
= p˙ i−1 + vi−1,i + ω i−1 × ri−1,i
vi−1,i : vitesse de l’origine du repère i par rapport à l’origine du repère i – 1
Remarque: nous avons ainsi trouvé l’expression de la vitesse linéaire
du segment i en fonction de la vitesse linéaire et angulaire du segment i – 1
p˙ i = p˙ i−1 + vi−1,i + ω i−1 × ri−1,i
10
Vitesse des segments d’un robot
Pour la vitesse angulaire du segment i, on peut partir avec la formule de
composition de deux rotations:
Ri = Ri−1 Ri−1
i
Si on calcule la dérivée par rapport au temps de cette équation, et on utilise
les formules vues dans le Chapitre 2, partie 2:
˙ i = S(ω i ) Ri = S(ω i−1 ) Ri + Ri−1 S(ω i−1 ) Ri−1
R
i−1,i
i
où
S(ω i ) : matrice antisymétrique associée au vecteur ω i
: vitesse angulaire du repère i par rapport au repère i – 1 exprimée
ω i−1
i−1,i
dans le repère i – 1
On peut réécrire le 2ième terme du côté droit de l’équation ci-dessus comme
(note que, en général R S(ω) RT = S(R ω)):
i−1
i−1
i−1
i−1
T
Ri−1 S(ω i−1
)R
=
R
S(ω
)R
R
R
=
S(R
ω
i−1
i−1
i−1
i−1
i−1,i
i
i−1,i
i
i−1,i )Ri
I3
11
Vitesse des segments d’un robot
Donc on a trouvé que:
S(ω i ) Ri = S(ω i−1 ) Ri + S(Ri−1 ω i−1
i−1,i ) Ri
à partir de laquelle nous déduisons que:
ω i = ω i−1 + Ri−1 ω i−1
i−1,i = ω i−1 + ω i−1,i
Remarque: nous avons ainsi trouvé l’expression de la vitesse angulaire
du segment i en fonction de la vitesse angulaire du segment i – 1 et i par
rapport au segment i – 1
Note qu’on obtient des expressions différentes pour:
p˙ i = p˙ i−1 + vi−1,i + ω i−1 × ri−1,i
ω i = ω i−1 + ω i−1,i
en fonction du type d’articulation i (c’est-à-dire, prismatique ou rotoïde)
12
Vitesse des segments d’un robot
Art. i
Segment
i
Repère i
Repère i – 1
di
Art. i + 1
Articulation prismatique:
L’orientation du repère i par rapport au repère i – 1 ne change pas en déplaçant
le segment i, donc:
ω i−1,i = 0
En outre, la vitesse linéaire est:
vi−1,i = d˙i zi−1
où
zi−1
est le vecteur unitaire de l’axe de l’articulation i
13
Vitesse des segments d’un robot
Art. i
Segment
i
Repère i
Repère i – 1
di
Art. i + 1
Articulation prismatique:
Donc on trouve les équations suivantes:
ω i = ω i−1
p˙ i = p˙ i−1 + d˙i zi−1 + ω i × ri−1,i
14
Vitesse des segments d’un robot
Art. i
Repère i
Segment
i
θi
Repère i – 1
Art. i + 1
Articulation rotoïde:
Pour la vitesse angulaire, on a:
ω i−1,i = θ˙i zi−1
tandis que pour la vitesse linéaire:
vi−1,i = ω i−1,i × ri−1,i
en raison de la rotation du repère i par rapport au repère i – 1 induite par le
mouvement du segment i
15
Vitesse des segments d’un robot
Art. i
Segment
Repère i
i
θi
Repère i – 1
Art. i + 1
Articulation rotoïde:
Donc on trouve les équations suivantes:
ω i = ω i−1 + θ˙i zi−1
p˙ i = p˙ i−1 + ω i × ri−1,i
où on a utilisé (pour la 2ième equ.):
ω i−1,i × ri−1,i + ω i−1 × ri−1,i = (ω i−1,i + ω i−1 ) × ri−1,i = ω i × ri−1,i
16
Calcul du jacobien
Pour calculer le jacobien, il est opportune de procéder séparément
pour les vitesses linéaires et angulaires
Pour la contribution à la vitesse linéaire, on peut écrire la dérivée de pe (q)
par rapport au temps, comme:
p˙ e =
n
�
∂ pe
i=1
Pi q˙i
∂ qi
q˙i =
n
�
Pi q˙i
i=1
: contribution de la vitesse de l’articulation i à la vitesse linéaire
de l’effecteur lorsque toutes les autres articulations sont immobiles
Articulation prismatique:
Si l’articulation i est prismatique ( qi = di ):
Pi q˙i = d˙i zi−1
et donc:
Pi = zi−1
17
Calcul du jacobien
Articulation rotoïde:
Si l’articulation i est rotoïde ( qi = θi ), en observant que la contribution
à la vitesse linéaire doit être calculée par rapport à l’origine du repère de
l’effecteur, nous avons:
et donc:
Pi q˙i = ω i−1,i × ri−1,e = θ˙i zi−1 × (pe − pi−1 )
Pi = zi−1 × (pe − pi−1 )
18
Calcul du jacobien
Pour la contribution à la vitesse angulaire, on a:
ωe = ωn =
n
�
ω i−1,i =
i=1
n
�
Oi q˙i
i=1
On peut encore caractériser les termes Oi q˙i séparément.
Articulation prismatique:
Si l’articulation i est prismatique:
et donc:
Oi q˙i = 0
 Oi = 0
Articulation rotoïde:
Si l’articulation i est rotoïde:
Oi q˙i = θ˙i zi−1
et donc:
Oi = zi−1
19
Calcul du jacobien
Conclusion:
3×1
Le jacobien J peut être partitionné en vecteurs colonnes Pi , Oi ∈ R ,
comme:
J =
où
�
 Pi
 Oi
�
=
�
 P1
 P2
 O1
O2
 �
�

zi−1





0

···
···
 Pn
 On
�
∈ R6×n
si l’articulation est prismatique
�
�



zi−1 × (pe − pi−1 )




z
si l’articulation est roto¨ıde
i−1
Cette expression permet de calculer le jacobien d’un manipulateur d’une
façon simple et systématique à partir du modèle cinématique direct
En effet,
zi−1 , pe , pi−1 sont toutes fonctions des variables articulaires
20
Calcul du jacobien
Conclusion:
En effet:
• zi−1
est donné par la troisième colonne de la matrice de rotation R0i−1
• pe est donné par les trois premiers éléments de la quatrième
colonne de la matrice de transformation T0e
• pi−1 est donné par les trois premiers éléments de la quatrième
colonne de la matrice de transformation T0i−1
Remarque: les équations précédentes permettent de calculer le jacobien
géométrique par rapport au repère de la base.
• Si on veut répresenter le jacobien dans un repère différent “u”, il suffit
de connaître la matrice de rotation relative Ru
• La relation entre les vitesses dans les deux repères est:
�
p˙ ue
ω ue
�
=
�
u
R
0
0
Ru
��
p˙ e
ωe
�
=
�
u
R
0
�
0
J q˙
u
R
Ju : jacobien géométrique dans le rep. “u”
21
Calcul du jacobien géométrique
Exemples
22
1 - Manipulateur planaire à 3 segments
θ3
θ2
θ1
23
Manipulateur planaire à 3 segments
Trois articulations rotoïdes. Le jacobien est donc:
J(q) =
�
z0 × (p3 − p0 )
z0
z1 × (p3 − p1 )
z1
z2 × (p3 − p2 )
z2
�
Les vecteurs de position des segments du robot sont:
 




0
a1 cos θ1
a1 cos θ1 + a2 cos(θ1 + θ2 )
 




p0 =  0 , p1 =  a1 sin θ1 , p2 =  a1 sin θ1 + a2 sin(θ1 + θ2 ) 
0
0
0


a1 cos θ1 + a2 cos(θ1 + θ2 ) + a3 cos(θ1 + θ2 + θ3 )


p3 =  a1 sin θ1 + a2 sin(θ1 + θ2 ) + a3 sin(θ1 + θ2 + θ3 ) 
0
Les vecteurs unitaires des axes des articulations sont (les axes sont tous
parallèles au axe z0):
z0 = z1 = z2 =
�
0 0 1
�T
24
Manipulateur planaire à 3 segments
Conclusion:

−a1 s1 − a2 s12 − a3 s123
 a c +a c +a c
2 12
3 123
 1 1


0

J = 
0



0
1
−a2 s12 − a3 s123
a2 c12 + a3 c123
0
0
0
1

−a3 s123
a3 c123 



0


0



0
1
Remarque:
• Seulement les trois lignes du jacobien différentes de zéro sont importantes.
Elles sont relatives aux composants de la vitesse linéaire le long des axes x0
et y0, et au composant de la vitesse angulaire autour de l’axe z0.
• En effet, 3 DDL permettent de spécifier au maximum 3 variables de
l’effecteur: vz , ωx , ωy sont toujours zéro pour ce manipulateur.
25
2 - Manipulateur anthropomorphe
a3
θ3
θ2
θ1
26
Manipulateur anthropomorphe
Trois articulations rotoïdes. Le jacobien est donc encore:
J(q) =
�
z0 × (p3 − p0 )
z0
z1 × (p3 − p1 )
z1
z2 × (p3 − p2 )
z2
�
Les vecteurs de position des segments du robot sont:
 




0
a2 cos θ1 cos θ2
cos θ1 (a2 cos θ2 + a3 cos(θ2 + θ3 ))
 




p0 = p1 =  0  , p2 =  a1 sin θ1 cos θ2  , p3 =  sin θ1 (a2 cos θ2 + a3 cos(θ2 + θ3 )) 
0
a2 sin θ2
a2 sin θ2 + a3 sin(θ2 + θ3 )
Les vecteurs unitaires des axes des articulations rotoïdes sont:
 
0
 
z0 =  0  ,
1


sin θ1


z1 = z2 =  − cos θ1 
0
27
Manipulateur anthropomorphe
Conclusion:

−s1 (a2 c2 + a3 c23 )
 c1 (a2 c2 + a3 c23 )


0
J = 

0


0
1
−c1 (a2 s2 + a3 s23 )
−s1 (a2 s2 + a3 s23 )
a2 c2 + a3 c23
s1
−c1
0

−a3 c1 s23
−a3 s1 s23 

a3 c23 


s1

−c1 
0
Remarque:
• Seulement 3 des 6 lignes du jacobien sont linéairement indépendantes.
• La matrice
JP

−s1 (a2 c2 + a3 c23 )
=  c1 (a2 c2 + a3 c23 )
0
−c1 (a2 s2 + a3 s23 )
−s1 (a2 s2 + a3 s23 )
a2 c2 + a3 c23

−a3 c1 s23
−a3 s1 s23 
a3 c23
décrit la rélation entre les vitesses des articulations et la vitesse linéaire
de l’effecteur.
• Ce manipulateur ne permit pas une vitesse angulaire arbitraire. En effet
les deux composants ωx , ωy ne sont pas indépendants: ωy s1 = −ωx c1
28
3 - Manipulateur Stanford
θ6
θ5
θ4
θ2
θ1
29
Manipulateur Stanford
Cinq articulations rotoïdes et une articulation prismatique. Le jacobien est donc:
J =
�
z0 × (p6 − p0 )
z0
z1 × (p6 − p1 )
z1
z2
0
z3 × (p6 − p3 )
z3
z4 × (p6 − p4 )
z4
z5 × (p6 − p5 )
z5
�
Les vecteurs de position des segments du robot sont:
 
0
 
p0 = p1 =  0  ,
0


c 1 s 2 d3 − s 1 d2


p 3 = p 4 = p 5 =  s 1 s 2 d3 + c 1 d2 
c 2 d3
�
� 
c1 s2 d3 − s1 d2 + c1 (c2 c4 s5 + s2 c5 ) − s1 s4 s5 d6
�
� 

p6 =  s1 s2 d3 + c1 d2 + s1 (c2 c4 s5 + s2 c5 ) + c1 s4 s5 d6 
c2 d3 + (−s2 c4 s5 + c2 c5 )d6

30
Manipulateur Stanford
Enfin, les vecteurs unitaires des axes des articulations sont:
et
 
0
 
z0 =  0  ,
1



−s1


z1 =  c 1  ,
0

−c1 c2 s4 − s1 c4


z4 =  −s1 c2 s4 + c1 c4  ,
s2 s4



c1 s2


z2 = z3 =  s 1 s 2 
c2

c1 (c2 c4 s5 + s2 c5 ) − s1 s4 s5


z5 =  s1 (c2 c4 s5 + s2 c5 ) + c1 s4 s5 
−s2 c4 s5 + c2 c5
31
Singularités cinématiques
• Le jacobien définit un mappage linéaire
ve = J(q) q˙
entre le vecteur des vitesses des articulations
T
T T
vitesses de l’effecteur ve = [p˙ e , ω e ]
q˙
et le vecteur des
• Les configurations où le jacobien n’a pas rang plein sont appelées
singularités cinématiques
Trouver le singularities d’un manipulateur est important parce que:
1.
Les singularités sont des configurations où la mobilité du robot est
réduite, c’est-à-dire, il n’est pas possible d'imposer un mouvement
arbitraire à l'effecteur
2.
Si le robot est à une singularité, ils peuvent exister une infinité de
solutions au problème inverse
3.
Dans le voisinage d'une singularité, des petites vitesses dans l’espace
opérationnel peuvent produire des grandes vitesses dans l'espace articulaire
32
Singularités cinématiques
Remarque: les configurations du robots qui sont singulières pour
le modèle géométrique inverse le sont aussi pour le jacobien
• Il existe deux types de singularités:
1) Les singularités aux limites du volume de travail qui apparaissent
lorsque le bras est complètement étendu (ou rétracté). Ils peuvent être
évités: ils ne représentent pas un véritable problème
2) Les singularités à l’intérieur du volume de travail qui apparaissent
lors de l’alignement de deux ou plus axes du robot, ou pour des
configurations particulières de l’effecteur. Elles sont critiques parce que
on peut les rencontrer partout dans le volume de travail
Exemple [Manipulateur planaire à deux segments]
θ1
θ2 = 0
33
Singularités cinématiques
Exemple [Manipulateur planaire à deux segments]
p˙ x , p˙ y
θ1
θ2 = 0
• On consider seulement les composants de la vitesse linéaire p˙ x , p˙ y dans le plan:
• Le jacobien est donc la matrice 2 × 2:
J =
�
−a1 s1 − a2 s12
a1 c1 + a2 c12
−a2 s12
a2 c12
�
• Pour analyser le rang du jacobien, on peut calculer son déterminant
34
Singularités cinématiques
Exemple [Manipulateur planaire à deux segments]
θ1
• On trouve que:
θ2 = 0
det(J) = a1 a2 sin θ2
• Si a1 , a2 �= 0 le determinant est zéro lorsque:
θ2 = 0, θ2 = π
(bras complètement étendu ou rétracté)
et la valeur de θ1 est irrevelante pour étudier les configurations singulières
• Singularité de type 1
35
Singularités cinématiques
Exemple [Manipulateur planaire à deux segments]
θ1
θ2 = 0
• Si on analyse le mouvement différentiel pour θ2 = 0 , on observe que
les deux colonnes du jacobien:
[−(a1 + a2 )s1
(a1 + a2 )c1 ]T ,
[−a2 s1
a2 c1 ]T
deviennent parallèles et le rang de la matrice devient 1
• Cela veut dire que les composants de la vitesse de l’effecteur p˙ x , p˙ y
ne sont pas indépendants
36
Cinématique différentielle inverse
Objectif: déterminer les vitesses articulaires du manipulateur
en fonction de la vitesse de l’effecteur
• En général, on peut calculer les vitesses articulaires via:
q˙ = J† ve
où
J†
est la pseudo-inverse de Moore-Penrose de
J
• Si le jacobien est carré (si le robot est redondant, nombres des colonnes
> nombre des lignes), et il a rang plein, on a que J† = J−1 (la pseudoinverse devient l’inverse classique) et on trouve:
q˙ = J−1 ve
• On peut intégrer cette équation différentielle en temps discret en utilisant,
par ex. la méthode d’intégration d’Euler. Si le pas d’intégration ∆ t et les
positions et vitesses au temps tk sont connues, les positions des articulations
au temps tk+1 = tk + ∆ t peuvent être calculées via:
q(tk+1 ) = q(tk ) + J−1 (q(tk ))ve (tk )∆ t
37
Cinématique différentielle inverse
• En pratique, pour avoir des algorithmes plus robustes, on préfére
travailler avec le jacobien analytique JA :
x˙ e =
�
p˙ e
φ˙
e
�
=
�
JP (q)
Jφ (q)
�
q˙ = JA (q) q˙
où
pe
φe
: origine du repère de l’effecteur par rapport à la base
: représentation minimale de l’orientation de l’effecteur (3 variables)
dans l’espace opérationnel
• Le jacobien analytique JA est différent du jacobien géométrique J parce
˙
que la vitesse angulaire de l’effecteur par rapport à la base ω e, n’est pas φ
e
• Pour plus de détails sur les algorithmes pour la cinématique inverse basés
sur le jacobien analytique (en effet, la littérature est très grande), voir la
séction 3.7 du livre de Siciliano, Sciavicco, Villani et Oriolo.
38
Efforts statiques
τ3
Objectif de la statique: déterminer la rélation
entre les forces généralisées appliquées à l’effecteur
et les forces généralisées appliquées à les
articulations (forces pour les art. prismatiques et
couples pour les art. rotoïdes) avec les manipulateur
dans une configuration d’équilibre statique
γe
τ2
Soit:
τ ∈R
n×1
: vecteur des efforts exercés par les
actionneurs sur les articulations du robot
τ1
γ e ∈ Rr×1 : vecteur des efforts agissant sur l’effecteur, où r est la
dimension de l’espace opérationnel
• L’application du “Principe du Travail Virtuel”, nous permet d’écrire l’équation:
τ = JT (q) γ e
• La transposée du jacobien géométrique d’un manipulateur met
en relation les forces sur l’effecteur avec les forces sur les articulations
39