Jean-Philippe Roberge

Download Report

Transcript Jean-Philippe Roberge

ROBOTIQUE
-ELE4203-
Cours #6: Jacobienne, dynamique des robots et commande
Enseignant: Jean-Philippe Roberge
S
Jean-Philippe Roberge - Octobre 2012
Cours #6
S Bref retour sur le cours #5:
S Mouvements différentiels et opérateurs différentiels
S Matrice Jacobienne ou tout simplement « la Jacobienne »:
Interprétation et utilité
S Comment la calculer efficacement
S
S Concepts faisant intervenir la Jacobienne:
Vitesse d’un point lié à un certain repère du robot
S Vitesses dans l’espace cartésien et vitesses dans l’espace articulaire
S
S Possibilité d’inversion de la matrice Jacobienne.
S
Relation liant les forces appliquées à l’outil (espace cartésien) et le couple
transmis par les articulations (espace articulaire)
2
Jean-Philippe Roberge - Octobre 2012
Cours #6
S Notions du cours #6:
S Dynamique des robots manipulateurs à l’aide d’Euler-Lagrange
S
Rappels de base sur le Lagrangien à l’aide d’exemples
S Exemple de calcul des équations dynamiques:
S
Système simple à 1 D.D.L. en translation (joint prismatique)
S
Système simple à 1 D.D.L. en rotation (joint rotoïde)
S
Système à 2 D.D.L. en rotation (joints rotoïdes)
S
Généralisation pour des robots à n degrés de liberté
S Propriétés des équations dynamiques des robots manipulateurs
3
Jean-Philippe Roberge - Octobre 2012
Cours #6
S Notions du cours #6 (suite):
S Stratégies de commande des robots manipulateurs:
S
PID axe par axe
S
PD avec compensation de gravité
S
Commande par couple pré-calculé (precomputed torque)
S D’autres types de commande sont possibles malgré que ces stratégies ne
soient pas à l’ordre du cours:
S
Nous discuterons brièvement de la commande adaptative
S
Nous discuterons aussi brièvement du contrôle de force
4
Jean-Philippe Roberge - Octobre 2012
Bref rappel du cours #5 (1)
Mouvement différentiel et opérateur différentiel
S
Soit une matrice de rotation roulis-tangage-lacet:
S
Cette matrice permet de représenter n’importe quel orientation d’un repère par rapport à
un autre repère. Considérons maintenant des variations infinitésimales de l’angle de
roulis, tangage et lacet:
S
Alors:
5
Jean-Philippe Roberge - Octobre 2012
Bref rappel du cours #5 (2)
Mouvement différentiel et opérateur différentiel
S
Donc, la matrice de transformation reliée à un mouvement différentiel:
S
Donc, un mouvement différentiel peut se représenter par le déplacement différentiel:
S
Ainsi que par l’opérateur différentiel:
6
Jean-Philippe Roberge - Octobre 2012
Bref rappel du cours #5 (3)
Mouvement différentiel et opérateur différentiel
S
L’opérateur différentiel est donné par:
S
Considérons un repère T qui subit un mouvement différentiel pour devenir T+dT:
S
On a donc:
S
Cette dernière équation permet souvent d’identifier les déplacements différentiels, comme
nous le verrons dans le prochain exemple…
7
Jean-Philippe Roberge - Octobre 2012
Mouvement différentiel et opérateur différentiel
Exemple du robot planaire (1)
S
Soit le robot planaire RRR pour lequel nous avions réalisé la cinématique directe:
T
S
Calculons le changement qui affecte cette matrice lorsqu’elle subie un déplacement
différentiel de δθ1:
  S123 C123 0 a3 S123  a2 S12  S1a1 
C
  123
1  0

 0
dT
S
Et puisque :
S
Alors:
  S123
C
   123
 0

 0
C123
 S123
0
0
 S123
0
0
0 a3 S123  a2 S12  S1a1 
C123
S
0 a3C123  a2C12  C1a1 
1  123

 0
0
0


0
0

 0
0
0
0
 S123
C123
0
0
a3C123  a2C12  C1a1 

0

0

1
0 a3C123  a2C12  C1a1 
 0 1
1 0
0 a3 S123  a2 S12  S1a1 


0 0
1
0


0
1

0 0
0 a3 S123  a2 S12  S1a1 
0 a3C123  a2C12  C1a1 

 1
0
0

0
0

8
Jean-Philippe Roberge - Octobre 2012
Mouvement différentiel et opérateur différentiel
Exemple du robot planaire (2)
S
Nous pouvons alors identifier le déplacement différentiel (D) lorsque le robot est affecté
d’un déplacement infinitésimal au niveau de son joint 1 (θ1):
0 1
1 0

0 0

0 0
S
0 a3 S123  a2 S12  S1a1 
 0


0 a3C123  a2C12  C1a1 
1   z

  y
0
0


0
0

 0
 z
0
x
 y dx 
 x dy 
0
0
0
dz 

0
1
Ce dernier résultat implique donc que le déplacement différentiel est donc donnée par:
D1
 dx   a3 S123  a2 S12  S1a1 
 dy   a C  a C  C a 
1 1 
   3 123 2 12
 dz  

0
 
 1

0
 x 

 y  

0
  

1
 z  

9
Jean-Philippe Roberge - Octobre 2012
Mouvement différentiel et opérateur différentiel
Exemple du robot planaire (3)
S
D1
S
Nous pouvons refaire la même démarche pour un mouvement infinitésimal au niveau
des joints 2 et 3, les résultats que nous obtiendrions sont:
 dx   a3 S123  a2 S12  S1a1 
 dy   a C  a C  C a 
1 1 
   3 123 2 12
 dz  

0
 
 1
0
 x  

 y  

0
  

1

 z  
Donc, le mouvement différentiel total (c’est-à-dire le mouvement différentiel obtenu étant
donnée une variation infinitésimale affectant tous les joints) est:
Ceci se nomme la matrice Jacobienne:
0
J
10
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne et son interprétation (1)
Ceci se nomme la matrice Jacobienne :
S
0
J
La matrice Jacobienne est extrêmement puissante…
S
Comme nous l’avons vu, la matrice Jacobienne permet de lier les déplacements infinitésimaux
dans l’espace articulaires au mouvement différentiel dans l’espace cartésien.
S
La matrice Jacobienne permet aussi de lier les vitesses articulaires aux vitesses dans l’espace
cartésien:
11
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne et son interprétation (2)
S
Supposons à l’inverse que, étant données des vitesses dans le repère de base, nous
désirons connaître les vitesses pour chacune des articulations:
S
Pensez-vous qu’en général, la matrice Jacobienne est inversible?
S
Pas toujours! Rien n’assure que la matrice Jacobienne sera carrée.
S
S
En fait, elle ne sera pas carrée lorsque le nombre de degrés de liberté du robot est différent du nombre de
degrés de liberté du robot dans l’espace cartésien.
Dans le cas où vous cherchez à inverser une Jacobienne qui n’est pas carrée, vous devez vous référez
au pseudo-inverse (dans les notes: inverse généralisé), voir l’annexe à cet effet.
12
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne et son interprétation (3)
S
Lorsque la matrice Jacobienne carrée n’est pas inversible, cela signifie que le robot se trouve dans
une configuration de singularité. Par exemple:
S
Également:
S
Donc, la matrice Jacobienne intervient dans une foule de contexte
S
Calcul de vitesse, planification de trajectoires lisses, détermination des singularités, intervient dans les
équations de la dynamique des manipulateurs et dans la relation entre les forces transmis par l’effecteur et les
couples articulaires (moteurs).
13
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne
Algorithme de calcul (1)
S
La matrice Jacobienne 0J est exprimé dans le repère de base, il est toutefois simple d’exprimer la
Jacobienne dans un repère arbitraire i:
S
Nous venons d’étudier la matrice Jacobienne, nous avons vu comment l’exprimer par rapport à un
repère i, nous avons constater sa puissance et nous avons aussi vu comment la calculer.
S
Il existe toutefois une manière plus méthodique de calculer la Jacobienne…
14
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne
Algorithme de calcul (2)
S
L’algorithme de calcul de la matrice Jacobienne:
S
Cet algorithme fonctionne si les repères ont été apposés selon la méthode de Denavit-Hartenberg
15
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne
Algorithme de calcul (3) - Exemple
S
On peut recommencer le calcul de la Jacobienne du robot planaire à l’aide de cet algorithme:
16
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne
Algorithme de calcul (4) - Exemple
17
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne
Algorithme de calcul (5) - Exemple
18
Jean-Philippe Roberge - Octobre 2012
Matrice Jacobienne
Algorithme de calcul (6) - Exemple
19
Jean-Philippe Roberge - Octobre 2012
Dynamique (1)
Rappel des notions de base
S La dynamique d’un robot manipulateur peut être développé à partir de la
méthode d’Euler-Lagrange:
20
Jean-Philippe Roberge - Octobre 2012
Dynamique (2)
Rappel des notions de base
S
Soit une particule de masse m qui peut seulement se déplacer verticalement:
S
Son énergie cinétique est:
S
Son énergie potentielle est :
U  mgy
S
Le Lagrangien est:
1 2
my  mgy
2
S
La dynamique de ce système, obtenue par Euler-Lagrange:
T
L  T U 
1 2
my
2
d L L

 f
dt y y
my  f  mg
21
Jean-Philippe Roberge - Octobre 2012
Dynamique (3)
Rappel des notions de base
S
Soit un moteur couplé à une tige de masse M:
S
Son énergie cinétique est:
S
Son énergie potentielle est :
S
Le Lagrangien est:
S
La dynamique de ce système, obtenue par Euler-Lagrange:
T
L  T U 
1
1
1
J m m2  J ll2   J m  J l  l2
2
2
2
U  mgl 1  cos l 
1 2
Jl  Mgl 1  cos l  
2
avec: J  J m  J l
d L L


dt y y
Jl  Mgl sin l   l
22
Jean-Philippe Roberge - Octobre 2012
Dynamique (4)
S
Soit un robot RR à deux degrés de liberté:
23
Jean-Philippe Roberge - Octobre 2012
Dynamique (5)
24
Jean-Philippe Roberge - Octobre 2012
Dynamique (6)
25
Jean-Philippe Roberge - Octobre 2012
Dynamique (7)
26
Jean-Philippe Roberge - Octobre 2012
Dynamique (8)
S On peut alors obtenir la dynamique par la méthode d’Euler-Lagrange pour
chacun des liens:
27
Jean-Philippe Roberge - Octobre 2012
Dynamique (9)
S Sous forme matricielle:
28
Jean-Philippe Roberge - Octobre 2012
Dynamique (10)
S Sous forme matricielle (autre forme):
29
Jean-Philippe Roberge - Octobre 2012
Commande des robots manipulateurs (1)
S Nous savons désormais que la dynamique d’un robot manipulateur peut être
obtenue à l’aide de la méthode d’Euler-Lagrange. Celle-ci peut s’exprimer sous
la forme matricielle:
S Quel genre de loi de commande pouvons-nous utiliser afin de régler le couple τ à
appliquer à chacune des articulations?
S Il y a plusieurs stratégies possibles, dépendament du contexte, dans le cadre du cours,
nous verrons en particulier:
S
PID axe par axe (joint par joint)
S
PD avec compensation de la gravité
S
Couple pré-calculé
S On pourra discuter aussi des stratégies suivante, bien que ce ne soit pas matière à
l’examen:
S
Contrôle hybride force position et commande en impédance
S
Commande adaptative
30
Jean-Philippe Roberge - Octobre 2012
Commande des robots manipulateurs (2)
PID axe par axe
31
Jean-Philippe Roberge - Octobre 2012
Commande des robots manipulateurs (3)
PID axe par axe
32
Jean-Philippe Roberge - Octobre 2012
Commande des robots manipulateurs (4)
PD avec compensation de gravité
33
Jean-Philippe Roberge - Octobre 2012
Commande des robots manipulateurs (5)
Commande par couple pré-calculé (precomputed torque)
Loi de
commande
 D  q  q  h  q, q   g  q 
Dynamique
du robot
34
Jean-Philippe Roberge - Octobre 2012
Commande non-linéaire d’un robot industriel à
6 DDL œuvrant sur une surface flexible
-Une étude basée sur la simulation...
-Motivations
-Objectifs
-Étapes préliminaires (non présentées)
et hypothèses simplificatrices
-Définition de la problématique
École Polytechnique de Montréal
ELE6204 – Commande des systèmes non-linéaires
Jean-Philippe Roberge
3 décembre 2009
1ère solution: Commande en impédance active [Anderson & Spong]
- Principe: Commander la relation entre la position de l’effecteur et
l’effort transmis.
W  Mc dc  Bc dc  Kc dc
Où:
dc  d  c
-Simulation de la commande par MATLAB / Simulink:
Simulation
2e solution: Commande hybride force-position [Khalil W.]
- Principe: Asservir simultanément l’effort et la position.
- Note: Nb DDL robot  nb DDL suivi traj. + nb DDL force désiré
M      F (  ,  )  SW1
M      F (  ,  )  J T (  )h  ( I  S )W2
Suivi de trajectoire 
Suivi de traj. force 
- S est la matrice des axes contraints. Chaque joint qi travaille pour le
suivi de trajectoire et le suivi de force.
Commande basée sur Lyapunov [Bolandi et al.]
- Rappel: dynamique du robot non contraint:
M  q  q  Vm (q, q)q  Ff (q, q)  Fg (q)  
- Forme de la commande basée sur Lyapunov:
M  q  qr  Vm (q, q)qr  Ff (q, q)  Fg (q)  Kd s  
- Où:
qr  qd  K p (qd  q)  qd  K p q
- Donc:
et
s  q  K pq  qr  q
M  q  s  Vm (q, q)s  Kd s  0
- Considérons le candidat de Lyapunov:
V (s) 
1 T
s M (q ) s  0
2
s  0
dV
1
1
 sT M  q  s  sT M  q  s  sT M  q   M 1  q V  q, q   M 1 (q ) K d  s  s T M  q  s
dt
2
2
1
  sT K d s  sT  M  q   2V  q, q   s  -sT K d s < 0  s  0
2
V
 0; M  q   2V ( q , q ) Antisymétrique
- En vertu du 1er théorème de Lyapunov: s→0. Comme:
s  x  K p x  e  K pe
- Donc, puisque s→0, alors les erreurs de position et de vitesse
tendent elles aussi vers 0.
Commande adaptative basée sur Lyapunov [Spong, Slotine]
- Algorithme de Slotine et Li: Jumeler une commande basée sur
Lyapunov à une loi d’adaptation des paramètres dynamiques.
- Loi de commande (basée sur Lyapunov):
  Mˆ  q  qr  Vˆm (q, q)qr  Fˆg (q)  Ff (q, q)  K d  qr - q 
- Soit
p  p  pˆ
  q , q , qr , qr  pˆ
Kd s
l’erreur sur l’estimation des paramètres dynamiques. Alors:
   q, q, qr , qr  p   q, q, qr , qr  p  Ff (q, q)  Kd s  M  q  q  Vm (q, q)q  Ff (q, q)  Fg (q)
- Note:   q, q, qr , qr  p  M  q  qr Vm (q, q)qr  Fg (q)
- Alors la dynamique de s: M (q)s  Vm (q, q)s  Kd s   q, q, qr , qr  p
- Stabilité:
V (s) 
1 T
( s M (q ) s  pT  1 p )
2

V ( s )   sT K d s  pT ( 1 p   T s )
Problématique
- On peut éliminer le deuxième terme en choisissant une loi d’adaptation
adéquate:
p   T s
- De sorte que:
- Implique que:
V ( s )   sT K d s  0

s0
t 
1) L’erreur de suivi de vit. et de pos. converge vers 0.
2) La dynamique de p est asymp. stable
Commande hybride & commande adaptative basée sur Lyapunov
Principe:
1) Identification des paramètres dynamiques du robot lors de la dynamique
non contrainte.
2) Conserver les paramètres dynamiques constants lors d’un contact.
Applications:
- Robot dont la dynamique est en alternance non-contrainte / contrainte.
- Robot dont la dynamique non-contrainte est dominante et précédente.
Simulation:
Résultats de la simulation
Références (utilisées lors de la présentation)
[1]
H. Bolandi, and S. M. Esmaeilzadeh, "Lyapunov-Based Nonlinear
Output Feedback Control of a Flexible Link.", 2009, pp. 397-404.
[2]
École de technologie supérieure, "Systèmes robotiques en contact,"
2009; http://www.gpa.etsmtl.ca/cours/sys827/index.html.
[3]
B. Siciliano, and L. Villani, Robot Force Control, Boston: Kluwer
Academic, 1999.
[4]
W. Khalil, and É. Dombre, Modélisation, identification et commande
des robots, 2 ed., Paris: Hermès Science, 1999.
[5]
J.-J. E. Slotine, Applied Nonlinear Control, Englewood Cliffs, New
Jersey Prentice Hall, 1991.
[6]
M. W. Spong, and M. Vidyasagar, Robot Dynamics and Control, New
York; Toronto: Wiley and Sons, 1989.
[7]
R. J. Anderson, and M. W. Spong, “Hybrid impedance control of
robotic manipulators,” Robotics and Automation, IEEE Journal of,
vol. 4, no. 5, pp. 549-556, 1988.
Au prochain cours…
S C’est l’examen!
S Je suis disponible pour vous rencontrer en personne si vous me donnez un
24h de pré-avis (au moins)
S Disponible en tout temps par courriel, particulièrement dans les dernières
heures avec l’examen.
44
Jean-Philippe Roberge - Octobre 2012
Références
S
[1] Absolute Beginner’s Guide to Building Robots, Gareth Branwyn, 2003
S
[2] http://spectrum.ieee.org/automaton/robotics/roboticssoftware/10_stats_you_should_know_about_robots Notes de cours (ELE3202) – Richard
Gourdeau & John Thistle
S
[3] http://www.geekologie.com/2008/12/thats-it-im-moving-robotic-sta.php
S
[4] Robot Modeling and Control, Mark W. Spong et al.,2006.
S
[5] Notes de cours (Manipulateurs) - ELE4203, Richard Gourdeau, juillet 2012.
45
Jean-Philippe Roberge - Octobre 2012