Vous êtes sur la page 1sur 35

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

Année Universitaire 2016/2017


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
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


•  Modèle cinématique direct
•  Modèle cinématique inverse

3.3 Modèle dynamique


•  Formulation de Lagrange
3
Exemples

Modèle géométrique direct


de manipulateurs industriels

4
2 – Manipulateur sphérique

O0
θ2
O2

θ1

Remarques:
•  L’origine du repère 0 est située à l’intersection des axes z0 et z1 de façon que d1 = 0
•  L’origine du repère 2 est située à l’intersection des axes z1 et z2
5
Manipulateur sphérique

Segment ai αi di θi
1 0 _π/2 0 θ1
2 0 π/2 d2* θ2
3 0 0 d3 0

Tableau des paramètres de DH (* : d2 n’est pas une variable)

Nous avons deux articulations rotoïdes et une articulation prismatique,


donc il faut déterminer trois matrices de transformation

La 1ère transformation est:


⎡ ⎤
cos θ1 0 − sin θ1 0
 
Rz (θ1 )Rx (−π/2) 03×1 ⎢ sin θ 0 cos θ1 0⎥
⎢ 1 ⎥
A01 (θ1 ) = =⎢ ⎥
01×3 1 ⎣ 0 −1 0 0⎦
0 0 0 1
6
Transformation homogène de DH Ai−1
i (qi )
articul. i–1 articul. i articul. i+1

segm. segm.

ai
θi
di
ai−1

Ai−1
i (qi ) = Ai−1 i
i A i

axe i
où ⎡ ⎤ ⎡ ⎤
cos θi − sin θi 0 0 1 0 0 ai
⎢ sin θ cos θi 0 0⎥ ⎢0 cos αi − sin αi 0⎥
⎢ i ⎥ i ⎢ ⎥
Ai−1
i = ⎢ ⎥ , Ai = ⎢ ⎥
⎣ 0 0 1 di ⎦ ⎣0 sin αi cos αi 0⎦
0 0 0 1 0 0 0 1
7
Manipulateur sphérique
Dans notre cas a1 = 0, α1 = −π/2, d1 = 0, θ1 = 0 (1ème ligne du tableau de DH)
⎡ ⎤
cos θ1 0 − sin θ1 0
 
Rz (θ1 )Rx (−π/2) 03×1 ⎢ sin θ 0 cos θ1 0⎥
0 ⎢ 1 ⎥
A1 (θ1 ) = =⎢ ⎥
01×3 1 ⎣ 0 −1 0 0⎦
0 0 0 1
En effet, graphiquement:

z1’
z0 z1’ α1 = −π/2
y1’
y1’ z1

y0
θ1
x0 x1
x1’
x1’ y1
8
Manipulateur sphérique
Maintenant, a2 = 0, α2 = π/2, d2 = 0, θ2 = 0 (2ème ligne du tableau de DH):

⎡ ⎤ ⎡ ⎤
0 cos θ2 0 sin θ2 0
⎢Rz (θ2 )Rx (π/2) 0⎥ ⎢ sin θ2 0 − cos θ2 0⎥
A12 (θ2 ) = ⎢ ⎥=⎢ ⎥
⎣ d2 ⎦ ⎢
⎣ 0 1 0

d2 ⎦
0 0 0 1 0 0 0 1

Graphiquement:
z2
θ2

z1
α2 = π/2 d2
x1
y2
y1 x2
9
z3
Manipulateur sphérique
Enfin, a3 = 0, α3 = 0, d3 = 0, θ3 = 0 (3ème ligne du tableau):

⎡ ⎤ ⎡ ⎤
0 1 0 0 0
⎢ I3 0 ⎥ ⎢ 0 1 0 0 ⎥ y3
A23 (d3 ) = ⎢ ⎥ = ⎢


⎥ z2
⎣ d3 ⎦ ⎣ 0 0 1 d3 ⎦ x3
0 0 0 1 0 0 0 1
d3
Évidemment, la 3ème articulation n’a aucune incidence
sur l’orientation de l’effecteur
y2
Conclusion:
x2
⎡ ⎤
c1 c2 −s1 c1 s2 c 1 s 2 d3 − s 1 d2
⎢ s 1 s 2 d3 + c 1 d2 ⎥
⎢ s1 c2 c1 s1 s2 ⎥
T03 (q) = A01 A12 A23 = ⎢ ⎥
⎣ −s2 0 c2 c 2 d3 ⎦
0 0 0 1
T
où q = [ θ1 , θ2 , d3 ] et c1 = cos θ1 , s1 = sin θ1
10
Manipulateur sphérique
y30
y3

θ2

θ1

Remarques:
0
•  L’orientation du vecteur unitaire y3 est déterminée uniquement par la
1ère articulation, car l’axe z1 de la 2ème articulation est parallèle à l’axe y3
•  Dans le manipulateur sphérique, le repère 3 peut représenter le repère
d’un effecteur (pince), à savoir T3e = I4
11
3 – Manipulateur cylindrique
d3
Exercice:

1.  Positionner les repères et


déterminer les paramètres
de DH du manipulateur

2.  Calculer le modèle géométrique d2


direct du manipulateur

3. Les coordonnées d’un point P dans d1


le repère 3 de l’effecteur, sont:
p3 = [0, 0, 1]T .
θ1
Déterminer les coordonnées du
même point dans le référentiel
de la base

4. Écrire une fonction MATLAB qui prend en entrée les valeurs des variables
articulaires du robot et les coordonnées du point P dans le repère de
l’effecteur, et qui renvoie les coordonnées du point P dans le repère de la base

12
4 - Manipulateur anthropomorphe

a3

O0 a2

θ3
θ2

θ1

Remarques:
•  Le manipulateur anthropomorphe correspond à un manipulateur planaire
à deux segments avec une rotation supplémentaire autour d’un axe du plan
•  L’origine du repère 0 est située à l’intersection des axes z0 et z1 de façon que d1 = 0
•  Les axes z1 et z2
sont parallèles et pour les axes x1 et x2 on peut faire le même
choix que pour le manipulateur planaire à 3 segments déjà étudié
13
Manipulateur anthropomorphe

Segment ai αi di θi

1 0 π/2 0 θ1
2 a2 0 0 θ2
3 a3 0 0 θ3
Paramètres de DH

Nous avons trois articulations rotoïdes

La 1ère transformation est:


⎡ ⎤
cos θ1 0 sin θ1 0
 
Rz (θ1 )Rx (π/2) 03×1 ⎢ sin θ 0 − cos θ1 0⎥
⎢ 1 ⎥
A01 (θ1 ) = =⎢ ⎥
01×3 1 ⎣ 0 1 0 0⎦
0 0 0 1
14
Manipulateur anthropomorphe
Nous avons a1 = 0, α1 = π/2, d1 = 0, θ1 = 0 (1ère ligne du tableau de DH):
⎡ ⎤
cos θ1 0 sin θ1 0
 
Rz (θ1 )Rx (π/2) 03×1 ⎢ sin θ 0 − cos θ1 0⎥
⎢ 1 ⎥
A01 (θ1 ) = =⎢ ⎥
01×3 1 ⎣ 0 1 0 0⎦
0 0 0 1
En effet, graphiquement:
z0 y1

α1 = π/2

x1

z1
θ1

15
Manipulateur anthropomorphe
Pour les deux articulations rotoïdes restantes (articulation 2 et 3):

⎡ ⎤
cos θi − sin θi 0 ai cos θi
⎢ sin θ cos θi 0 ai sin θi ⎥
⎢ i ⎥
AAi−1
i−1
i1 (θ
(θii) = ⎢ ⎥ , i ∈ {2, 3}
⎣ 0 0 1 0 ⎦
0 0 0 1
Conclusion: ⎡ ⎤
c1 c23 −c1 s23 s1 c1 (a2 c2 + a3 c23 )
⎢s c −s1 s23 −c1 s1 (a2 c2 + a3 c23 ) ⎥
⎢ 1 23 ⎥
T03 (q) = A01 A12 A23 = ⎢ ⎥
⎣ s23 c23 0 a2 s2 + a3 s23 ⎦
0 0 0 1
où q = [θ1 , θ2 , θ3 ]T et c23 = cos(θ2 + θ3 ), s23 = sin(θ2 + θ3 )

Remarque: Puisque z3 est aligné avec z2, le repère 3 ne coïncide pas


avec un repère admissible pour l’effecteur. Pour y remédier, il faut définir
3
une transformation constante Te appropriée
16
5 - Poignet de type rotule (ou poignet sphérique)

θ6
θ5

θ4

•  Les variables des articulations sont numérotées à partir de “4” car le poignet
est typiquement monté sur un porteur à 3 DDL d’un robot à 6 DDL

•  Les 3 axes des articulations rotoïdes sont concourants (c'est-à-dire, les axes
se coupent en un même point Q, le point bleu en figure)

•  Si les axes z3, z4, z5 ont été fixés et l’axe x3 a été choisi, la direction de x4
et de x5 reste indéterminée
17
Poignet de type rotule

Segment ai αi di θi
4 0 _π/2 0 θ4
5 0 π/2 0 θ5
6 0 0 d6* θ6

Paramètres de DH

Nous avons trois articulations rotoïdes

La 1ère transformation est (cf. la 1ère transformation du manipulateur sphérique):


⎡ ⎤
cos θ4 0 − sin θ4 0
 
Rz (θ4 )Rx (−π/2) 03×1 ⎢ sin θ 0 cos θ4 0⎥
⎢ 4 ⎥
A34 (θ4 ) = =⎢ ⎥
01×3 1 ⎣ 0 −1 0 0⎦
0 0 0 1
18
Poignet de type rotule
⎡ ⎤
cos θ4 0 − sin θ4 0
 
Rz (θ4 )Rx (−π/2) 03×1 ⎢ sin θ 0 cos θ4 0⎥
⎢ 4 ⎥
A34 (θ4 ) = =⎢ ⎥
01×3 1 ⎣ 0 −1 0 0⎦
0 0 0 1
Graphiquement:

z3
α4 = −π/2
x4

θ6
θ5 x3
z4 θ4
θ4

19
Poignet de type rotule
La 2ème transformation est (cf. la 1ère transformation du manip. anthropomorphe):
⎡ ⎤
cos θ5 0 sin θ5 0
 
Rz (θ5 )Rx (π/2) 03×1 ⎢ sin θ 0 − cos θ5 0⎥
⎢ 5 ⎥
A45 (θ5 ) = =⎢ ⎥
01×3 1 ⎣ 0 1 0 0⎦
0 0 0 1
Graphiquement:
x5

x4
θ5
θ6
z5
θ5
z4
α5 = π/2
θ4

20
Poignet de type rotule

Enfin: ⎡ ⎤
⎡ ⎤ cos θ6 − sin θ6 0 0
0
⎢ Rz (θ6 ) 0⎥ ⎢ sin θ6 cos θ6 0 0 ⎥
A56 (θ6 ) = ⎢ ⎥=⎢ ⎥
⎣ d6 ⎦ ⎢
⎣ 0 0

1 d6 ⎦
0 0 0 1 0 0 0 1
Graphiquement:
x5

d6

z5
z6
θ6 θ6
θ5 y5
x6
θ4 y6

21
Poignet de type rotule
Conclusion:
⎡ ⎤
c4 c5 c6 − s4 s6 −c4 c5 s6 − s4 c6 c4 s5 c 4 s 5 d6
⎢s c c + c s −s4 c5 s6 + c4 c6 s 4 s 5 d6 ⎥
3 3 4 5 ⎢ 4 5 6 4 6 s4 s5 ⎥
T6 (q) = A4 A5 A6 = ⎢ ⎥
⎣ −s5 c6 s5 s6 c5 c 5 d6 ⎦
0 0 0 1

où q = [θ4 , θ5 , θ6 ]T

θ6
θ5

θ4

Remarque: Les vecteurs unitaires du repère 6 coïncident avec les


vecteurs unitaires d’un repère admissible pour l’effecteur
22
6 - Manipulateur anthropomorphe avec poignet de type rotule

a3

Manipulateur
anthropomorphe
θ3
θ2
T03
θ1

Porteur +
θ6
θ5
Problème: Le repère 3 du porteur Poignet de
ne peut pas coïncider avec le repère 3 type rotule
du poignet de type rotule θ4
T36
T06 = T03 T36
23
Manipulateur anthropomorphe avec poignet de type rotule

Deux solutions possibles pour determiner T06 :


Solution 1: On interpose une matrice de transformation constante entre
T03 and T36 qui permet d’aligner les deux repères

Solution 2: On redéfinit les repères de toute la structure en utilisant


la convention de Denavit-Hartenberg

θ5

θ4 θ6

θ3
θ2

θ1

24
Manipulateur anthropomorphe avec poignet de type rotule

Si on adopte la Solution 2, nous obtenons le tableau suivant:

Segment ai αi di θi

1 0 π/2 0 θ1
2 a2 0 0 θ2

3 0 π/2 0 θ3
4 0 _π/2
d4* θ4
5 0 π/2 0 θ5
6 0 0 d6* θ6

•  Les lignes 3 et 4 du tableau sont différentes des lignes correspondantes


des tableaux de DH du manipulateur anthropomorphe et du poignet
•  Il faut modifier les matrices de transformation relatives (pas toutes les autres !):
⎡ ⎤ ⎡ ⎤
cos θ3 0 sin θ3 0 cos θ4 0 − sin θ4 0
⎢ sin θ 0 − cos θ3 0⎥ ⎢ sin θ 0 cos θ4 0 ⎥
2 ⎢ 3 ⎥ 3 ⎢ 4 ⎥
A3 (θ3 ) = ⎢ ⎥, A4 (θ4 ) = ⎢ ⎥
⎣ 0 1 0 0⎦ ⎣ 0 −1 0 d4 ⎦
0 0 0 1 0 0 0 1
25
Manipulateur anthropomorphe avec poignet de type rotule
 
R06 p06 Cf. TD2
Conclusion: T06 =
01×3 1
avec ⎡

a2 c1 c2 + d4 c1 s23 + d6 c1 (c23 c4 s5 + s23 c5 ) + s1 s4 s5
0 ⎢

p6 = ⎣ a2 s1 c2 + d4 s1 s23 + d6 s1 (c23 c4 s5 + s23 c5 ) − c1 s4 s5 ⎦
a2 s2 − d4 c23 + d6 (s23 c4 s5 − c23 c5 )

et les trois colonnes de la matrice de rotation R06 sont:




c1 c23 (c4 c5 c6 − s4 s6 ) − s23 s5 c6 + s1 (s4 c5 c6 + c4 s6 )
0 ⎢

R6 (: , 1) = ⎣s1 c23 (c4 c5 c6 − s4 s6 ) − s23 s5 c6 − c1 (s4 c5 c6 + c4 s6 )⎦
s23 (c4 c5 c6 − s4 s6 ) + c23 s5 c6


c1 − c23 (c4 c5 s6 + s4 c6 ) + s23 s5 s6 + s1 (−s4 c5 s6 + c4 c6 )
0 ⎢

R6 (: , 2) = ⎣s1 − c23 (c4 c5 s6 + s4 c6 ) + s23 s5 s6 − c1 (−s4 c5 s6 + c4 c6 )⎦
−s23 (c4 c5 s6 + s4 c6 ) − c23 s5 s6


c1 c23 c4 s5 + s23 c5 + s1 s4 s5 Note: si on met d6 = 0 dans p0 on
0 ⎢
⎥ 6
R6 (: , 3) = ⎣s1 c23 c4 s5 + s23 c5 − c1 s4 s5 ⎦ trouve les coord. du point d’intersection
s23 c4 s5 − c23 c5 Q des axes du poignet de type rotule
26
7 - Manipulateur DLR
θ6

θ5 θ7

θ3
θ4
θ2

θ1

•  La conception du manipulateur DLR (le DLR est le centre aérospatial allemand)


est à la base du robot LBR (“Lightweight Robot”) iiwa de KUKA
•  Le manipulateur DLR a 7 DDL (comme le bras humain), donc il est
intrinsèquement redondant
•  Essentiellement, une articulation rotoïde (en vert dans la figure) a été rajoutée
au porteur d’un manipulateur anthropomorphe avec poignet de type rotule
27
Manipulateur DLR

Robot LBR
de KUKA
Paramètres de DH

Segment ai αi di θi

1 0 π/2 0 θ1

2 0 π/2 0 θ2

3 0 π/2 d3* θ3

4 0 π/2 0 θ4

5 0 π/2 d5* θ5

6 0 π/2 0 θ6
Paramètres de DH
7 0 0 d7* θ7
28
Manipulateur DLR

On trouve que ( αi = π/2, i ∈ {1, . . . , 6} , d1 = d2 = d4 = d6 = 0 ):


⎡ ⎤
cos θi 0 sin θi 0
⎢ sin θ 0 − cos θi 0⎥
⎢ i ⎥
Ai−1
i (θ i ) = ⎢ ⎥, i ∈ {1, . . . , 6}
⎣ 0 1 0 di ⎦
0 0 0 1
En revanche, puisque α7 = 0 :
⎡ ⎤
cos θ7 − sin θ7 0 0
⎢ sin θ cos θ7 0 0 ⎥
6 ⎢ 7 ⎥
A7 (θ7 ) = ⎢ ⎥
⎣ 0 0 1 d7 ⎦
0 0 0 1

Conclusion ( q = [θ1 , θ2 , . . . , θ7 ]T ):

T07 (q) = A01 (θ1 ) A12 (θ2 ) · · · A76 (θ7 )


29
Espace articulaire et espace opérationnel d’un robot

effecteur
θ4
d3
θ2

θ1
base

Objectif: Spécifier une tâche pour l’effecteur d’un manipulateur à n articulations

On peut décrire la pose de l’effecteur du robot avec un vecteur m × 1 (m ≤ n):


  Position de l’effecteur
pe Orientation de l’effecteur: on utilise
xe = une représentation minimale (par ex.
φe un triplet d’angles d’Euler)

Le vecteur xe est défini dans l’espace où la tâche du manipulateur est specifiée


Cet espace est appelé espace opérationnel
30
Espace articulaire et espace opérationnel d’un robot

En revanche, l’espace articulaire (ou l’espace de configuration) dénote


l’espace où le vecteur des variable articulaires

q = [ q1 , . . . , q n ] T
est défini. On a qi = θi si l’articulation est rotoïde et qi = di si l’articulation
est prismatique

On peut écrire le modèle géométrique direct, de manière alternative, comme:

xe = f (q)
où la fonction f (·), non linéaire en général, permet de calculer les variables
dans l’espace opérationnel à partir des variables dans l’espace articulaire

Si m < n, c’est-à-dire la dimension de l’espace opérationnel est plus petite


que la dimension de l’espace articulaire, on dit que le robot est intrinsèquement
redondant. Pour un robot industriel à 6 DDL standard: m = n = 6

31
Génération de mouvement
La tâche de déplacement d'un robot est spécifiée en définissant un chemin
que le robot doit suivre

Un chemin est une séquence de points définis soit dans l'espace opérationnel
(afin de situer l’effecteur), soit dans l'espace articulaire du robot (afin d'indiquer
les valeurs des paramètres des articulations)

Ces points peuvent être, par ex.: P0


Chemin
•  Programmés par apprentissage
•  Issus d'une base de données d'un système de CAO Pf

Problème de génération de mouvement:


Calculer les séquences souhaitées de variables articulaires ou de variables
liées à l’effecteur qui assurent le passage du robot par le chemin désiré

Les trajectoires d'un robot peuvent être classifiées comme suit :


1.  Les mouvements entre 2 points avec des mouvements libres entre les points
2.  Les mouvements entre 2 points via une séquence de points intermédiaires
3.  Les mouvements entre 2 points, la trajectoire étant contrainte entre les
points (par ex. une trajectoire rectiligne)
4.  Les mouvements entre 2 points via des points intermédiaires,
la trajectoire étant contrainte entre les points intermédiaires
32
Génération de mouvement

•  Dans les cas 1 et 2, la génération de mouvement peut se faire directement


dans l'espace articulaire: elle se traduit par une séquence de positions
articulaires constituant les consignes des asservissements

•  Dans les cas 3 et 4, la trajectoire étant fixée à tout instant dans l'espace
opérationnel, il est préférable de raisonner dans cet espace

La loi de commande engendrée doit ensuite être transformée


en consignes articulaires par le changeur de coordonnées

qf Génération de qr (t)
mouvement Commande
dans l’espace
Robot
articulaire

q(t)

Génération de mouvement dans l'espace articulaire

33
Génération de mouvement

La génération de mouvement dans l'espace articulaire présente


plusieurs avantages :

•  Le mouvement est minimal sur chaque articulation


•  Elle nécessite moins de calcul en ligne (au sens où il n'y a pas de changeur
de coordonnées. Pas besoin de modèles)
•  Le mouvement n'est pas affecté par le passage sur des configurations
singulières
•  Les contraintes de vitesse et de couple maximaux sont connues avec
précision puisqu'elles correspondent aux limites physiques des actionneurs

En revanche :
•  La géométrie de la trajectoire dans l'espace articulaire ne peut être imposée.
Entre deux points donnés, l’effecteur se déplace de façon imprévisible mais
répétitive (ce qui peut occasionner des collisions lorsque le robot évolue dans
un environnement encombré)

•  Ce type de mouvement est par conséquent approprié pour réaliser


des déplacements rapides dans un espace dégagé

34
Génération de mouvement

xef Génération de qr (t)


mouvement
dans l’espace MGI Commande Robot
opérationnel

xe (t) q(t)
MGD
Génération de mouvement dans l'espace opérationnel

La génération de mouvement dans l'espace opérationnel permet de contrôler


la géométrie de la trajectoire (par ex. mouvement rectiligne)
Par contre :
•  Elle implique la transformation en coordonnées articulaires
de chaque point de la trajectoire
•  Elle peut être mise en échec lorsque la trajectoire calculée passe
par une position singulière
•  Elle peut être mise en échec chaque fois que les points de la trajectoire
engendrée ne sont pas dans le volume accessible du robot ou chaque fois
que la trajectoire impose une reconfiguration du mécanisme (changement
d'aspect en cours de trajectoire)
35

Vous aimerez peut-être aussi