Vous êtes sur la page 1sur 30

Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté

par : Dr. El-Hadi GUECHI ; Année 2020

Chapitre 1 : Terminologie et définitions générales

1.1 Introduction
Un robot est un manipulateur commandé en position, reprogrammable, polyvalent, à plusieurs
degrés de liberté, capable de manipuler des objets. Il a souvent l’apparence d’un ou plusieurs
bras se terminant par un organe terminal (poignet). Son unité de commande utilise une mémoire
et des dispositifs de perception et d’adaptation à l’environnement. Une cellule robotisée est
caractérisée par les composantes suivantes :
- Le mécanisme : il a une structure proche de celle du bras humain. Il permet d’amener le
poignet à la situation désirée. Sa motorisation est réalisée par des actionneurs
électriques, pneumatiques,…etc.
- La perception : elle permet de gérer les relations entre le robot et son environnement.
Pour la perception, le robot peut utiliser les capteurs suivants : caméra, capteur
infrarouge,…etc.
- La commande : elle synthétise les consignes pilotant les actionneurs
- L’interface homme machine : à travers cette interface, l’utilisateur programme les taches
que le robot doit exécuter.

1.2 Constituants mécaniques des robots manipulateurs


Un robot manipulateur est constitué par deux sous-ensembles distincts : un poignet (organe
terminal) et une structure mécanique articulée :
- Le poignet (organe terminal) : c’est un dispositif destiné à manipuler des objets (serrage,
magnétique, à dépression…) ou à les transformer (outils, torche de soudage, pistolet de
peinture,…etc.). Il s’agit donc d’une interface permettant au robot d’interagir avec son
environnement. Un poignet (organe terminal) peut être multifonctionnel, c'est-à-dire
qu’il est équipé de plusieurs dispositifs ayant des fonctionnalités différentes.
- La structure mécanique articulée (le mécanisme) : son rôle est d’amener le poignet
(organe terminal) dans une situation (position et orientation) donnée, selon des
caractéristiques de vitesse et d’accélération données. Son architecture est une chaine
cinématique de corps généralement rigides, ou supposés comme tels, assemblés par des
liaisons appelées articulations. Les chaines peuvent être ouvertes simples,
arborescentes, fermées,...etc.

1.3 Les différentes structures des robots manipulateurs


Les robots manipulateurs à chaine ouverte simple sont les plus nombreux (figure 1.1). Les
chaines peuvent être aussi arborescentes (figure 1.2). Les structures contenant des boucles
cinématiques ont pour avantage essentiel d’augmenter la rigidité ainsi que la précision. Elles
permettent un meilleur équilibrage statique. En général, on distingue deux classes de boucles
fermées :
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
- Les chaines cinématiques composées ou complexes dont au moins l’un des corps a plus
de deux liaisons (figure 1.3).
- Les chaines cinématiques élémentaires ou simples qui sont telle que tous les corps ont
au plus deux liaisons (figure 1.4)
Les robots parallèles dans lesquels le poignet est relié à la base du mécanisme par plusieurs
chaines parallèles. Cette structure (figure 1.5), assure une plus grande rigidité et donc une plus
grand précision.

Figure 1.1 : structure ouverte simple Figure 1.2 : structure arborescente

Figure 1.3 : structure fermée Figure 1.4 : structure fermée simple


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Figure 1.5 : structure parallèle

1.4 Articulations
Une articulation lie deux corps successifs en limitant le nombre de degrés de liberté de l’un par
rapport à l’autre. Soit m le nombre de degrés de liberté résultant, encore appelé mobilité de
l’articulation. La mobilité est telle que 0 ≤ m ≤ 6 . En robotique, on distingue deux types
d’articulations :
- Articulation rotoïde : il s’agit d’une articulation de type pivot réduisant le mouvement
entre deux corps à une rotation autour d’un axe qui leur est commun. La situation
relative entre les deux corps est donnée par l’angle autour de cet axe
- Articulation prismatique : il s’agit d’une articulation de type glissière réduisant le
mouvement entre deux corps à une translation le long d’un axe commun. La situation
relative entre les deux corps est donnée par la distance le long de cet axe
Les symboles de ces deux articulations sont présentés par les figures suivantes (figures 1.6 et
1.7).

Figure 1.6 : symbole de l’articulation rotoïde


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Figure 1.6 : symbole de l’articulation prismatique

1.5 Espace articulaire


L’espace articulaire d’un robot est celui dans lequel est représentée la situation de tous ses
corps. La solution la plus simple consiste à utiliser les variables ou coordonnées articulaires. Sa
dimension N est égale au nombre de variable articulaires indépendantes et correspond au
nombre de degrés de liberté de la structure mécanique. Donc, le degré de liberté d’un robot
manipulateur est le nombre de ses articulations.

1.6 Espace opérationnel


L’espace opérationnel est celui dans lequel est représentée la situation du poignet (organe
terminal) (on considère donc autant d’espaces opérationnels qu’il y a d’organes terminaux). La
solution la plus simple consiste à utiliser les coordonnées cartésiennes dans ℝ3 pour la position
et le groupe SO(3) des rotations propre de ℝ3 pour l’orientation. Sa dimension M, constitue le
nombre de degrés de liberté maximum que peut avoir l’organe terminal ( 0 < M ≤ 6 et M ≤ N ).

1.7 Redondance
Un robot est redondant lorsque le nombre de degrés de liberté de l’organe terminal est inférieur
au nombre de degrés de liberté de l’espace articulaire. Cette propriété permet d’augmenter le
volume du domaine accessible et de préserver les capacités de déplacement de l’organe terminal
en présence d’obstacles, le ou les degrés de liberté supplémentaires autorisant leur
contournement.
1.8 Conclusion
Dans ce chapitre, nous avons présenté quelques terminologies et définitions générales des
robots manipulateurs. Dans la suite du cours, on s’intéresse seulement aux robots manipulateurs
qui ont une structure ouverte simple.
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Chapitre 2 : Matrices de transformations homogènes entre repères

2.1 Introduction
La synthèse des lois de commande des robots manipulateurs nécessite le calcul de certains
modèles mathématiques (tel que : le modèle géométrique direct (MGD)). Le calcul de ce
modèle est basé sur l’utilisation des matrices de transformations homogènes entre repères.

2.2 Coordonnées homogènes


- représentation d’un point
Soit P un point de coordonnées cartésiennes (Px, Py, Pz). On appelle coordonnées homogènes
du point P les termes [w.Px, w.Py, w.Pz, w] où w est un facteur d’échelle. En robotique, on
prend w=1. Donc, on représente les coordonnées homogènes d’un point par le vecteur :

 Px 
P 
P =  y
 Pz 
 
1

- représentation d’une direction


La représentation d’une direction (vecteur libre) se fait aussi par quatre composantes, mais la
quatrième est nulle :

Ux 
U 
U =  y
 Uz 
 
1 
- représentation d’un plan

Le plan α x + β y + γ z = δ est représenté par un vecteur Q , tel que Q = [α β γ δ ] . Pour


tout point P appartenant au plan Q. le produit matriciel :

 Px 
P 
Q.P = [α β γ δ ] y  = 0
 Pz 
 
1
2.3 Transformation homogènes
- transformations des repères
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Faisons subir une transformation quelconque, de translation et/ou de rotation, au repère Ri,
transformation qui l’amène sur le repère Rj.

Cette transformation est définie par la matrice :


 sx nx a x px 
s ny a y p y 
T j =  i s j
i i
nj i
aj i
p j  =  y
 sz nz a z pz 
 
0 0 0 1

Où i s j , i n j , i a j désignent respectivement les vecteurs unitaires suivant les axes x j , y j , z j du


repère Rj exprimés dans le repère Ri et où i p j est le vecteur exprimant l’origine du repère Rj
dans le repère Ri. On dit également que iT j définit le repère Rj dans le repère Ri et on dit aussi,
la matrice iT j représente la transformation permettant de passer du repère Ri au repère Rj.

On écrit aussi :

 i Aj i
pj   isj i
nj i
aj i
pj 
Tj = 
i
=  , où :
0 0 0 1  0 0 0 1 

- la matrice A représente la matrice de rotation ou d’orientation du repère Ri par rapport


à Rj.
- la colonne p représente la translation du repère Ri par rapport au repère Rj
- dans le cas d’une translation pure A=I3, tel que I est la matrice unité.
Propriétés :

- la matrice A est orthogonale : A -1 =A T


i −1
- T j = jTi
- rot (u , θ ) −1 = rot (u , −θ ) = rot (−u , θ )
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
- trans(u , d) −1 = trans (−u , d ) = trans (u , − d)
 − sT p 
 T 
 A p −1  A − nT p 
- Si T =   alors T = 
0 0 0 1  − aT p 
 
0 0 0 1 
- translation des vecteurs

Soit un vecteur i p j définissant le point p1 dans le repère Rj

On calcule les coordonnées homogènes du point p1 dans le repère Ri par l’équation suivante :
i
p1 =i T j . j p1

La matrice i T j permet donc d’exprimer dans le repère Ri les coordonnées d’un point dans le
repère Rj
Exemple :
On considère la transformation entre deux repères présentée par la figure suivante :
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

- de cette figure, déterminer les matrices i T j et j Ti

Solution :

- La matrice i T j représente la projection du repère Rj dans le repère Ri. Donc, par


projection on trouve :

0 0 1 3
0 1 0 12 
i
Tj = 
 −1 0 0 6
 
0 0 0 1

0 0 −1 6 
0 1 0 −12 
- La matrice j Ti = i T j−1 =  
 1 0 0 −3 
 
0 0 0 1 
- matrice de transformation pure
soit trans(a,b,c) une transformation qui désigne la translation a, b et c le long des axes x, y et
z respectivement. La transformation dans ce cas s’exprime par :

1 0 0 a
0 1 0 b 
i
T j = trans (a, b, c) = 
0 0 1 c
 
0 0 0 1

On utilise par la suite, la notation trans(u,d) pour désigner une translation d’une valeur d le
long d’un axe u.
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Propriété : trans(a,b,c)=trans(x,a)*trans(y,b)*trans(z,c).
- matrices de rotation autour des axes principaux
1) soit rot ( x, θ ) une transformation qui désigne une rotation de θ par rapport à l’axe x

Déterminer i T j = rot ( x, θ ) ?

1 0 0 0
0 Cθ − Sθ 0 
Réponse : T j = rot ( x, θ ) = 
i

0 Sθ Cθ 0
 
0 0 0 1

Tels que : Cθ = cos(θ ) et Sθ = sin(θ )

2) soit rot (y, θ ) une transformation qui désigne une rotation de θ par rapport à l’axe y
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Déterminer i T j = rot (y, θ ) ?

 Cθ 0 Sθ 0
 0 1 0 0 
Réponse : i T j = rot (y, θ ) = 
 − Sθ 0 Cθ 0
 
 0 0 0 1

3) soit rot (z, θ ) une transformation qui désigne une rotation de θ par rapport à l’axe z
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Déterminer i T j = rot (z, θ ) ?

Cθ − Sθ 0 0
 Sθ Cθ 0 0 
Réponse : T j = rot (z, θ ) = 
i

 0 0 1 0
 
 0 0 0 1

Propriétés :

 A p1   A2 p2   A1. A2 A1 p2 + p1 
- composition de deux matrices : T1.T2 =  1  . = 
0 0 0 1  0 0 0 1   0 0 0 1 
- il importe de se rappeler que le produit de deux matrices de transformation n’est pas
commutatif T1.T2 ≠ T2 .T1
- si un repère a subit k transformations consécutives et si chaque transformation i (i=1,...k)
est définie par rapport au repère courant Ri-1, alors la transformation 0 Tk peut être
déduite de la composition des multiplications à droite de ces transformations :
0
Tk = 0 T1.1T2 ...k −1Tk
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Chapitre 3 : Modèle géométrique direct des robots manipulateurs à


chaine ouverte simple.

3.1 Introduction
La conception et la commande des robots nécessitent le calcul de certains modèles
mathématiques tels que : les modèles géométrique direct et inverse, les modèles cinématiques
direct et inverse, les modèles dynamiques. Dans ce chapitre, nous allons voir comment on va
déterminer le modèle géométrique direct des robots manipulateur à chaine ouverte simple, en
utilisant la notation de Khalil et Kleifinger.

3.2 Description de la géométrie des robots à structure ouverte simple


Une structure ouverte simple est composée de n+1 corps notés c0 ,..., cn et de n articulations. Le
corps c0 désigné la base du robot et le corps cn qui porte qui porte l’organe terminal.
L’articulation j connecte le corps c j au corps c j −1 .

La méthode de description est fondée sur les règles suivantes :


- les corps sont supposés rigides
- le repère Rj est lié au corps c j
- la variable de l’articulation j est notée q j

Figure 3.1 : robot à structure ouverte simple


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Le repère Rj, fixé au corps c j est défini de sorte que :

- l’axe zj est porté par l’axe de l’articulation j


- l’axe xj est porté par la perpendiculaire commune aux axes zj-1 et zj. Si les axes zj-1 et zj
sont parallèles ou colinéaires, le choix de xj n’est pas unique : des considérations de
symétrie ou de simplicité permettent alors un choix rationnel.
Le passage du repère Rj-1 au repère Rj s’exprime en fonction des quatre paramètres
géométriques suivants :

α j : angle entre les axes zj-1 et zj correspondant à une rotation autour de xj-1

d j : distance entre zj-1 et zj le long de xj-1

θ j : angle entre les axes xj-1 et xj correspondant à une rotation autour de zj

rj : distance entre xj-1 et xj le long de zj

La variable articulaire q j associé à la jième articulation est soit θ j , soit rj , selon que cette
articulation est de type rotoïde ou prismatique, ce qui traduit par la relation : q j = δ jθ j + δ j rj

δ j = 0 si l'articulation j est rotoïde



avec : δ j = 1 si l'articulation j est prismatique

δ j = 1 − δ j

Question : trouver la matrice de transformation définissant le repère Rj dans le repère Rj-1 ?


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Réponse :
j −1
T j = rot ( x, α j ).trans ( x, d j ).rot ( z , θ j ).trans ( z , rj )
1 0 0 0  1 0 0 d j  Cθ j − Sθ j 0 0  1 0 0 0
0 Cα − Sα j 0  0 1 0 0   Sθ j Cθ j 0 0  0 1 0 0 
= j

 0 Sα j Cα j 0 0 0 1 0  0 0 1 0 0 0 1 rj 
    
0 0 0 1  0 0 0 1  0 0 0 1  0 0 0 1
 Cθ j − Sθ j 0 dj   dj 
Cα Sθ   j −1 A − r Sα 
 Cα j Cθ j − Sα j − r j Sα j   j
= =
j j j j

 Sα j Sθ j Sα j Cθ j Cα j rj Cα j   rj Cα j 
   
 0 0 0 1   0 0 0 1 

On remarque que la matrice de rotation j −1


Aj peut être obtenue par j −1
Aj = rot ( x, α j ).rot ( z ,θ j )
 − d j Cθ j 
 j −1 AT d j Sθ j 
. La matrice T j −1 = T j = 
j −1 −1
j j

 − rj 
 
 0 0 0 1 

Remarques : choix du repère de référence R0


- prendre R0 confondu avec R1 quand q=0. Ce qui signifie que Z0 est confondu avec Z1 et
O0=O1 lorsque l’articulation 1 est rotoïde.
- Z0 est confondu avec Z1 et X0 est parallèle à X1, lorsque l’articulation 1 est prismatique.
Question : trouver la matrice de transformation entre Rj+1 et Rj-1, lorsque α j +1 = 0 ?

3.3 Modèle géométrique direct


Le modèle géométrique direct (MGD) est l’ensemble des relations qui permettent d’exprimer
la situation de l’organe terminal, c.-à-d. les coordonnées opérationnelles du robot en fonction
de ses coordonnées articulaires. Dans le cas d’une chaine ouverte simple, il peut être représenté
par la matrice de passage :
0
Tn = 0 T1 (q1 )1T2 (q 2 )...n −1Tn ( qn )

Le modèle géométrique direct du robot peut aussi être représenté par la relation : X=f(q)

avec : q étant le vecteur des variables articulaires tel que : q = [ q1 q2 ... qn ]


T

les coordonnées opérationnelles sont définie par : x = [ x1 x2 ... xn ]


T

Plusieurs possibilités existent pour la définition du vecteur x. par exemple avec les éléments de
T
la matrice 0 Tn : x =  px py pz sx sy sz nx ny nz nx ny nz  .
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Exemple 1 : On considère le robot Staubli RX-90, présenté par la figure ci-dessous.
Déterminer les paramètres géométriques de ce robot.

Réponse : les paramètres géométriques de ce robot sont donnés par le tableau suivant :
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Exemple 2 : on considère un robot plan à deux degrés de liberté (2DDL), présenté par la figure
ci-dessous.

Y0

X3

L2 Z3
X2
L1
X1 Z2
Z0, Z1
X0

Tels que : l1 et l2 sont les longueurs des segments du robot ; θ1 et θ 2 sont les variables
articulaires ;
Déterminer :
- Les paramètres géométriques de ce robot
- Les matrices de transformations entre repères ( 0 T1 , 1T2 et 2 T3 )
- Le modèle géométrique direct ( 0 T3 )

Solution :
Les paramètres géométriques:
j αj dj θj rj
1 0 0 θ1 0
2 0 L1 θ2 0
3 0 L2 0 0

Les matrices de transformations entre repères :

Cθ1 − Sθ1 0 0  Cθ 2 − Sθ 2 0 L1 


 Sθ 
Cθ1 0 0  1  Sθ Cθ 2 0 0 
0
T1 = rot (z, θ1 ) =  1 ; T2 = trans ( x, L1 ).rot (z, θ 2 ) =  2 ;
 0 0 1 0  0 0 1 0
   
 0 0 0 1  0 0 0 1
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
1 0 0 L2 
0 1 0 0 
2
T3 = trans (x, L2 ) = 
0 0 1 0
 
0 0 0 1

Le modèle géométrique direct ( 0 T3 ) :


0
T1 = 0 T1.1T2 .2 T3

U2

U1
U0

U 2 = 2 T3

Cθ 2 − Sθ 2 0 L1 + L2Cθ 2 
 Sθ Cθ 2 0 L2 Sθ 2 
U1 = T2 .U 2 =  2
1

 0 0 1 0 
 
 0 0 0 1 

C (θ1 + θ 2 ) − S (θ1 + θ 2 ) 0 L1C (θ1 ) + L2C (θ1 + θ 2 ) 


 
S (θ1 + θ 2 ) C (θ1 + θ 2 ) 0 L1S (θ1 ) + L2 S (θ1 + θ 2 ) 
U 0 =0 T1.U1 = 
 0 0 1 0 
 
 0 0 0 1 
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Chapitre 4 : Modèle géométrique inverse des robots manipulateurs à


chaine ouverte simple.

4.1 Introduction
Le modèle géométrique direct d’un robot permet de calculer les coordonnées opérationnelles
donnant la situation du poignet en fonction des coordonnées articulaires. Le problème inverse
consiste à calculer les coordonnées articulaires correspondant à une situation donnée de
l’organe terminal. Lorsqu’elle existe, la forme explicite qui donne toutes les solutions possibles,
constitue ce que l’on appelle le modèle géométrique inverse MGI.
4.2 Les cas qui se présentent l’or du calculer du MGI
Dans le calcul du MGI, nous avons trois cas qui se présentent :
- Absence de solution, lorsque la situation désirée est en dehors de la zone accessible du
robot.
- Infinité de solutions lorsque :
• Le robot est redondant vis-à-vis de la tâche
• Le robot se trouve dans certaines configurations singulières
- Solutions en nombre fini exprimées par un ensemble de vecteurs [q1…qr]. on dit qu’un
robot manipulateur est résoluble lorsqu’il est possible de calculer toutes les
configurations permettant d’atteindre une situation donnée.
4.3 Calcul du MGI par la méthode de Paul
Nous considérons un robot manipulateur dont la matrice de transformation homogène a pour
expression :

U 0 =0 T1 (q1 ).1T2 (q 2 )...n −1Tn ( qn ) (1)

Pour trouver les solutions de l’équation (1). Paul a proposé une méthode qui consiste à pré
multiplier successivement les deux membres de l’équation (1) par les matrices j T j −1 pour j
variant de 1 à n-1. Opérations qui permettent d’isoler et d’identifier l’une après l’autre les
variables articulaires que l’on cherche. Pour un robot à six degrés de liberté par exemple, on
procède comme suit :

Multiplication à gauche de l’expression (1) par 1T0 , on obtient l’équation suivante :


1
T0 .U 0 =1 T2 .2 T3 .3 T4 .4 T5 .5 T6 (2)

Le terme de droite est fonction des variables q2 ,..., q6 . Il a déjà été calculé avec le MGD, si l’on
a pris la précaution de commencer les multiplications de matrices en partant des transformations
de l’extrémité du manipulateur. Le terme de gauche n’est fonction que des éléments de U0 et
de la variable q1 .
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Identification terme à terme des deux membres de l’équation (2). On se ramène à un système
d’une ou de deux équations le plus simple possible, fonction de q1 uniquement, dont la structure
appartient à un type particulier parmi une dizaine possibles :
Type 1 x.ri = y
Type 2 x.Sθi + y.Cθi = z
Type 3 x1.Sθi + y1.Cθi = z1
x2 .Sθi + y2 .Cθi = z2
Type 4 x1.rj .Sθi = y1
x2 .rj .C θi = y2
Type 5 x1.Sθi = y1 + z1.rj
x2 .Cθi = y2 + z2 .rj
Type 6 w.Sθ j = x.Cθi + y.Sθi + z1
w.Cθ j = x.Sθi − y.Cθi + z2
Type 7 w1.Cθ j + w2 .Sθ j = x.Cθi + y.Sθi + z1
w1.Sθ j − w2 .Cθ j = x.Sθi − y.C θi + z2
Type 8 x.C θi + y.C(θi + θ j ) = z1
x.Sθi + y.S(θi + θ j ) = z2

Exemple 1 : résolution de l’équation de type2


z
1) x = 0, y ≠ 0 ⇒ Cθi = et Sθi = ± 1 − Cθi 2
y
d’où θi = atan2( Sθi , Cθi )
z
2) x ≠ 0, y = 0 ⇒ Sθ i = et Cθi = ± 1 − Sθ i 2
x
d’où θi = atan2( Sθi , Cθi )
3) x ≠ 0, y ≠ 0 et z = 0 ⇒ θi = atan2( − y, x )
4) x ≠ 0, y ≠ 0 et z ≠ 0 ⇒ y.Cθi = z − x.Sθi
expression que l’on élève au carré, on trouve :
y 2 .Cθi 2 = y 2 (1 − Sθ i 2 ) = z 2 − 2 zx.Sθ i + x 2 Sθ i 2
on résout une équation du second degré en Sθi . Un raisonnement analogue conduit à
une équation en Cθi .
 xz ± y x 2 + y 2 − z 2
 Sθi =
 x2 + y2
 ⇒ θi = atan2( Sθi , Cθi )
 yz − (± x x + y − z )
2 2 2

Cθi = x2 + y2

Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Exemple 2 : modèle géométrique direct d’un robot plan à 2 DDL.
Le modèle géométrique direct d’un robot plan à 2 DDL est donné par la formule suivante :

 x = L1C (θ1 ) + L2C (θ1 + θ 2 )



 y = L1S (θ1 ) + L2 S (θ1 + θ 2 )

Tels que : l1 et l2 sont les longueurs des segments du robot ; θ1 et θ 2 sont les variables
articulaires ; x et y sont les coordonnées opérationnelles.

- Déterminer le MGI de ce robot ( θ1 = ? et θ 2 = ? ).

Solution :
On calcule le MGI de ce robot pour une situation donnée. Donc, x et y sont connus.

Le MGD de ce robot est donné par les deux équations suivantes :

x = L1C (θ1 ) + L2C (θ1 + θ 2 ) (1)

y = L1S (θ1 ) + L2 S (θ1 + θ 2 ) (2)

 x 2 + y 2 − ( L12 + L22 )
Cθ 2 =
On calcule (1)2 + (2) 2 ⇒ 2 L1 L2

 Sθ 2 = 1 − Cθ 2
2

d’où θ 2 = atan2( Sθ 2 , Cθ 2 )

De (1) et (2), on trouve θ1 :

 x ( L1 + L2Cθ 2 ) + L2 ySθ 2
Cθ1 =
( L1 + L2Cθ2 ) + L22 Sθ2 2
2

 ⇒ θ1 = atan2( Sθ1 , Cθ1 )
 Sθ = y ( L1 + L2Cθ 2 ) − L2 xSθ 2
 1 ( L1 + L2Cθ 2 ) + L22 Sθ 2 2
2

Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Chapitre 5 : Modèle cinématique direct.

5.1 Introduction
Le modèle cinématique direct d’un robot manipulateur décrit les vitesses des coordonnés
opérationnelles en fonction des vitesses articulaires. Il est noté :

xɺ = J ( q ) qɺ

∂x
Où J(q) désigne la matrice Jacobienne de dimension ( m × n ) du mécanisme, égale à et
∂q
fonction de la configuration articulaire q. la même matrice Jacobienne intervient dans le calcul
du modèle différentiel direct qui donne les variations élémentaires dx des coordonnées
opérationnelles en fonction des variations élémentaires des coordonnées articulaires dq, soit :

dx = J ( q ) dq

5.2 Intérêt de la matrice Jacobienne


On distingue trois intérêts de la matrice Jacobienne :
1) Elle est la base du modèle différentiel inverse, permettant de calculer une solution local
des variables articulaire q connaissant les coordonnées opérationnelles x.
2) En statique, on utilise la Jacobienne pour établir la relation liant les efforts exercés par
l’organe terminal sur l’environnement aux forces et couples des actionneurs
3) Elle facilite le calcul des singularités et de la dimension de l’espace opérationnel
accessible du robot

5.3 Calcul de la matrice Jacobienne par dérivation du MGD


Le calcul de la matrice Jacobienne peut se faire en dérivant le MGD, x=f(q), à partir de la
relation suivante :

∂f i ( q )
J ij = i = 1,..., m; j = 1,..., n
∂q j

où Jij est l’élément (i,j) de la matrice Jacobienne J. cette méthode est facile à mettre en œuvre
pour des robots à deux où à trois degrés de liberté . il existe une autre méthode basée sur le
calcul de la Jacobienne de base qui est pratique pour les robots ayant plus de trois degrés de
liberté.
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Exemple : Soit le robot plan à trois degrés de liberté, d’axes rotoïdes parallèles, présenté par la
figure suivante :

Y0

X4
Z4
L3
X3

L2 Z3
X2
L1
X1 Z2
Z0, Z1
X0
Figure : robot plan à 3 DDL

Tels que : l1 , l2 et l3 sont les longueurs des segments du robot ; θ1 , θ 2 et θ3 sont les variables
articulaires ;
Déterminer :
- Le modèle géométrique direct (MGD) de ce robot
- Le modèle cinématique direct (MCD)
Solution :
- Le modèle géométrique direct (MGD)
x = L1C (θ1 ) + L2C (θ1 + θ 2 ) + L3C (θ1 + θ 2 + θ 3 )
y = L1S (θ1 ) + L2 S (θ1 + θ 2 ) + L3 S (θ1 + θ 2 + θ 3 )
α = θ1 + θ 2 + θ3
- Le modèle cinématique direct (MCD)

 xɺ   − L1S1 − L2 S12 − L3 S123 − L2 S12 − L3 S123 − L3 S123 θɺ1 


 yɺ  =  L C1 + L C12 + L C123 L C12 + L C123 L C123  θɺ 
   1 2 3 2 3 3  2
αɺ   1 1 1  θɺ3 

Référence :
1- Wisama KHALIL et Etienne DOMBRE, ‘Bases de la modélisation et de la commande des
robots-manipulateurs de type série’, 2012. (https://www.gdr-
robotique.org/cours_de_robotique/online/Khalil-Dombre_Modelisation/Khalil-
Dombre_Modelisation.pdf) (consulté le 04/04/2020).
2- Robot médical Da Vinci. (https://fr.wikipedia.org/wiki/Da_Vinci_(chirurgie)) (consulté le
04/04/2020).
3- Guechi, E-H. (2010). Suivi de trajectoires d’un robot mobile non holonome : approche par
modele flou de Takagi-Sugeno et prise en compte des retards. These de doctorat, Universite de
Valenciennes. France.
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

Chapitre 6 : Commande nonlinéaire d’un robot manipulateur à 2DDL

6.1 Modèle cinématique direct (MCD) du robot manipulateur à 2DDL


Le modèle géométrique direct d’un robot plan à 2 DDL est donné par la formule suivante :

 x = L1C (θ1 ) + L2C (θ1 + θ 2 )


 (17)
 y = L1S (θ1 ) + L2 S (θ1 + θ 2 )

Tels que :

• l1 et l2 sont les longueurs des segments du robot ;


• θ1 et θ 2 sont les variables articulaires ;
• x et y sont les coordonnées opérationnelles.
• C (θ1 ) = cos (θ1 ) et S (θ1 ) = sin (θ1 )

En dérivant le système (17) par rapport au temps, on obtient le modèle cinématique direct
(MCD) du robot manipulateur à 2 DDL :

 xɺ   w1 
 yɺ  = J (θ1 , θ 2 ) w  (18)
   2
Avec :

 − L S1 − L2 S12 − L2 S12
• La matrice Jacobienne J (θ1 , θ 2 ) =  1 
 L1C1 + L2C12 L2C12 
• [ w1 w2 ] est le vecteur des vitesses angulaires (les entrées du système)
T

• [ x y ] est le vecteur d’état


T

6.2 Commande nonlinéaire linéarisante du robot à base de son modèle cinématique


Le modèle cinématique qui représente ce robot peut être réécrit sous la forme suivante :

  xɺ   w1 
   = J (θ1 , θ 2 )  
  yɺ   w2 

S = [ x y]
T

où :

• S = [x y ] est la sortie du système


T

On dérive la sortie S, on obtient :


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

 xɺ  v 
Sɺ =   = v =  1  (19)
 yɺ  v2 

tel que : v = [ v1 v2 ] est le vecteur des commandes synthétiques


T

En utilisant (18) et (19), la commande nonlinéaire linéarisante est donnée par la formule
suivante :

  w1   v1 
   = J (θ1 , θ 2 )  
−1

  w2  v2 
avec det J θ , θ ≠ 0 ⇒ θ ≠ kπ , k ∈ ℤ
 ( ( 1 2 )) 2

Les commandes synthétiques sont données par la formule suivante :

v1 = k1 ( xd − x )

v2 = k2 ( yd − y )

où :

• k1 et k2 sont deux constantes strictement positives.


• xd et yd sont les positions désirées de l’organe terminal du robot par rapport aux axes
X et Y, respectivement.
6.3 Le modèle géométrique inverse (MGI) du robot
On calcule le MGI de ce robot pour une situation donnée. Donc, x et y sont connus.

Le MGD de ce robot est donné par les deux équations suivantes :

x = L1C (θ1 ) + L2C (θ1 + θ 2 ) (20)

y = L1S (θ1 ) + L2 S (θ1 + θ 2 ) (21)

 x 2 + y 2 − ( L12 + L22 )
C
 2θ =
On calcule (20) 2 + (21)2 ⇒ 2 L1 L2

 Sθ 2 = 1 − Cθ 2
2

d’où θ 2 = atan2( Sθ 2 , Cθ 2 )

De (20) et (21), on trouve θ1 :


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

 x ( L1 + L2Cθ 2 ) + L2 ySθ 2
Cθ1 =
( L1 + L2Cθ2 ) + L22 Sθ2 2
2

 ⇒ θ1 = atan2( Sθ1 , Cθ1 )
 Sθ = y ( L1 + L2Cθ 2 ) − L2 xSθ 2
 1 ( L1 + L2Cθ 2 ) + L22 Sθ 2 2
2

6.4 Implémentation de la loi de commande nonlinéaire linéarisante de ce robot, en


utilisant le logiciel MATLAB
Le schéma Simulink de la boucle de régulation est représenté par la figure suivante :
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
Programme principal :
clear all, close all; clc;

l1=0.5; l2=0.5; x0=0; y0=0;

axis([-1 1 -1 1]);
grid;
[xi yi]=ginput(1);

%%%%%%%%%%%%%%%%%%%%%%%
xf=xi;yf=yi;
cq2=(xf^2+yf^2-(l1^2+l2^2))/(2*l1*l2);

sq2=sqrt(1-cq2^2);

q2=atan2(sq2,cq2);

cq1=(xf*(l1+l2*cos(q2))+l2*sin(q2)*yf)/((l1+l2*cos(q2))^2+l2^2*sin(q2)^2);

sq1=(yf*(l1+l2*cos(q2))-
l2*sin(q2)*xf)/((l1+l2*cos(q2))^2+l2^2*sin(q2)^2);

%sq1=sqrt(1-cq1^2);

q1=atan2(sq1,cq1);

x1=l1*cos(q1); y1=l1*sin(q1);

plot(x0,y0,'*','linewidth',20);hold
on;plot(x1,y1,'*','linewidth',20);hold on;plot(xf,yf,'*','linewidth',20);

hold on; line([x0 x1 x1 xf],[y0 y1 y1 yf],'linewidth',5,'color','r');

axis([-1 1 -1 1]); %axis([-0.5 1.5 -0.5 1.5]);

grid

%%%%%%%%%%%%%%%%%%%%%%%

[xd1 yd1]=ginput(1);

hold on;plot(xd1,yd1,'*','linewidth',20,'color','k')

sim('robot',2)
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020

xd=xd(1); yd=yd(1);

for i= 1:length(x)

xf=x(i); yf=y(i);

cq2=(xf^2+yf^2-(l1^2+l2^2))/(2*l1*l2);

sq2=sqrt(1-cq2^2);

q2=atan2(sq2,cq2);

cq1=(xf*(l1+l2*cos(q2))+l2*sin(q2)*yf)/((l1+l2*cos(q2))^2+l2^2*sin(q2)^2);

sq1=(yf*(l1+l2*cos(q2))-
l2*sin(q2)*xf)/((l1+l2*cos(q2))^2+l2^2*sin(q2)^2);

%sq1=sqrt(1-cq1^2);

q1=atan2(sq1,cq1);

x1=l1*cos(q1); y1=l1*sin(q1);

plot(x0,y0,'*','linewidth',20);hold
on;plot(x1,y1,'*','linewidth',20);hold on;plot(xf,yf,'*','linewidth',20);

hold on; line([x0 x1 x1 xf],[y0 y1 y1 yf],'linewidth',5,'color','r');


hold on;plot(xd,yd,'*','linewidth',20,'color','k')

axis([-1 1 -1 1]); %axis([-0.5 1.5 -0.5 1.5]);

grid

hold off;

pause(0.1)

end

hold on; plot(x,y,'y','linewidth',3)


Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
La fonction du modèle cinématique :
function y = kinematic_model(params)

% if nargin ~= 1
% error('One argument is neccesary');
% elseif length(params) < 3
% error('Two parameters are required');
% end

u1=params(1); u2=params(2); teta1=params(3); teta2=params(4);

l1=0.5; l2=l1;
b11=-l1*sin(teta1)-l2*sin(teta1+teta2);
b12=-l2*sin(teta1+teta2);
b21=l1*cos(teta1)+l2*cos(teta1+teta2);
b22=l2*cos(teta1+teta2);

b=[b11 b12;b21 b22];

y=[b*[u1;u2]];

La fonction du MGI:
function y = mgi(params)

% if nargin ~= 1
% error('One argument is neccesary');
% elseif length(params) < 5
% error('Two parameters are required');
% end

xf=params(1); yf=params(2);

l1=0.5; l2=0.5;

cq2=(xf^2+yf^2-(l1^2+l2^2))/(2*l1*l2);

sq2=sqrt(1-cq2^2);

q2=atan2(sq2,cq2);

cq1=(xf*(l1+l2*cos(q2))+l2*sin(q2)*yf)/((l1+l2*cos(q2))^2+l2^2*sin(q2)^2);

sq1=(yf*(l1+l2*cos(q2))-l2*sin(q2)*xf)/((l1+l2*cos(q2))^2+l2^2*sin(q2)^2);

%sq1=sqrt(1-cq1^2);

q1=atan2(sq1,cq1);

y=[q1;q2];
Commande des robots de manipulations (cours); M2 (Auto & Syst + Auto & Info); Présenté
par : Dr. El-Hadi GUECHI ; Année 2020
La fonction de la commande nonliéare linéarisante :
function y = nonlinear_control(params)

% if nargin ~= 1
% error('One argument is neccesary');
% elseif length(params) < 5
% error('Two parameters are required');
% end

v1=params(1); v2=params(2); teta1=params(3); teta2=params(4);

l1=0.5; l2=l1;
b11=-l1*sin(teta1)-l2*sin(teta1+teta2);
b12=-l2*sin(teta1+teta2);
b21=l1*cos(teta1)+l2*cos(teta1+teta2);
b22=l2*cos(teta1+teta2);

b=[b11 b12;b21 b22];

u=inv(b)*[v1;v2];

y=[u];

Vous aimerez peut-être aussi