Vous êtes sur la page 1sur 19

Fonctionnement et contrôle des connaissances

Bon à savoir
Commande des Systèmes Robotiques - 5AR01 I Transparents de cours disponibles sur le site web de l’UE :
Modélisation http://chronos.isir.upmc.fr/~padois/teaching/comrob ;
Support de cours réalisé en collaboration avec Wael Bachta I Les cours et les TPs sont obligatoires.
I Les cours commencent à 8h30 et se terminent à 12h45. Tout(e)
étudiant(e) arrivant en retard pourra se voir refuser l’accès à la salle de
Vincent Padois
cours ou à la salle de TP. Deux heuristiques de détermination de ce qu’est
un retard acceptable : "On n’a pas le droit d’être plus en retard que le
vincent.padois@upmc.fr
prof." et "Un retard n’est jamais acceptable.".

Université Pierre et Marie Curie


Institut des Systèmes Intelligents et de Robotique (CNRS UMR 7222) Contrôle des connaissances
I Evaluation sur 100 points dont 60 points pour l’examen et 40 points pour
le CC
I Contrôle continu :
I Evaluation (en TP ou sur la base d’un compte-rendu) des TPs
I Eventuels exercices à rendre et/ou interrogations surprises
I Examen de 4h00 sans documents avec (potentiellement) une partie sous
Matlab (en janvier).

Contenu de l’UE Emploi du temps

Cours
I Introduction de la problématique de la commande en Robotique (C1)
I Modélisation et identification des systèmes Robotiques en vue de leur
commande (C2)
I Techniques de commande articulaire "classiques" en Robotique (C3)
I Techniques de commande opérationnelle (C4)

TPs
I Identification paramétrique du modèle dynamique d’un système Robotique
(sous Matlab, à partir de données expérimentales) (TP1)
I Contrôle décentralisé et réglage des correcteurs PID (avec un robot à deux
DdL) (TP2)
I Contrôle avec découplage dynamique (avec un robot à deux DdL) (TP3)
Notations Orientation d’un solide (1)
Définition
Définir la rotation d’un solide auquel on
attache un repère R1 par rapport à un
I Ri : repère numéro i repère R0
I P : point
I iP : coordonnées de P dans le repère i Méthode
Exprimer les coordonnées des vecteurs du repère R1 dans R0
I v ou OP : vecteurs
Ce qui nous donne :
I i OP : coordonnées du vecteur OP dans le repère n◦ i
I Rij matrice de rotation du repère Ri vers le repère Rj exprimée dans Ri x1 = x1 .x0 + x1 .y0 + x1 .z0
y1 = y1 .y0 + y1 .y0 + y1 .z0
I Mij matrice de transformation homogène du repère Ri vers le repère Rj
z1 = z1 .z0 + z1 .y0 + z1 .z0
exprimée dans Ri
D’où :
I u × v : produit vectoriel
I u.v : produit scalaire ! ! ! !
x1 x1 .x0 x1 .y0 x1 .z0  x0 x0
1 1 1
y1 = y1 .x0 y1 .y0 y1 .z0 x0 y0 z0 y0 = R10 y0
z1 z1 .x0 z1 .y0 z1 .z0 z0 z0
| {z }
Matrice de rotation de R1 vers R0
(1)

Orientation d’un solide (2) Rotations élémentaires

Méthode
On peut aussi définir la rotation du repère R0 vers le repère R1 en exprimant les Rotation d’un angle θ autour de x0
coordonées des vecteurs de R0 dans R1 : !
1 0 0
0 0 0
 R(θ,x0 ) = 0 cθ −sθ (3)
R01 = x1 y1 z1 0 sθ cθ
!
x0 .x1 x0 .y1 x0 .z1
= y0 .x1 y0 .y1 y0 .z1 (2)
Rotation d’un angle θ autour de y0
z0 .x1 z0 .y1 z0 .z1
| {z } !
Matrice de rotation de R0 vers R1 cθ 0 sθ
R(θ,y0 ) = 0 1 0 (4)
−sθ 0 cθ
Remarque
I Par définition, on a : R01 = R10 −1 Rotation d’un angle θ autour de z0
I On remarque aussi que R01 = R10 T !
cθ −sθ 0
R(θ,z0 ) = sθ cθ 0 (5)
R01 = R10 −1 = R10 T 0 0 1
Applications : changement de repère d’un vecteur (1) Applications : changement de repère d’un vecteur (2)

Soit un vecteur v, on cherche à déterminer ses coordonnés dans R1 connaissant


ses coordonnés dans R0 :
Composition
v = vx 0 x0 + vy 0 y0 + vz0 z0 Si on a :
!
  x0 I trois repères R0 , R1 et R2 et 2 v (les coordonnées du vecteur v dans R2 )
= vx 0 vy 0 vz0 y0
I les matrices de rotation R01 et R12
z0
  x1
! On peut écrire :
= vx 0 vy 0 vz0 R01 y1 I 1v = R12 2 v
| {z } z1 I 0v = R01 1 v
Coordonnés de v dans R1

    vx 1
!
vx 0
! En conclusion
On a donc : vx 1 vy 1 vz1 = vx 0 vy 0 vz0 R01 d’où vy 1 = R10 vy 0
vz1 vz0 0
v = R01 R12 2 v (7)
En conclusion
1
v = R10 0 v (6)

Applications : Rotation d’un vecteur dans un repère fixe (1) Applications : Rotation d’un vecteur dans un repère fixe (2)

Composition
Si l’on fait deux rotations successives d’angles respectifs θ1 et θ2 et d’axes
Objectif respectifs Ω1 et Ω2 on a :
Déterminer l’image d’un vecteur v par une rotation d’angle θ autour d’un axe
R(θ1 ,Ω1 )(θ2 ,Ω2 ) = R(θ2 ,Ω2 ) R(θ1 ,Ω1 )
Ω dans un repère fixe R0
En effet si l’on note v0 l’image de v par la première rotation et v00 l’image de v0
Méthode
par la seconde rotation, on a :
Exprimer les coordonnés de v dans un repère R1 qui est l’image de R0 par une
I 0 v0 = R10 0 v
rotation d’angle θ autour de Ω
I 0 v00 = R21 0 v0 = R21 10 R 0
v= R20
0
v
0 0 |{z} |{z} |{z}
v = 1 v = R10 0 v R(θ ,Ω ) R(θ ,Ω ) R(θ ,Ω )(θ ,Ω )
2 2 1 1 1 1 2 2
R10 est R01 −1 donc une rotation d’angle θ autour de Ω

R21 R10 ⇐⇒ R(θ1 ,Ω1 )(θ2 ,Ω2 ) = R(θ2 ,Ω2 ) R(θ1 ,Ω1 ) (8)
Applications : Rotation d’un vecteur dans un repère fixe (3) Propriétés des matrices de rotation

Problème
Comment faire pour obtenir l’image d’un
vecteur v par une rotation d’angle θ et autour I La norme des vecteurs lignes et vecteurs colonnes est égale à 1
d’un vecteur unitaire quelconque Ω ?
I Les vecteurs lignes et colonnes sont orthogonaux entre eux
Méthode
Transformer le problème pour n’utiliser que les rotations élémentaires :
I R−1 = RT

1. Transformer v par une rotation qui ramène l’axe de rotation sur x


I det(R) = 1

2. Faire la rotation d’angle θ autour de x


I Composition des rotation : R21 R10 ⇐⇒ R(θ1 ,Ω1 )(θ2 ,Ω2 ) = R(θ2 ,Ω2 ) R(θ1 ,Ω1 )

3. Faire l’inverse de l’opération 1


I Le produit des matrices de rotation n’est pas commutatif

R(θ,Ω) = R(α,x) R(β,y) R(θ,x) R(−β,y) R(−α,x)


!
ωx2 vθ + cθ ωx ωy vθ − ωz sθ ωx ωz vθ + ωy sθ (9)
= ωx ωy vθ + ωz sθ ωy2 vθ + cθ ωy ωz vθ − ωx sθ
ωx ωz vθ − ωy sθ ωy ωz vθ + ωx sθ ωz2 vθ + cθ

avec vθ = 1 − cθ et Ω = [ωx ωy ωz ]

L’attitude Les matrices homogènes

Définition
Un outil permettant d’effectuer un changement de repère d’un point en une
seule opération matricielle. On rajoute pour cela une quatrième coordonnée
Définition valant un aux coordonnées du point en question.
L’attitude d’un repère R1 par rapport à un repère R0 est définie par 0 O1 , les    
coordonées de O1 dans R0 et par R01 , la rotation de R0 vers R1 . tx px 1
 R01 ty  1  py 1 
M01 =  P= (11)
Les coordonnées d’un point P dans R0 peuvent être obtenues à partir de ses tz  pz1 
coordonnées dans R1 de la façon suivante : 0 0 0 1 1
0
0
où [tx ty tz ] = O1
P = 0 O1 + R01 1 P (10)
On a alors :

0
P = M01 1 P (12)
Propriétés des matrices homogènes Modèle géométrique direct

Composition

M02 = M01 M12 (13) Définition


Le modèle géométrique direct permet d’obtenir l’attitude du repère attaché à
Inverse l’organe terminal d’un robot à partir des positions articulaires
   
R T RT −RT T
M ⇒ M−1 (14)
0 1 0 1

Paramètrage de la position Paramètrage de la rotation : axe/angle

Définition
Toute rotation peut être représenté par un axe de rotation unitaire u et d’un
angle de rotation θ

Paramètrage (matrice de rotation ⇒ représentation axe/angle)


I Les trois paramètres de translation seront presque toujours les coordonnées
de l’origine du repère attaché à l’organe terminal !
r32 − r23
r11 + r22 + r33 − 1  1
I Ces coordonnées sont en général exprimées dans le repère R0 θ = arccos u= r13 − r31 (15)
2 2 sin(θ)
r21 − r12

Transformation inverse (représentation axe/angle ⇒ matrice de rotation)

R = cθ I3 + sθ AS(u) + (1 − cθ) uuT (16)


où ASu est la matrice de préproduit vectoriel associée au vecteur u.
Paramètrage de la rotation : Roulis, Tangage, Lacet (1) Paramètrage de la rotation : Roulis, Tangage, Lacet (2)

Définition
Toute rotation peut être représentée par trois rotations successives des axes x,
y et z : R = R(z,θl ) R(y,θt ) R(x,θr ) (autour des axes du repère initial)

Paramètrage Singularités

  p  I θt = 90◦ : θl = 0 et θr = arctan2 r12 , r22
θl = arctan2 r21 , r11 θr = arctan2 r32 , r33 θt = arctan2 − r31 , r11
2
+ r21
2 
I θt = −90◦ : θl = 0 et θr = − arctan2 r12 , r22
(17)

Transformation inverse
!
cθl cθt −sθl cθr + cθl sθt sθr sθl sθr + cθl sθt cθr
R= sθl cθt cθl cθr + sθl sθt sθr −cθl sθr + cθl sθt cθr (18)
−sθt cθt sθr cθt cθr

Paramètrage de la rotation : Angles d’Euler Z-Y-X (1) Paramètrage de la rotation : Angles d’Euler Z-Y-X (2)

Définition
Toute rotation peut être décomposée en trois rotations successives : une
première d’angle α autour de z, une deuxième d’angle β autour de y du repère
obtenu après la première rotation et finalement une rotation d’angle γ autour
de x du repère obtenu après la seconde rotation.
Singularités
Paramètrage 
I β = 90◦ : α = 0 et γ = arctan2 r12 , r22

 p   I β = −90◦ : α = 0 et γ = − arctan2 r12 , r22
α = arctan2 r21 , r11 β = arctan2 −r31 , r11
2
+ r21
2
γ = arctan2 r −32, r33
(19)

Transformation inverse
!
cαcβ cαsβsγ − sαcγ cαsβcγ + sαsγ
R= sαcβ sαsβsγ + cαcγ sαsβcγ − cαsγ (20)
−sβ cβsγ cβcγ
Notations, principe et contraintes Paramètrage

Notations
I Le robot est constitué de n + 1 corps reliés entre eux par n articulations Attachement des repères
I A chaque corps on associe un repère Ri . i variant de 0 à n I L’axe zi de Ri est confondu avec l’axe i + 1 du robot
I La i ème articulation qi relie les corps i − 1 et i I L’axe xi de Ri est perpendiculaire à l’axe i du robot

Idée motrice
I Fixer des repères à chaque corps du robot
I Calculer les matrices homogènes entre deux corps successifs
I Calculer la matrice homogène entre la base et l’organe terminal

Contraintes
L’attitude d’un repère Ri par rapport à un repère Ri−1 peut être représentée
par 4 paramètres à condition que :
I l’axe xi de Ri soit perpendiculaire à l’axe zi−1 de Ri−1
I l’axe xi de Ri coupe l’axe zi−1 de Ri−1

Paramètrage : cas particuliers Matrice homogène DH

Les axes zi−1 et zi sont parallèles


Une infinité de normales communes à zi−1 et zi . On place Oi tel que di = 0 ⇒ Transformation de Ri−1 à Ri
αi = 0 Elle est décomposée en 4 transformations élémentaires :

Les axes zi−1 et zi se coupent 1. Rotation autour de z d’un angle θi


On place Oi à l’intersection de zi−1 et zi ⇒ ai = 0 2. Translation le long de z d’une distance di
3. Translation le long de x d’une distance ai
Choix du repère R0 4. Rotation autour de x d’un angle αi
L’origine du repère R0 est placée de manière arbitraire le long de l’axe 1
La matrice de transformation homogène s’écrit donc :
Choix du repère Rn  
cθi −sθi cαi sθi sαi ai cθi
I zn est placé parallèlement à zn−1  sθi cθi cαi −cθi sαi ai sθi 
DHi−1,i = (21)
I On est placé au centre de l’outil 0 sαi cαi di 
0 0 0 1
I yn est placé dans la direction de fermeture de l’outil (par exemple une
pince)
Modèle géométrique inverse Composition des vitesses

I Pas de méthode systématique pour un manipulateur série général


Définition
I La solution n’est en général pas unique. Au maximum, un manipulateur
Soit un repère R1 lié à un solide S, en mouvement par rapport à un repère R0 .
série 6 axes possède 16 modes d’assemblage
La vitesse du point P exprimé dans R0 est définie de la façon suivante :
I Des algorithmes généraux existent pour certaines classes de manipulateurs.
0
Ils sont fastidieux (exemple : Pieper) vP∈1/0 = 0 vO1 ∈1/0 + 0 Ω1/0 × 0 O~1 P
I Quand on cherche une expression formelle, on procède en général "à la = 0 vO1 ∈1/0 + AS(0 Ω1/0 )R01 1 P (22)
main". Souvent on découple la partie orientation de la partie rotation 0 O1 0 1
= v01 + AS( Ω1/0 )R01 P
I Pour une inversion numérique, on utilise un algorithme itératif
(optimisation par la méthode de Newton)

Torseur cinématique Modèle cinématique direct

Définition
Le torseur cinématique d’un repère R1 par rapport à un repère R0 est défini par
le vecteur vitesse de translation de l’origine de R1 par rapport à R0 ainsi que Objectif
par le vecteur vitesse de rotataion de R1 par rapport à R0 .
On cherche à exprimer la relation entre :
 
0
0 O1
v01 I Les vitesses articulaires qi
C01 = 0 (23)
Ω01 I La vitesse de l’outil dans un repère fixe. Cette vitesse peut être exprimée
par :
I La dérivée des paramètres opérationnels
Composition
Soient : I par les éléments de réduction en un point M du torseur cinématique
{v0n M , Ω0n }
I 0 C01 le torseur cinématique de R1 par rapport à R0
I 1 C12 le torseur cinématique de R2 par rapport à R1
On a :
0
v02 =0 v01 O2 + 0 v12 O2
0
(24)
Ω02 =0 Ω01 + 0 Ω12
Définition du Jacobien (1) Définition du Jacobien (2)

Supposons qu’on ait n fonctions fi...n de m variables x1...m :

y1 = f1 (x1 , x2 , . . . , xm )
y2 = f2 (x1 , x2 , . . . , xm )
.. (25) Ceci peut être mis sous forme matricielle : dY =
∂F
dX
. ∂X
yn fn (x1 , x2 , . . . , xm ) ∂F
= La matrice est appelée jacobien de F et a la forme suivante :
∂X
Les différentielles des yi s’écrivent de la façon suivante :  ∂f1 ∂f1

∂x1
... ∂xm
dy1 = ∂f1
dx1 + ∂f1
dx2 + ··· + ∂f1
dxn J(X) = 
 .. .. .. 
(27)
∂x1 ∂x2 ∂xn . . . 
∂fn ∂fn
...
dy2 = ∂f2
∂x1
dx1 + ∂f2
∂x2
dx2 + ··· + ∂f2
∂xn
dxn (26)
∂x1 ∂xm

..
.
dyn = ∂fn
∂x1
dx1 + ∂fn
∂x2
dx2 + ··· + ∂fn
∂xn
dxn

Jacobien naturel du robot (1) Calcul du jacobien naturel du robot (1)


Calcul direct
La partie vitesse en translation

Définition I Calculer la matrice homogène de transformation M0n (Utilisation du


Soit un robot série possédant n articulations et dont les coordonnées modèle géométrique direct)
articulaires sont notées qi , i variant de 1 à n et q = [q1 · · · qn ]T le vecteur des I Les trois premiers éléments de la dernière colonne correspondent à 0 On qui
coordonnées articulaires. Soit 0 v0n On la vitesse de l’origine du repère lié à dépend de q
l’organe du terminal exprimée dans le repère de base et 0 Ω0n les coordonnées
du vecteur vitesse de rotation de l’organe terminal dans le repère de base.
I La dérivée de de 0 On donne la première partie du jacobien : 0 v0n On = 0 Jv q̇

La partie vitesse de rotation


On a :
 0
 I Extraire la matrice de rotation R0n de M0n
v0n On 0 dR0n dR0n dR0n
0 = J(q)q̇ (28) I Calculer Rn0 = q̇1 Rn0 + · · · + q̇n Rn0
Ω0n dt dq1 dqn
!
J est appelé le jacobien naturel du robot. 0 −ωz ωy
0 dR0n
I A partir de AS( Ω0n ) = ωz 0 −ωx = Rn0 , effectuer
dt
−ωy ωx 0
une identification terme à terme pour obtenir la deuxième partie du
jacobien : 0 Ω0n = 0 Jω q̇
Calcul du jacobien naturel du robot (2) Calcul du jacobien naturel du robot (3)

Calcul par composition des vitesses


Les vitesses linéaires
On a : 0 v0n On = 0 v01 On + 0 v12 On + · · · + 0 vi−1,i On + · · · + 0 vn−1,n On Calcul par composition des vitesses
Donc en résumé, on a :
I Si l’axe i est prismatique on a : 0 vi−1,i On = 0 zi−1 q̇i
I Si l’axe i est rotoïde on a : 0 vi−1,i On = 0 zi−1 q̇i × (R0,i−1 i−1 On )
 0

Donc la première partie du jacobien s’écrit : 0 Jv = 0 Jv
 J= 0
(1 − 1 )0 zi−1 + 1 0 zi−1 × (R0,i−1 i−1 On ) . . . (1 − n )0 zn−1 + n 0 zn−1 × (R0,n−1 n−1 On ) Jω
 
(1 − 1 )0 zi−1+1 0 zi−1×(R0,i−1 i−1 On ) . . . (1 − n )0 zn−1+n 0 zn−1×(R0,n−1 n−1 On )
où i = 1 si l’axe i est rotoïde et 0 si l’axe est prismatique =
1 0 zi−1 ... n 0 zn−1
Les vitesses angulaires (29)
On a 0 Ω0n = 0 Ω01 + 0 Ω12 + · · · + 0 Ωi−1,i + · · · + 0 Ωn−1,n
où i = 1 si l’axe est rotoïde et 0 s’il est prismatique.
I Si l’axe i est prismatique : 0 Ωi−1,i = 0
I Si l’axe i est rotoïde : 0 Ωi−1,i = 0 zi−1 q̇i

Donc la première partie du jacobien s’écrit : 0 Jω = 1 0 zi−1 . . . n 0 zn−1

Calcul du jacobien naturel du robot (4) Changement de repère du jacobien naturel

Méthode retenue Expression du jacobien dans un repère différent de celui attaché à la base
Pour calculer le jacobien du robot, on utilisera la méthode de calcul direct pour Soit Ri le repère dans lequel on veut exprimer le jacobien du robot, on a :
la vitesse linéaire et la composition des vitesses pour la partie relevant de la  
vitesse angulaire : i Ri0 0 0
J= J (31)
0 Ri0

 
0
0
Jv Expression du jacobien en un point attaché à un point différent du centre
J= 0 de l’outil

  Généralement, le torseur cinématique est exprimé au centre de l’outil de
∂ 0 On ∂ 0 On (30) l’organe terminal noté On . Si l’on veut l’exprimer en un autre point de l’outil P,
...
 ∂q1 ∂qn  nous utilisons la relation suivante :
= 
 
1 0 zi−1 ... n 0 zn−1 0 I3 −AS(0 O~n P) 0
JP = J On (32)
0 I3
où i = 1 pour les articulations rotoïdes et 0 pour les axes prismatiques.
Jacobien du paramétrage Modèle cinématique inverse

Définition Définition
Le jacobien du paramétrage qui relie la variation des paramètres représentant la On a défini le jacobien J d’une fonction F (X) par la relation suivante :
rotation (angles d’Euler, ...) au vecteur de rotation angulaire dY = J(X)dX En divisant par dt, on obtient : Ẏ = J(X)Ẋ. Le jacobien donne
donc la vitesse de Y en fonction de la vitesse de X.
Le jacobien de paramétrage pour la représentation "Angles d’Euler
Z-Y-X" Pour obtenir la vitesse de X en fonction de la vitesse de Y, on calcule :

!  Ẋ = J−1 (X)Ẏ
0 −sα cβcα α̇
Ω0n = α̇z0 + β̇y1 + γ̇x2 ⇒ Ω0n = 0 cα cβsα  β̇  (33) J−1 (X) lorsqu’il existe s’appelle le jacobien inverse de F
1 0 −sβ γ̇
| {z }
0J
p

Jacobien inverse d’un robot Jacobien inverse d’un robot : singularités (1)

Il existe deux types de singularités :


Définition I Les singularités aux limites de l’espace de travail qui apparaissent lorsque
Le jacobien inverse d’un robot permet d’obtenir les vitesses articulaires à partir
le bras est complètement tendu
des vitesses opérationnelles :
 
0
v0n On I Les singularités à l’intérieur de l’espace de travail qui apparaissent lors de
q̇ = J (q)
+
(34)
Ω0n configurations du robot où une infinité de positions articulaires donnent la
même attitude de l’organe terminal
Avec J+ la pseudo-inverse de J : J+ = (JT J)−1 JT
Dans le cas particulier où le robot a 6 axes, on a J+ = J−1
Remarque : L’inverse du jacobien de paramétrage admet également des
singularités.
Remarque : Si l’on veut obtenir les vitesses articulaires à partir des vitesses des
paramètres de représentation (par exemple les vitesses des angles d’Euler), il
faut inverser également le jacobien du paramétrage
Jacobien inverse d’un robot : singularités (2) Transmission des efforts

La gestion des singularités est impérative afin de prévenir des mouvements


erratiques du robot. Une façon simple mais pas optimale pour les gérer est la
suivante : Le vecteur des efforts F agissant sur l’organe terminal est lié aux efforts τ
I Pour les singularités en limite de l’espace de travail, on peut imposer des exercés par les actionneurs de la façon suivante :
butées logicielles afin d’éviter d’arriver dans des configurations "bras
tendu" τ = 0 J(q)T 0 F (35)
I Pour les singularités à l’intérieur de l’espace de travail, si on se rapproche Remraques
d’une configuration singulière q, on calcule J+ (q + ∆q) au lieu de J+ (q), I τ doit tenir compte des pertes par frottements
avec ∆q assez grand pour pouvoir calculer la pseudo-inverse. I La relation précédente est valable à vitesse constante et peut être étendue
I ,→ Méthode de régularisation de Tikhonov (moindres carrés amorties). pour une vitesse nulle

Équations d’Euler-Lagrange (1) Équations d’Euler-Lagrange (2)

Équations d’Euler-Lagrange Expression de l’énergie cinétique


d ∂L ∂L
− = τi (36) n
X 1 1 T
dt ∂ q̇i ∂qi K = mi vi T vi + ωi Ii ωi (37)
2 2
i=1
avec :
I L = K − V : le Lagrangien du système Avec :
I K : l’énergie cinétique du système I Ii : matrice d’inertie du corps i exprimée dans un repère lié au corps i et
I V : l’énergie potentielle du système dont l’origine est au centre de gravité du corps i
I qi est la i ème coordonnée généralisée du système
I ωi : vitesse angulaire du corps i exprimée dans un repère lié au corps i et
ème dont l’origine est au centre de gravité du corps i
I τi est la force généralisée appliquée au i élément du système
I vi : vitesse linéaire du centre de gravité du corps i
I mi : masse du corps i
Équations d’Euler-Lagrange (3) Équations d’Euler-Lagrange (4)

Expression de vi et ωi Matrice d’inertie du robot


L’énergie cinétique s’écrit donc :
vi = Jvi (q)q̇ (38) n  
1 TX
K = q̇ mi Jvi (q)T Jvi (q) + Jωi T (q)Ii Jωi (q) q̇
2
i=1 (40)
ωi = Jωi (q)q̇ (39)
1
où : = q̇T A(q)q̇
2
I Jvi est le jacobien qui relie la variation de vitesse du centre de gravité du La matrice A(q) est une matrice symétrique définie positive de dimension n × n
corps i aux vitesses articulaires qui dépend de la configuration du robot : elle est appelée la matrice d’inertie
I Jωi est le jacobien qui relie la variation de vitesse de roation du corps i aux du robot
vitesses articulaires. Ce jacobien doit être exprimé dans le même repère
que la matrice d’inertie.

Équations d’Euler-Lagrange (5) Équations d’Euler-Lagrange (5)

Expression de l’énergie potentielle X


∂L
On a : = akj (q)q̇j
X0 n ∂ q̇k
j
V = gT Ogi mi (41) d ∂L X X d X X ∂akj
i=1 Et donc : = akj (q)q̈j + akj q̇j = akj (q)q̈j + q̇i q̇j
dt ∂ q̇k dt ∂qi
j j j i,j
L’énergie cinétique peut s’écrire : ∂L 1 X ∂aij ∂V
De même : = q̇i q̇j −
∂qk 2 ∂qk ∂qk
i,j
1
K = q̇T A(q)q̇ Ainsi les équations d’Euler-Lagrange deviennent :
2
1X
n (42)
= aij (q̇)q̇i q̇j X X  ∂akj 1 ∂aij

∂V
2 akj (q)q̈j + − q̇i q̇j + = τk k = 1, . . . , n (44)
i=1 ∂qi 2 ∂qk ∂qk
j i,j
L’énergie potentielle ne dépendant que de la configuration, le lagrangien s’écrit
alors :
1X
L=K −V = aij (q)q̇i q̇j − V (q) (43)
2
i,j
Équations d’Euler-Lagrange (6) Expression du modèle dynamique du robot

X ∂akj  
1 X ∂akj ∂aki
En utilisant le fait que : q̇i q̇j = + q̇i q̇j
∂qi 2 ∂qi ∂qj
i,j i,j
Au final :
On obtient : X X
X  ∂akj  X 1  ∂akj  akj (q)q̈j + cijk (q)q̇i q̇j + φk (q) = τk k = 1...n (45)
1 ∂aij ∂aki ∂aij
− q̇i q̇j = + − j i,j
∂qi 2 ∂qk 2 ∂qi ∂qj ∂qk
i,j i,j Ce qui donne sous forme matricielle :
On note :
 ∂a  A(q)q̈ + C(q, q̇)q + g(q) = τ (46)
∂aki
kj ∂aij X
cijk = + − et φk = ∂V
∂qk xkj le (k, j) ème
élément de C est défini par : xkj = cijk (q)q̇i
∂qi ∂qj ∂qk
i
et on remarque que : Les termes impliquant un produit q̇i2 sont appelés centrifuges et ceux
cijk = cjik impliquant un produit q̇i q̇j sont les termes de Coriolis

Modèle dynamique d’un axe Modèle avec réducteur idéal (1)


Modélisation du réducteur
Le modèle dynamique d’un axe :
1
I La machine à courant continu avec une boucle d’asservissement de courant q̇s = q̇m (47)
N
I Le réducteur supposé idéal
Dynamique de la partie rapide
I Le bras
Γm − Γt − fm q̇m = (Jm + Jr 1 )q̈m (48)

Dynamique de la partie lente

NΓt − fs q̇s = (Js + Jr 2 )q̈s + g(qs ) (49)

(47) et (49) :
 
1 q̇m q̈m
Γt = fs + (Js + Jr 2 ) + g(qs ) (50)
N N N
(50) et (48)
  g(qs )
 
fs Js + Jr 2
Γm − + fm q̇m − = Jm + Jr 1 + q̈s (51)
N2 N N
Modèle avec réducteur idéal (2) Modèle avec réducteur idéal (3)

Soit finalement :

   
NΓm = (Jm + Jr 1 )N 2 + Js + Jr 2 q̈s + N 2 fm + fs q̇s +g(qs ) = Jeq q̈s +feq q̇s+g(qs )
| {z } | {z }
Jeq feq
(52)
Soit en Laplace :

NΓm − g(qs )
qs = (53)
Jes s 2 + feq s

Modélisation des flexibilités (1) Modélisation des flexibilités (2)


Modélisation du réducteur
1
q̇s = q̇m (54)
I Bien entendu, aucun des solides constituant le robot n’est infiniment rigide N
Dynamique de la partie rapide
I Sauf cas très particuliers (robots légers à grand élancement pour des
applications spécifiques, par exemple le Shuttle Arm, de la navette spatiale
américaine), les corps du robot peuvent être supposés infiniment rigides ; Γm − Γt − fm q̇m = (Jm + Jr 1 )q̈m (55)
les flexibilités sont localisées au niveau des articulations Dynamique de la partie lente après le ressort
I La plupart du temps, le modèle est discret : on ajoute des ressorts en série
Γr − fs q̇s = Js q̈s +  
g(q (56)
dans la transmission. s)
Dynamique de la partie lente avant le ressort

NΓt − Γr = Jr 2 q̈i (57)


Modèle du ressort

Γr = K (qi − qs ) (58)
(56) et (58) :

K (qi − qs ) = Js q̈s + fs q̇s (59)


Modélisation des flexibilités (3) Modélisation des flexibilités (4)

(57) et (58) :

NΓt = Γr + Jr 2 q̈i = K (qi − qs ) + Jr 2 q̈i (60)


Soit :

qs K
= (61)
qi K + fs s + Js s 2
Et :


NΓt = K (qi − qs ) + Jr 2 s 2 qi = K + Jr 2 s 2 qi − Kqs
 K + Jr 2 s 2  K + fs s + Js s 2  
= − K qs (62)
K
 
 Jr 2 fs 3 Jr 2 Js 4
= fs s + Js + Jr 2 s 2 + s + s qs
K K

Modélisation des flexibilités (5) Modélisation des flexibilités (6)


Modélisation des flexibilités (7) Modélisation des frottements secs (1)

En resumé :
I Lorsque le couple transmis Γt est faible, aucun mouvement n’est produit :
I Un modèle rigide est une approximation du modèle réel, qui n’est vraie
il existe un couple de frottement résistant égal au couple transmis à l’arrêt
qu’à basse fréquence.
(couple de frottements secs Γfs ).
I La valeur des premiers modes de vibration (première fréquence de
I Lorsque le couple moteur est suffisant, l’axe est en mouvement, mais le
résonance pour chaque axe) est une mesure de qualité d’un robot.
couple résistant ne vérifie pas strictement la loi linéaire : Γf = ff q̇
Typiquement, de 1 Hz (très mauvais robot) à 20Hz (très bon robot).
I Pour que l’approximation soit valide, il faut que le premier mode naturel Modèle de Coulomb
du robot soit supérieur à la bande passante de l’asservissement en boucle
fermée. I Si Γt < Γ0 alors q̇ = 0 et Γfs = Γt
I Dans la suite de ce cours, on retiendra un modèle rigide pour les axes des I Sinon Γfs = Γ0
robots, tout en gardant en mémoire que la bande passante des On écrit parfois ce modèle sous la forme : Γfs = Γ0 sgn(q̇) mais cela ne traduit
asservissements de position doit rester assez petite devant les modes pas bien la valeur du frottement lorsque l’axe est "collé"
flexibles du robot.

Modélisation des frottements secs (2) Modèle retenu pour la suite


Effet de Stribeck
Le modèle de Coulomb : Γfs = Γ0 sgn(q̇) ne permet pas de traduire la diminution
des frottements en fonction de la vitesse à basse vitesse (effet dit de Stribeck).
Modèle plus réaliste : le couple résistant Γ1 à haute vitesse est inférieur au
couple de décollement Γ0  
Aux basses vitesses, la courbe a une pente négative. Ce phénomène, à l’origine NΓm = N 2 (Jm + Jr 1 ) + Js + Jr 2 q̈s + fs + N 2 fm q̇s + Γfs + g(qs ) (63)
du stick-slip (broutement) rend difficile le contrôle du mouvement à basse
vitesse. où : Γm = kc im
 
Γ0 − Γ1
Un modèle possible est : Γfs = Γ1 + 2 sqn( q̇)
1 + q̇q̇2
1
Intégration de la dynamique d’actionnement (1) Intégration de la dynamique d’actionnement (2)

I On suppose que les transmissions sont infiniment rigides I Dans le cas général, à partir des relations cinématiques entre vitesses des
moteurs et vitesses relatives des axes, on définira W par :
I Dans la plupart des cas, les actionneurs sont montés en série : l’actionneur
i est placé entre le corps i-1 et le corps i :
q̇m = Wq̇ (65)
I Et la relation sur les couples est établie à partir du principe des puissances
∀i ∈ {1 . . . N} Γi = Ni Γmi ⇒ Γ = WΓm avec W = Diag(Ni )
(64) virtuelles :
∀i ∈ {1 . . . N} q̇i = N1i q̇mi ⇒ q̇ = W−1 q̇m

• Remarque : puissance en entrée = ΓTm q̇m , puissance en sortie = ∀Γm , ∀q̇m , ΓTm q̇m = ΓTm Wq̇ = ΓT q̇ ⇐⇒ ΓT = ΓTm W ⇐⇒ Γ = WT Γm
ΓT q̇ = Γm T WT W−1 q̇m = ΓTm q̇m car W est diagonale (66)

Intégration de la dynamique d’actionnement (3) Modèle complet

Dynamique de la partie rapide

Γm − Γt − F m q̇m = (Jm + Jr )q̈m (67)

Dynamique de la partie lente Actionneurs

WT Γt − Fs q̇ − Γfs − Jr 2 q̈ = A(q)q̈ + C(q, q̇)q̇ + g(q) (68) Γm = Kc im (69)

Modèle complet

H(q)q̈ = WT Kc im − C(q, q̇)q̇ − g(q) − Γft avec : (70)


 T
H(q) = A(q) + W (Jm + Jr 1 )W + Jr 2
(71)
Γft = (WT Fm W + Fs )q̇ + Γfs
Biblographie

Commande des Systèmes Robotiques - 5AR01


Modélisation
Support de cours réalisé en collaboration avec Wael Bachta

1. J. Gangloff. Robotique de manipulation. Cours de l’École Nationale


Vincent Padois
Supérieure de Physique de Strasbourg
http://eavr.u-strasbg.fr/wiki/index.php/Robotique_de_manipulation
vincent.padois@upmc.fr
2. G. Morel. Commande en robotique de modélisation. Ancien cours de
master de robotique à Paris 6. Université Pierre et Marie Curie
Institut des Systèmes Intelligents et de Robotique (CNRS UMR 7222)

Vous aimerez peut-être aussi