UPJV, Département EEA M1 EEAII
Parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception Robotique E-mail: fabio.morbidi@u-picardie.fr
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
• Matrices de rotation et représentations de l’orientation
• 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 à 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
n
effecteur
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 =
n
i=1
(Ti + Tmi)
Énergie cinétique du moteur qui actionne l’articulation i
Segment i
Articulation i
Segment i - 1 Articulation i
Moteur de l’articulation i
mi
Modèle dynamique d’un robot: énergie cinétique
: jacobiens
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 0 de la base : tenseur d’inertie relatif au centre de masse du segment i exprimé dans le repère du segment (matrice 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 avec
si l’articulation est prismatique si l’articulation est rotoïde
On peut montrer que:
q˙ ∈ Rn
∈ R3×n
∈ R3×n
Iii ∈ R3×3
0
Modè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
et où
pj−1
pi : position du centre de masse du segment i par rapport au repère de la base
zj−1 : vecteur unitaire de l’axe z du repère
Segment i j −1
j −1
x0
y0
z0 xi
yi zi ωi
p˙i
pi
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 positionne 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 fournis par les moteurs grâce à une transmission mécanique (réducteur)
ω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 0 de la base : tenseur d’inertie du rotor du moteur i par rapport à son centre de masse (matrice symétrique)
Rmi
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
: jacobien
p est la position du centre de masse du rotor du moteur (par rapport au mi repère de la base). et sont définis comme pour les segments
si l’articulation est prismatique si l’articulation est rotoïde
pj−1 q˙ ∈ Rn
zj−1
∈ R3×n
Immii ∈ R3×3
Modèle dynamique d’un robot: énergie cinétique
en outre:
: rapport de transmission des engrenages du réducteur du moteur i (on suppose une transmission rigide)
: jacobien
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
∈ R3×n
Noter que: ωmi = ωi−1 +kriq˙i zmi ωmi
ωi−1
où est la vitesse angulaire totale du rotor du moteur 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) ˙q B(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 symétrique (à savoir, )
• est une matrice définie positive (à savoir, )
B(q)
• depend, en général, de la configuration du robot
zT B(q)z > 0, ∀z = 0
B(q)
B(q) = BT(q)
n × n
q ∈ Rn
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)
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 gT0 pi + mmi gT0 pmi)
g0
g0 = [0, 0, −g]T
Segment i Moteur i
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 gT0 pi + mmi gT0 pmi)
g0
g0 = [0, 0, −g]T
pi, pmi q˙ q
Segment i Moteur i
U
• On peut maintenant écrire le lagrangien du robot:
• Si on calcule les dérivées requises par l’équation (vectorielle) de Lagrange:
on trouve les é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)
• Pour compléter le modèle, il reste à trouver le vecteur des forces généralisées ξ g(q)
• On a plusieurs forces non-conservatives à l'œuvre sur les articulations du robot:
Couples des actionneurs (“commande
du robot”)
• On peut utiliser les couples du frottement de Coulomb comme modèle simplifié des couples de frottement statique, à savoir:
ξ = τ − Fv q˙ − fs(q, q)˙
Couples de frottement visqueux
: matrice diagonale des coefficients de frottement visqueux
Couples de frottement statique
fs(q, q)˙ Fs sgn( ˙q)
où
: matrice diagonale
: signe des composantes du vecteur
sgn( ˙q) = [sgn( ˙q1), . . . ,sgn( ˙qn)]T τ ∈ Rn
−JT(q)he
Couples générés sur les articulations du robot par le contact de l’effecteur avec l’environnement
n
Fv ∈ Rn×n
Fs ∈ Rn×n
Modèle dynamique d’un robot
En conclusion, on peut réécrire les équations du mouvement comme:
Modèle dynamique d’un robot
: moment (ou couple) généré sur l’axe de l’articulation i par la présence de la pesanteur, dans la configuration courante du robot
B(q)¨q + C(q, q) ˙˙ q + Fv q˙ + Fssgn( ˙q) + g(q) = τ − JT(q)he
: matrice relative aux forces centrifuges et de Coriolis (non-unique)
: vecteur des forces et couples (torseur statique) exercés par l’effecteur sur l’environnement
Ça représente le modéle dynamique du robot dans l’espace articulaire.
: jacobien géométrique du robot
C(q, q)˙ ∈ Rn×n
J(q) ∈ R6×n he ∈ R6
gi(q) = ∂ U(q)
∂ qi = −
n
j=1
mj gT0 j(Pij)(q) + mmj gT0 j(mPi j)(q)
, 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 deux moteurs : 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
m2
m1
Exemple: robot cartésien à 2 segments
• On trouve que les jacobiens (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 réducteur du moteur i
m2
m1
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×2
c’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
=
m2
m1
En l’absence de frottements et de forces de contact sur l’effecteur, le modèle dynamique du robot est donc:
où
sont les forces appliquées par le deux moteurs sur les articulations du robot (les entrées 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 de ce robot
• En effet, si le deuxième segment n’était pas orthogonal au premier segment, la matrice d’inertie ne serait pas diagonale
(m1 + mm2 + k2r1 Im1 + m2) ¨d1 + (m1 + mm2 + m2)g = τ1 (m2 + kr22 Im2) ¨d2 = τ2
τ1, τ2
Remarque: m1
Exemple: robot cartésien à 2 segments
B
m2
Problème dynamique direct et inverse
Problème dynamique direct
Déterminer pour , les accelerations articulaires (et ainsi , ) qui résultent des couples appliquées sur les articulations , et éventuellement des forces appliquées sur l’effecteur , lorsque , sont connus (à savoir, l’état initial du système au temps est donné)
Problème dynamique inverse
Déterminer les couples sur les articulations qui sont nécessaires pour
générer 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)
t > t0
t0
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 à articulations:
• La résolution du problème dynamique inverse est utile pour la planification
de trajectoire d’un robot et pour la mise en œuvre des algorithmes de commande - Nombre d’operations nécessaires pour calculer la dynamique inverse d’un robot à articulations:
Déterminer pour , les accelerations articulaires (et ainsi , ) qui résultent des couples appliquées sur les articulations , et éventuellement des forces appliquées sur l’effecteur , lorsque , sont connus (à savoir, l’état initial du système au temps est donné)
Remarque:
Problème dynamique inverse
Déterminer les couples sur les articulations qui sont nécessaires pour
générer 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) t > t0
n
n
t0
Plan des travaux pratiques (en binôme)
TP1 14 mars 2017 (salle TP204,
8h30-12h30) – J. Caracotte Modèle géométrique (Matlab)
TP2 28 mars 2017 (salle TP204,
10h00-12h30) Modèle cinématique (Matlab)
TP3 4 avril 2017 (salle TP204,
8h30-12h30) Découverte du robot Stäubli TX60
DS2 28 mars (salle TP204,
8h30-10h00) Chapitres 3.1 (MGI), 3.2 et 3.3