UPJV, Département EEA M1 EEAII
Parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception et Robotique E-mail: [email protected]
Année Universitaire 2015/2016
Mardi 9h00-12h00, Mercredi 13h30-16h30, Salle 8
Plan du cours
Chapitre 1 : Introduction
1.1 Définitions
1.2 Constituants d’un robot 1.3 Classification des robots 1.4 Caractéristiques d’un robot 1.5 Générations de robots
1.6 Programmation des robots 1.7 Utilisation des robots
Chapitre 2 : Fondements Théoriques 2.1 Positionnement
• Rotation et représentations de la rotation
• Attitude et matrices homogènes
Plan du cours
Chapitre 3 : Modélisation d’un Robot
2.2 Cinématique
• Vitesse d’un solide
• Vecteur vitesse de rotation
• Mouvement rigide
• Torseur cinématique
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
• Modèle cinématique direct
• Modèle cinématique inverse 3.3 Modèle dynamique
• Formulation de Lagrange
Objectif: déterminer le modèle dynamique d’un manipulateur à n segments rigides en utilisant la formulation de Lagrange
Modèle dynamique d’un robot: formulation de Lagrange
θ1
θ2
θ4 d3
Pour déterminer le lagrangien , il faut calculer l’énergie cinétique totale et l’énergie potentielle totale du manipulateur: L
L = T − U
q = [θ1, θ2, d3, θ4, . . .]T ∈ Rn
L’énergie cinétique totale est donnée par la somme des contributions relatives au mouvement de chaque segment et au mouvement de l’actionneur de
chaque articulation (le segment 0 est fixé et ne donne aucune contribution):
Modèle dynamique d’un robot: énergie cinétique
Énergie cinétique du segment i
T =
ni=1
( T
i+ T
mi)
Énergie cinétique du moteur qui actionne l’articulation i
Segment i
Articulation i
Segment i - 1 Articulation i
Moteur de l’articulation i
i
m
iModèle dynamique d’un robot: énergie cinétique
: matrices jacobiennes
Ti
= 1
2
miq˙
T(J
(Pi))
TJ(Pi)q˙ + 1
2
q˙
T(J
(Oi))
T Ri IiiRTi J(Oi)q˙
où
mi : masse du segment i
: vecteur des vitesses des variables articulaires
Ri : matrice de rotation entre le repère du segment i et le repère de la base
Iii : tenseur d’inertie relatif au centre de masse du segment i exprimé dans le repère du segment (matrice 3 3 symétrique)
J(Pi) =
j(Pi1) · · · j(P ii) 0 · · · 0 J(Oi) =
j(O1i) · · · j(Oii) 0 · · · 0
⎡
⎣ j(P ji) j(Oji)
⎤
⎦ =
⎧⎪
⎪⎪
⎨
⎪⎪
⎪⎩
zj−1 0
si l’articulation est prismatique zj−1 ×(pi −pj−1)
zj−1
si l’articulation est roto¨ıde où
si l’articulation est prismatique si l’articulation est rotoïde
On peut montrer que:
q
˙
∈ Rn∈ R
3×n∈ R
3×nModèle dynamique d’un robot: énergie cinétique
: vecteur de position de l’origine du repère par rapport au repère de la base
⎡
⎣ j(P ji) j(Oji)
⎤
⎦ =
⎧⎪
⎪⎪
⎨
⎪⎪
⎪⎩
zj−1 0
si l’articulation est prismatique zj−1 ×(pi −pj−1)
zj−1
si l’articulation est roto¨ıde où
pj−1
pi : position du centre de masse du segment i par rapport au repère de la base
z
j−1 : vecteur unitaire de l’axe z du repèresi l’articulation est prismatique si l’articulation est rotoïde
Segment i
pi
j −1
j −1
x0
y0 z0
p˙
i
xi yi zi
Modèle dynamique d’un robot: énergie cinétique
Pour la contribution du moteur qui actionne l’articulation i (un moteur électrique rotatif standard), on trouve une expression similaire pour l’énergie cinétique
On suppose que le moteur de l’articulation i est positionné sur le segment i - 1
segm. i - 1
articulation i
pmi
x0
y0 z0
p˙mi
zmi
• En pratique, on met les moteurs aussi près que possible de la base du robot pour alléger la charge dynamique des premières articulations
• Les couples des actionneurs sur les articulations sont fournies par les moteurs à travers des transmissions mécaniques (engrenages)
ωmi
Modèle dynamique d’un robot: énergie cinétique Tmi = 1
2 mmi q˙T(J(mP i))TJ(mP i)q˙ + 1
2 q˙T(J(mO i))T Rmi Immii RTmiJ(mO i)q˙
où
: masse du rotor du moteur i
: vecteurs des vitesses des variables articulaires
où
mmi
: matrice de rotation (entre le repère du moteur i et le repère de la base) : tenseur d’inertie du rotor du moteur i par rapport à son centre de masse (matrice 3 3 symétrique)
Rmi Immii
J(mP i) =
j(mP1i) · · · j(mP,i−1i) 0 · · · 0
j(mP ji) =
zj−1 si l’articulation est prismatique zj−1 ×(pmi − pj−1) si l’articulation est roto¨ıde
: matrice jacobienne
p est la position du centre de masse du rotor (par rapport au repère mi de la base). et sont définis comme dans le cas précédent
si l’articulation est prismatique si l’articulation est rotoïde
pj−1 q
˙
∈ Rnz
j−1∈ R
3×nModèle dynamique d’un robot: énergie cinétique
Enfin:
: rapport de transmission des engrenages du moteur i (on suppose une transmission rigide)
: matrice jacobienne
Tmi = 1
2 mmi q˙T(J(mP i))TJ(mP i)q˙ + 1
2 q˙T(J(mO i))T Rmi Immii RTmiJ(mO i)q˙
J(mO i) =
j(mO1i) · · · j(mO,i−1i) j(mO,ii) 0 · · · 0
où
j(mOji) =
⎧⎨
⎩
j(Oji) si j ∈ {1, . . . , i− 1} kri zmi si j = i
kri
zmi: vecteur unitaire le long de l’axe du rotor du moteur i
∈ R
3×nEn effet: ωmi = ωi−1 + kriq˙i zmi ωmi
ωi−1
où est la vitesse angulaire totale du roteur et la vitesse angulaire du segment i - 1 (où le moteur se trouve)
Modèle dynamique d’un robot: énergie cinétique
En conclusion, l’énergie cinétique totale du robot est donnée par la forme quadratique suivante:
où
est la matrice d’inertie du manipulateur
T
= 1
2
q˙
T B(q) ˙qB(q) =
n
i=1
mi
(J
(Pi))
TJ(Pi)+ (J
(Oi))
T Ri Iii RTi J(Oi)+
mmi(J
(mP i))
TJ(mP i)+ (J
(mO i))
T Rmi Immii RTmiJ(mO i)Propriétés de la matrice d’inertie:
B(q)
• est une matrice n × n symétrique ( )
• est définie positive ( )
B(q)
• depend, en général, de la configuration du robot q
zT B(q)z > 0, ∀z = 0
B(q)
B(q) = BT(q)
Modèle dynamique d’un robot: énergie potentielle
On peut montrer que:
où est le vecteur de l’accélération de la pesanteur par rapport au repère de la base (par ex. si z est l’axe vertical)
Remarque:
L’énergie potentielle est une fonction des variables articulaires (à travers ) mais elle n’est pas une fonction des vitesses articulaires
L’énergie potentielle totale stockée dans le robot est donnée par la somme des contributions relatives aux segments et aux actionneurs de chaque articulation:
U
=
n
i=1
(
Ui+
Umi)
U
=
−n
i=1
(
mi g0Tpi+
mmi gT0 pmi)
g0
g0 = [0, 0, −g]T
pi, pmi q˙ q
Segment i Moteur i
• On peut maintenant écrire le lagrangien du robot:
• Si on calcule les dérivées requises par l’équation (vectorielle) de Lagrange:
on trouve l’équations du mouvement:
d dt
∂ L
∂ q˙
T
−
∂ L
∂ q
T
= ξ
Modèle dynamique d’un robot: le lagrangien
B(q) ¨q
+
n(q, q) =˙
ξoù le vecteur
n(q, q) = ˙
˙
B(q) ˙q −1 2
∂
∂ q
( ˙
qT B(q) ˙q)T
+
∂ U
(q)
∂ q
T
L (q, q) = ˙ T (q, q) ˙ − U (q)
• Il reste à trouver le vecteur des forces généralisées ξ
• Les forces non-conservatives à l'œuvre sur les articulations du robot sont:
Couples des
n actionneurs (“commande”)
Modèle dynamique d’un robot
• On peut utiliser les couples du frottement de Coulomb comme modèle simplifié des couples de frottement statique:
ξ
=
τ − Fv q˙
− fs(q,
q)˙
Couples de frottement visqueux
Fv : matrice diagonale n × n des coefficients de frottement visqueux
Couples de frottement statique
fs
(q,
q)˙
Fs sgn( ˙q)où
Fs : matrice diagonale n × n
: signe des composantes du vecteur des vitesses articulaires
sgn( ˙q) = [sgn( ˙q1), . . . ,sgn( ˙qn)]T τ ∈ Rn
−JT(q)he
Couples générées sur les
articulations du robot par le contact de l’effecteur avec environnement
En conclusion, on peut réécrire les équations du mouvement comme:
Modèle dynamique d’un robot
où
: moment généré sur l’axe de l’articulation i par la
présence de la pesanteur, dans la configuration courante
La matrice est antisymétrique, c’est-à-dire:
B(q)¨q
+
C(q, q) ˙˙
q+
Fv q˙ +
Fssgn( ˙q) + g(q) = τ − JT(q)h
eC(q, q)˙ : matrice n × n des forces centrifuges et de Coriolis (non-unique)
he : vecteur des forces et moments exercés par l’effecteur sur l’environnement
Remarque:
N(q, q) = ˙˙ B(q) − 2C(q, q)˙
−N(q, q) =˙ NT(q, q)˙
Il représente le modéle dynamique du robot dans l’espace articulaire
: jacobien géométrique du robot
J(q) gi(q) = ∂ U
∂ qi, i ∈ {1, . . . , n}
Exemple: robot cartésien à 2 segments
q = [d1, d2]T m1, m2 mm1, mm2 Im1, Im2
pmi
=
pi−1, zmi=
zi−1, i ∈ {1, 2
}: vecteur des coordonnées généralisées : masses des deux segments
: masses des rotors des moteurs sur les deux articulations
: moments d’inertie par rapport aux axes des deux rotors
Hypothèse simplificatrice:
c’est-à-dire, les moteurs sont positionnés sur les axes des articulations avec les centres de masse situés aux origines des repères correspondantes
Noter que: z0 = [0, 0, 1]T, z1 = [1, 0, 0]T
Exemple: robot cartésien à 2 segments
• On trouve que les matrices jacobiennes (segments):
Évidemment, nous n’avons pas de contributions des vitesses angulaires pour les deux segments
J(P1) =
⎡
⎣0 0 0 0 1 0
⎤
⎦, J(P2) =
⎡
⎣0 1 0 0 1 0
⎤
⎦
• En outre (moteurs):
J(mP 1) =
⎡
⎣0 0 0 0 0 0
⎤
⎦, J(mP 2) =
⎡
⎣0 0 0 0 1 0
⎤
⎦
J(mO 1) =
⎡
⎣ 0 0 0 0 kr1 0
⎤
⎦, J(mO 2) =
⎡
⎣0 kr2 0 0 0 0
⎤
⎦
où kri est le rapport de transmission du moteur i
Exemple: robot cartésien à 2 segments
• La matrice d’inertie est:
Elle est une matrice diagonale constante (elle ne dépend pas de la configuration du robot )
• Cela implique aussi que:
• Pour le vecteur des moments, car :
B =
m1 +mm2 + kr12 Im1 +m2 0
0 m2 + kr22 Im2
C
=
02×2c’est-à-dire, nous n’avons pas de contributions des forces centrifuges et de Coriolis
g0 = [0, 0, −g]T g =
(m1 + mm2 + m2)g
0
q = [d1, d2]T
g =
∂ U
∂ d1, ∂ U
∂ d2 T
=
Exemple: robot cartésien à 2 segments
En l’absence de frottements et de forces sur l’effecteur, le modèle dynamique est:
où
sont les forces appliquées sur les deux articulations du robot
(les variables de commande du robot)
• Les dynamiques sont complètement découplées.
Cela est une consequence de la structure cartésienne et de la géométrie particulière du manipulateur
• En effet, si le deuxième segment n’était pas perpendiculaire au premier segment, la matrice d’inertie B ne serait pas diagonale
(m1 + mm2 + kr12 Im1 + m2) ¨d1 + (m1 + mm2 + m2)g = τ1 (m2 + kr22 Im2) ¨d2 = τ2
τ1, τ2
Remarque:
Problème dynamique direct et inverse
Problème dynamique direct
• La résolution du problème dynamique direct est utile pour simuler le comportement d’un robot
- Nombre d’operations nécessaires pour calculer la dynamique directe d’un robot à n articulations:
• La résolution du problème dynamique inverse est utile pour la planification de trajectoire d’un robot et pour la mise en oeuvre des algorithmes de contrôle
- Nombre d’operations nécessaires pour calculer la dynamique inverse d’un robot à n articulations:
Déterminer pour t > t0, les accelerations articulaires (et ainsi , ) qui résultent des couples appliquées aux articulations , et éventuellement des forces appliquées à l’effecteur , lorsque , sont connus (à savoir l’état initial du système est donné)
Remarque:
Problème dynamique inverse
Déterminer les couples sur les articulations qui sont nécessaires pour
génerer le mouvement specifié par les accelerations, vitesses et positions , , des articulations, lorsque les forces sur l’effecteur (si elles existent), sont connues
q(t) q(t)˙
q(t)¨ q(t˙ 0) q(t0)
he(t)
τ(t)
τ(t)
q(t) ˙¨ q(t) q(t) he(t)
O(n) O(n2)
Plan des travaux pratiques (par binôme)
TP1 14 mars (salle TP204,
13h30-17h30) Modèle géométrique (Matlab)
TP2 16 mars (salle TP204,
15h00-17h30) Modèle cinématique (Matlab)
TP3 21 mars (salle TP204,
13h30-17h30) Découverte du robot Stäubli TX60
DS2 16 mars (salle TP202,
13h30-15h00) Chapitres 3.2 et 3.3