23
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

UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

Embed Size (px)

Citation preview

Page 1: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

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

Page 2: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

2

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

Page 3: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

3

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

Page 4: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

4

base

effecteur

θ1

θ2

θ4

d3

Modèle géométrique direct (MGD): étant données les positions articulaires (distance resp. angle pour une articulation prismatique resp. rotoïde) trouver la pose de l’effecteur par rapport à la base

Modèle géométrique inverse

Modèle géométrique inverse (MGI): étant donnée une pose de l’effecteur par rapport à la base, trouver, si elles existent, l’ensemble des positions articulaires qui permettent de générer cette pose

q = [q1, q2, . . . , qn]T ?

Page 5: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

5

Problème direct Si les variables des articulations sont connues, la pose de l’effectuer peut être calculée d’une manière unique en utilisant la matrice de transformation homogène:

Modèle géométrique inverse

Problème inverse Il s'agit de déterminer les coordonnées articulaires permettant d'obtenir une situation désirée pour l’effecteur

Problème beaucoup plus difficile pour les raisons suivantes:

1.  Les équations à résoudre sont, en général, non linéaires. En conséquence, il n’est pas toujours possible de trouver une solution de forme fermée (c’est-à-dire, une solution explicite)

2.  Le problème peut avoir des solutions multiples

3.  Le problème peut avoir un nombre infini de solutions (par ex. pour des robots cinématiquement redondants)

4.  Le problème peut n'avoir aucune solution admissible à cause de la structure cinématique du manipulateur

T0n(q) = A0

1(q1)A12(q2) · · · An−1

n (qn)

Page 6: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

6

Modèle géométrique inverse

Solutions multiples

•  Ça depend du nombre de DDL du robot mais aussi du nombre de paramètres de DH qui sont différents de zéro

•  En général, plus le nombre de paramètres de DH différents de zéro est grand, plus le nombre des solutions admissibles est grand

•  Pour un manipulateur à 6 DDL sans des butées mécaniques sur les articulations, il y a, en général, 16 solutions admissibles. On a donc besoin de trouver des critères pour choisir parmi ces solutions admissibles

•  La presence de butées mécaniques sur les articulations des robots réels peut, éventuellement, reduire le nombre de solutions multiples admissibles

Page 7: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

7

Modèle géométrique inverse Solutions de forme fermée Pour trouver des solutions de forme fermée est nécessaire de la:

•  Intuition algébrique pour trouver les équations significatives qui contiennent les inconnues ou

•  Intuition géométrique pour trouver des points significatifs sur le robot que peuvent être utilisés pour exprimer la position et/ou orientation en fonction du nombre des inconnues

Solutions numériques Lorsque il n’y a pas des solutions de forme fermée ou elles sont difficiles à déterminer, on peut calculer une solution particulière du problème inverse par des procédures numériques (méthodes itératives d'optimisation non linéaire ou l'algorithme de Levenberg-Marquardt)

•  Avantage: on peut appliquer les méthodes numeriques à tous les robots

•  Inconvénients: les méthodes numériques ne trouvent pas, en général, toutes les solutions admissibles. Ils trouvent une solution locale au sens où elle dépend des conditions initiales. Ces méthodes sont pénalisantes du point de vue du temps de calcul

Page 8: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

8

Exemple 1: robot planaire à 2 segments (RP)

On a le modèle géométrique direct suivant:

P

px

py

θ1

d2

px = d2 cos θ1

py = d2 sin θ1

Une démarche analytique simple permet de déterminer le modèle géométrique inverse. En effet, nous avons que :

d2 =√

p2x + p2yθ1 = arctan(py/px),

q = [θ1, d2]T ?

[px, py]T

donné.

Problème

Page 9: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

9

Problème: étant données la position et l’orientation de l’effecteur, déterminer les variables θ1 , θ2 , θ3 des trois articulations rotoïdes

θ1

θ2

θ3

Exemple 2: manipulateur planaire à 3 segments

φ

W

q = [θ1, θ2, θ3]T ?

Page 10: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

10

•  On a déjà vu que la matrice de transformation totale pour ce manipulateur est (cf. la première partie du Ch. 3.1):

T03(q) = A0

1 A12 A

23 =

⎡⎢⎢⎢⎣

c123 −s123 0 a1c1 + a2c12 + a3c123

s123 c123 0 a1s1 + a2s12 + a3s123

0 0 1 0

0 0 0 1

⎤⎥⎥⎥⎦

où et q = [θ1, θ2, θ3]T

•  Il convient de spécifier la position et orientation de l’effecteur en utilisant un nombre minimal de paramètres

•  On peut utiliser les coordonnées px , py et l’angle entre l’effecteur et l’axe x0: φ

⎡⎢⎣

px

py

φ

⎤⎥⎦ = f(q) =

⎡⎢⎣

a1c1 + a2c12 + a3c123

a1s1 + a2s12 + a3s123

θ1 + θ2 + θ3

⎤⎥⎦

T03Élément (1,4) de

T03Élément (2,4) de

Somme des variables articulaires

c12 = cos(θ1 + θ2), s123 = sin(θ1 + θ2 + θ3)c1 = cos θ1,

Exemple 2: manipulateur planaire à 3 segments

Page 11: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

11

1 - Solution algébrique

Si est spécifié, la 1ère équation du système à resoudre est:

•  À partir du modèle direct, on trouve que:

Position du point W (origine du repère 2)

φ

En revanche si n’est pas spécifié, le manipulateur est redondant et il y a un nombre infini de solutions au problème inverse

φ

φ = θ1 + θ2 + θ3

pWx= px − a3cφ = a1c1 + a2c12

pWy= py − a3sφ = a1s1 + a2s12

•  On calcule le carré des deux expressions précédentes et on les additionne:

Donc

p2Wx+ p2Wy

= a21 + a22 + 2a1a2c2

c2 =p2Wx

+ p2Wy− a21 − a22

2a1a2

Exemple 2: manipulateur planaire à 3 segments

Page 12: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

12

1 - Solution algébrique

•  Pour avoir une solution admissible, il faut que:

•  Maintenant, il faut déterminer . Si on substitue l’expression de trouvée, dans les equations de , on obtient un système de deux équations à deux inconnues, , avec solution:

où le signe est “+” correspond à la posture “coude en bas” et le signe “_” à la posture “coude en haut” du robot

•  Donc, on impose

•  En conséquence:

−1 ≤ c2 ≤ 1

s2 = ±√

1− c22

θ2 = Atan2(s2, c2)

θ1 θ2pWx , pWy

s1, s2

s1 =(a1+a2c2)pWy−a2s2pWx

p2Wx

+p2Wy

c1 =(a1+a2c2)pWx+a2s2pWy

p2Wx

+p2Wy

=⇒ θ1 = Atan2(s1, c1)Par conséquent:

Exemple 2: manipulateur planaire à 3 segments

Page 13: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

13

Remarque:

•  Enfin, pour trouver l’angle on peut utiliser l’équation:

Si on a que : dans cette posture le manipulateur est dans une singularité cinématique. On peut déterminer encore d’une manière unique sauf si et on requiert que

s2 = 0 θ2 ∈ {0, π}θ1

pWx = pWy = 0

θ3

θ3 = φ− θ1 − θ2

2 - Solution géométrique

•  On utilise encore les trois équations:

φ = θ1 + θ2 + θ3

pWx= px − a3cφ = a1c1 + a2c12

pWy= py − a3sφ = a1s1 + a2s12

a1 = a2

Exemple 2: manipulateur planaire à 3 segments

Page 14: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

14

2 - Solution géométrique

•  Si on applique le théorème d’Al-Kashi (ou loi des cosinus) au triangle rouge en figure, on obtient:

φ

p2Wx+ p2Wy

= a21 + a22 − 2 a1a2 cos(π − θ2)

•  En effet, on a deux configurations possibles du triangle (voir le trait pointillé noir en figure)

•  Car , nous avons: cos(π − θ2) = − cos θ2

c2 =p2Wx

+ p2Wy− a21 − a22

2a1a2

•  Pour l’existence d’un triangle, il faut que: √

p2Wx+ p2Wy

≤ a1 + a2

•  Sous cette condition:

θ2 = ± arccos(c2)

“coude en bas”

“coude en haut”

W

θ2

Exemple 2: manipulateur planaire à 3 segments

Page 15: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

15

2 - Solution géométrique

•  La posture “coude en haut” est obtenue avec

φ

•  Pour déterminer , il faut considérer les angles α et β en figure

•  La valeur de α depend du signe de . Il faut donc calculer α comme:

“coude en bas”

“coude en haut”

θ2 ∈ (−π, 0)

θ2 ∈ (0, π)•  La posture “coude en bas” est obtenue avec

θ1

pWx , pWy

α = Atan2(pWy , pWx)

θ2

θ1

•  Pour trouver β, nous appliquons encore la loi des cosinus au triangle vert, ce qui nous donne l’équation:

√p2Wx

+ p2Wy= a1 + a2c2

W

a22 = p2Wx+ p2Wy

+ a21 − 2a1

√p2Wx

+ p2Wycosβ =⇒

Exemple 2: manipulateur planaire à 3 segments

Page 16: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

16

2 - Solution géométrique

•  Si on utilise l’expression de trouvée auparavant, on trouve

c2

β = arccos

⎛⎝p2Wx

+ p2Wy+ a21 − a22

2a1√p2Wx

+ p2Wy

⎞⎠

avec pour garantir encore l’existence du triangle

β ∈ (0, π)

•  Donc, où le signe est “+” pour et “_” pour

θ1 = α± βθ2 < 0 θ2 > 0

•  Enfin pour trouver , on utilise à nouveau l’équation: θ3

φ = θ1 + θ2 + θ3

φ

θ2

θ1

W

Exemple 2: manipulateur planaire à 3 segments

Page 17: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

17

Solutions de forme fermée: considerations générales

•  La plupart des manipulateurs existant sont cinématiquement simples

•  En effet ils sont typiquement composés d’un porteur et d’un poignet de type rotule (avec un poignet de type rotule, le point W est choisi à l’intersection des trois axes des articulations rotoïdes)

•  Ce choix est motivé par la difficulté à déterminer des solutions du problème inverse dans le cas général

•  En particulier, un manipulateur à 6 DDL a des solutions de forme fermée du problème inverse si une des conditions suivantes est satisfaite:

  Les axes de trois articulations rotoïdes consecutives se croisent en un seul point (trois axes concourants), comme dans le cas du poignet de type rotule

  Les axes de trois articulations rotoïdes consecutives sont parallèles

Page 18: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

18

Méthode de Paul

•  Le MGI est obtenu en résolvant l'équation matricielle suivante :

où décrit la situation du repère n par rapport au repère de la base

•  La méthode de Paul permet la détermination de q1, puis q2 et ainsi de suite jusqu'à qn

•  Il s'agit de déplacer l'une après l'autre chacune des variables articulaires (q1,…, qn) dans le membre de gauche de l'équation

•  Pour cela, on multiplie par (en prenant successivement ) de part et d'autre dans l'équation

U0 = A01(q1)A

12(q2) · · · An−1

n (qn)

U0

Ajj−1 j ∈ {1, . . . , n}

•  Dans le cas de robots cinématiquement simples (pour lesquels la plupart des distances ai et di sont nulles et θi et αi sont égaux à 0, ±π/2), le MGI peut être obtenu analytiquement via la méthode de Paul

Page 19: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

19

Méthode de Paul

Considérons un robot à 6 DDL (n = 6). Appliquons la méthode :

1) Pré-multiplier l'équation précédente par , soit :

Les éléments situés dans le membre de gauche sont soient indépendants, soient fonctions de q1. Les éléments situés dans le membre de droite sont soient constants, soient fonctions de q2 ,…, q6

2) Déduire q1 de l'équation précédente

3) Pré-multiplier l'équation précédente par , soit :

4) En déduire q2

5) Continuer cette procédure pour en déduire q3 ,…, q6

A10(q1)

A10(q1)U0 = A1

2(q2) · · · A56(q6)

A21(q2)A

10(q1)U0 = A2

3(q2) · · · A56(q6)

A21(q2)

A23(q3)

Page 20: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

20

Méthode de Paul

En résumé, on utilise les équations suivantes pour calculer les variables articulaires q1 ,…, q6:

La résolution de ces équations est intuitive, mais fait intervenir (en principe) quelques types d'équations dont la solution analytique est connue

U0 = A01(q1)A

12(q2)A

23(q3)A

34(q4)A

45(q5)A

56(q6)

A10(q1)U0 = A1

2(q2)A23(q3)A

34(q4)A

45(q5)A

56(q6)

A21(q2)U1 = A2

3(q3)A34(q4)A

45(q5)A

56(q6)

A32(q3)U2 = A3

4(q4)A45(q5)A

56(q6)

A43(q4)U3 = A4

5(q5)A56(q6)

A54(q5)U4 = A5

6(q6)

avec Uj = Aj6 = Aj

j−1Uj−1, j ∈ {1, 2, 3, 4}.

Page 21: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

21

Méthode de Paul

•  Si on applique la méthode de Paul au robot Stäubli TX60 (un robot anthropomorphe avec poignet de type rotule à 6 DDL), on trouve qu’il existe 8 solutions, dans le cas général

•  Certaines positions dites singulières du robot occasionnent un nombre infini de solutions. C'est par exemple le cas de la configuration initiale “sans offset” du robot (θ1 = … = θ6 = 0) où les arguments de la fonction arc tangente utilisés pour déterminer le paramètre θ4 sont nuls, ce qui rend ce paramètre indéterminé

•  Le choix de la valeur de ce paramètre étant libre, on assigne fréquemment la valeur courante θ4 du robot. Ce choix fixe alors la valeur du paramètre θ6

Robot Stäubli TX60

Page 22: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

22

Les quatre postures compatibles avec une pose donnée du poignet d’un manipulateur anthropomorphe

Bras à gauche et en haut

Bras à droite et en haut

Bras à gauche et en bas

Bras à droite et en bas

Poignet

Page 23: UPJV, Département EEA M1 EEAII Parcours ViRobfabio/Eng/documenti/Teaching/RI15... · • Convention de Denavit-Hartenberg ... • Ça depend du nombre de DDL du robot mais aussi

23

•  On a vu précédemment que le modèle géométrique direct d'un robot peut se représenter à l'aide de l'application:

Cette application est définie de l'espace articulaire (EA) vers l'espace opérationnel (EO), tous deux de dimension n ≤ 6, en général

•  Cette application n'est pas biunivoque, c’est-à-dire, à un élément de l’EO correspond une seule image dans l’EA, par contre un élément de EA pourra être l'image de plusieurs éléments de l’EO

•  Dans le cas du robot Staübli TX60, il existe (au maximum) 8 solutions possibles pour attendre un point de l’EO

•  Dans la pratique, cette “non propriété” peut poser des problèmes, par exemple, dans le cas où des obstacles sont à proximité du robot

•  En effet, la réalisation d'une trajectoire rectiligne peut s'avérer irréalisable physiquement, ou le bras du robot peut être amené à se reconfigurer, ce qui peut induire des comportements “intempestifs” du manipulateur

xe = f(q)