Académique Documents
Professionnel Documents
Culture Documents
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.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).
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
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.
Px
P
P = y
Pz
1
Ux
U
U = y
Uz
1
- représentation d’un plan
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.
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
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
Solution :
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
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
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
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
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.
α j : angle entre les axes zj-1 et zj correspondant à une rotation autour de xj-1
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
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
− rj
0 0 0 1
Le modèle géométrique direct du robot peut aussi être représenté par la relation : X=f(q)
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
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
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 :
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 :
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
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 :
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.
Solution :
On calcule le MGI de ce robot pour une situation donnée. Donc, x et y sont connus.
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 )
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
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
∂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)
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
Tels que :
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ɺ w1
= J (θ1 , θ 2 )
yɺ w2
S = [ x y]
T
où :
xɺ v
Sɺ = = v = 1 (19)
yɺ v2
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
v1 = k1 ( xd − x )
v2 = k2 ( yd − y )
où :
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 )
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
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);
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);
grid
hold off;
pause(0.1)
end
% if nargin ~= 1
% error('One argument is neccesary');
% elseif length(params) < 3
% error('Two parameters are required');
% end
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);
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
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);
u=inv(b)*[v1;v2];
y=[u];