Vous êtes sur la page 1sur 24

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
Modèle géométrique inverse

Robot générique
ne effecteur
à n articulations θ4
se
d3 ae

θ2 pbe
q = [q1 , q2 , . . . , qn ]T ??
θ1
base

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 (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
4
Modèle géométrique inverse
Problème direct
Si les variables des articulations sont connues, la pose de l’effectuer par rapport
à la base peut être calculée d’une manière unique en utilisant la matrice de
transformation homogène:

T0n (q) = A01 (q1 ) A12 (q2 ) · · · An−1


n (qn )
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.


Par conséquent, 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
5
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

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

•  L’intuition algébrique pour trouver les équations significatives


qui contiennent les inconnues
ou
•  L’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 d’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
7
Exemple 1: robot planaire à 2 segments (RP)

d2
py P
Problème:

[px , py ]T donné.
q = [θ1 , d2 ]T ?
θ1
px

On a le modèle géométrique direct suivant (avec les deux segments alignés):

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:

θ1 = arctan(py /px ), d2 = p2x + p2y
8
Exemple 2: manipulateur planaire à 3 segments

θ3

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

φ
θ1

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
9
Exemple 2: manipulateur planaire à 3 segments
•  On a déjà vu que la matrice de transformation homogène entre le repère
3 et 0 pour ce manipulateur est (cf. la première partie du Ch. 3.1):
⎡ ⎤
c123 −s123 0 a1 c1 + a2 c12 + a3 c123
⎢s 0 a1 s1 + a2 s12 + a3 s123 ⎥
0 0 1 2 ⎢ 123 c123 ⎥
T3 (q) = A1 A2 A3 = ⎢ ⎥
⎣ 0 0 1 0 ⎦
0 0 0 1
où q = [θ1 , θ2 , θ3 ]T et c1 = cos θ1 , c12 = cos(θ1 + θ2 ), s123 = sin(θ1 + θ2 + θ3 )

•  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 a c
1 1 + a c
2 12 + a c
3 123 Élément (1,4) de T03
⎢ ⎥ ⎢ ⎥
⎣ py ⎦ = f (q) = ⎣ a1 s1 + a2 s12 + a3 s123 ⎦ Élément (2,4) de T03
φ θ1 + θ2 + θ3 Somme des variables
articulaires
10
Exemple 2: manipulateur planaire à 3 segments

1 - Solution algébrique
Si φ est spécifié, la 1ère équation du système à resoudre est:
φ = θ1 + θ2 + θ3
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

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

pWx = px − a3 cφ = a1 c1 + a2 c12
Coordonnées du point W
pWy = py − a3 sφ = a1 s1 + a2 s12 (origine du repère 2)

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

p2Wx + p2Wy = a21 + a22 + 2a1 a2 c2


Donc
p2Wx + p2Wy − a21 − a22
c2 =
2a1 a2
11
Exemple 2: manipulateur planaire à 3 segments

1 - Solution algébrique
•  Pour avoir une solution admissible, il faut que:

−1 ≤ c2 ≤ 1
•  Donc, on impose

s2 = ± 1 − c22

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


signe “_” à la posture “coude en haut” du robot

•  Par conséquent:
θ2 = Atan2(s2 , c2 )
•  Maintenant, il faut déterminer θ1 . Si on substitue l’expression de θ2 trouvée
dans les equations de pWx , pWy on obtient un système de deux équations
à deux inconnues, s1 , c1 , avec solution:
(a1 +a2 c2 )pWy −a2 s2 pWx
s1 = p2Wx +p2Wy
=⇒ θ1 = Atan2(s1 , c1 )
Par conséquent:
(a1 +a2 c2 )pWx +a2 s2 pWy
c1 = p2Wx +p2Wy
12
Exemple 2: manipulateur planaire à 3 segments

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

θ3 = φ − θ1 − θ2
Remarque:
Si s2 = 0 on a que θ2 ∈ {0, π} : dans cette posture le manipulateur est dans
une singularité cinématique. On peut déterminer encore θ1 d’une manière
unique sauf si a1 = a2 et on requiert que pWx = pWy = 0

2 - Solution géométrique

•  On utilise encore les trois équations vues précédemment:

φ = θ1 + θ2 + θ3
pWx = px − a3 cφ = a1 c1 + a2 c12
pWy = py − a3 sφ = a1 s1 + a2 s12

13
Exemple 2: manipulateur planaire à 3 segments

Remarque

Théorème d’Al-Kashi (ou loi des cosinus):

a1 γ a2

a3
Soit un triangle dans lequel on utilise les notations exposées sur la figure
ci-dessus,
a23 = a21 + a22 − 2 a1 a2 cos γ

Le théorème d’Al-Kashi généralise le théorème de Pythagore aux triangles


non rectangles (en effet, pour γ = π/2 on retrouve le théorème de Pythagore)

14
Exemple 2: manipulateur planaire à 3 segments

2 - Solution géométrique

“coude φ
•  Si on applique le théorème d’Al-Kashi
en haut”
au triangle rouge en figure, on obtient:
W
p2Wx + p2Wy = a21 + a22 − 2 a1 a2 cos(π − θ2 )
θ2
•  En effet, on a deux configurations
possibles du triangle (voir le trait “coude
pointillé noir en figure) en bas”

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


p2Wx + p2Wy − a21 − a22
c2 = •  Sous cette condition:
2a1 a2
•  Pour l’existence d’un triangle, il faut que: θ2 = ± arccos(c2 )

p2Wx + p2Wy ≤ a1 + a2
15
Exemple 2: manipulateur planaire à 3 segments

2 - Solution géométrique

•  La posture “coude en bas”


est obtenue avec θ2 ∈ (0, π) φ
“coude
en haut”
•  La posture “coude en haut”
est obtenue avec θ2 ∈ (−π, 0)
W

•  Pour déterminer θ1 , il faut considérer θ2


les angles α et β en figure
•  La valeur de α depend du signe “coude
en bas”
de pWx , pWy . Il faut donc θ1
calculer α comme:

α = Atan2(pWy , pWx )

•  Pour trouver β, nous appliquons encore le théorème d’Al-Kashi au triangle vert,


ce qui nous donne l’équation:
 
a22 = p2Wx + p2Wy + a21 − 2a1 p2Wx + p2Wy cos β =⇒ cβ p2Wx + p2Wy = a1 + a2 c2
16
Exemple 2: manipulateur planaire à 3 segments

2 - Solution géométrique

•  Si on utilise l’expression de c2 φ
trouvée auparavant, on obtient:
⎛ ⎞
p2Wx + p2Wy + a21 − a22 W
β = arccos ⎝  ⎠
2a1 p2Wx + p2Wy
θ2
avec β ∈ (0, π) pour garantir,
à nouveau, l’existence du triangle
θ1
•  Donc, θ1 = α ± β où le signe est
“+” pour θ2 < 0 et “_” pour θ2 > 0

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

φ = θ1 + θ2 + θ3

17
Solutions de forme fermée: généralités

•  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 géométrique 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

18
Méthode de Paul
•  Dans le cas de robots à géométrie simple (pour lesquels la plupart des
distances ai et di sont nulles et θi et αi sont égaux à 0 ou ±π/2), le MGI
peut être obtenu de façon systématique avec la méthode de Paul

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

U0 = A01 (q1 ) A12 (q2 ) · · · An−1


n (qn )
où U0 = Tn0 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 de 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
j
•  Pour cela, on multiplie par Aj−1 (qi ) (en prenant successivement j ∈ {1, . . . , n})
de part et d'autre dans l'équation précédente

19
Méthode de Paul

Exemple: considérons un robot à 6 DDL ( n = 6) et appliquons la méthode.

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

A10 (q1 ) U0 = A12 (q2 ) · · · A56 (q6 ) (*)

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 (*)

3) Pré-multiplier l'équation (*) par A21 (q2 ) , soit :

A21 (q2 ) A10 (q1 ) U0 = A23 (q3 ) · · · A56 (q6 )


4) En déduire q2

5) Continuer cette procédure pour en déduire q3 , . . . , q 6

20
Méthode de Paul

En résumé, on utilise les équations suivantes pour calculer les variables


articulaires q1 , . . . , q6 :

U0 = A01 (q1 ) A12 (q2 ) A23 (q3 ) A34 (q4 ) A45 (q5 ) A56 (q6 )
A10 (q1 )U0 = A12 (q2 ) A23 (q3 ) A34 (q4 ) A45 (q5 ) A56 (q6 )
A21 (q2 )U1 = A23 (q3 ) A34 (q4 ) A45 (q5 ) A56 (q6 )
A32 (q3 )U2 = A34 (q4 ) A45 (q5 ) A56 (q6 )
A43 (q4 )U3 = A45 (q5 ) A56 (q6 )
A54 (q5 )U4 = A56 (q6 )

j j
avec Uj = A6 = Aj−1 Uj−1 , j ∈ {1, 2, 3, 4}.

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

21
Méthode de Paul: exemple de robot à 6 DDL
•  Si on applique la méthode de Paul au robot Stäubli TX60 (un robot à 6 DDL
avec porteur anthropomorphe et poignet de type rotule), on trouve qu’il existe
8 solutions du problème inverse dans le cas général (avec 1 butée mécanique)

•  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 typiquement la valeur
courante θ4 du robot. Ce choix fixe
alors la valeur du paramètre θ6

Robot
Stäubli TX60
22
Les quatre postures compatibles avec une pose donnée du poignet
d’un manipulateur anthropomorphe:

Poignet

1) Bras à gauche 2) Bras à droite


et en haut et en haut

3) Bras à gauche 4) Bras à droite


et en bas et en bas

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

xe = f (q)
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’EA


correspond une seule image dans l’EO, par contre un élément de l’EO pourra
être l'image de plusieurs éléments de l’EA

•  Dans le cas du robot Staübli TX60 avec 1 butée mécanique, 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
24

Vous aimerez peut-être aussi