Telechargé par Amine sereir el hirtsi

pagedegard

publicité
Université djilali Bounaama
FaCULTE : science et technologie
TP n°1 : model géométrique
(direct,invrse)
Proposer par :
Sereir el hirtsi Med Amine

Diriger par :
m.bouklli
spécilité : master 2
« ‘AutomAtique’ »
ANNéE : 2018/2019
Introduction :
Le modèle géométrique direct d'un robot permet
de calculer les coordonnées opérationnelles
donnant la situation de l'organe terminal en
fonction des coordonnées articulaires.
Il permet de déterminer la configuration
(position, orientation) de l'effecteur d'un robot
en fonction de la configuration de ses liaisons. Il
existe 2 types de liaisons, les liaisons pivots et les
liaisons glissières :
La liaison pivot permet des mouvements de
rotation, elle est caractérisée par un angle.
La liaison glissière permet des mouvements de
translation et est caractérisée par une distance.
But du TP :
Le but de ce TP est de développer des fonctions sous
Matlab qui permettent de définir
des transformations homogènes et de calculer le
modèle géométrique direct (MGD) d’un
manipulateur. Le modèle géométrique inverse (MGI)
d’un simple manipulateur à 2 DDL.
Partie théorie :
Dans ce tp on vouliez écrire des programmes d’un
model géométrique MG(D,I) d’un robot 2D OU 3D
,d’après les paramètres de ce robot soit une (rotation
translation ,articulation ou distance) et remplir le
tableau de paramétrage pour écrire une matrice de
Denavit-Hartenberg. Cette matrice est une matrice
général .
Cette matrice écrire ce forme :
𝑀
=
(𝑖 − 1, 𝑖)
cos 𝜃𝑖 − sin 𝜃𝑖 cos 𝛼𝑖
[ sin 𝜃𝑖 cos 𝜃𝑖 cos 𝛼𝑖
sin 𝛼𝑖
0
0
0
sin 𝜃𝑖 sin 𝛼𝑖 𝑎𝑖 cos 𝜃𝑖
− cos 𝜃𝑖 sin 𝛼𝑖 𝑎𝑖 sin 𝜃𝑖 ]
cos 𝛼𝑖 𝑑𝑖
0 1
Partie pratique :
Model géométrique direct :
Le program :
Mgd_2dl :
Function pm=mgd_2dl(q,a)
function pm=MGD_2D(q,a)
a1=a(1);
a2=a(2);
t1=q(1);
t2=q(2);
c1=cosd(t1);
s1=sind(t1);
c2=cosd(t2);
s2=sind(t2);
M01=[c1 -s1 0 a1*c1;s1 c1 0 a1*s1;0 0 1 0;0 0 0 1];
M12=[c2 -s2 0 a2*c2;s2 c2 0 a2*s2;0 0 1 0;0 0 0 1];
M03=M01*M12;
pm=M02(1:2,4);
disp('les cordonnées de p=');
disp(pm) ;
et programme mgd 3dl :
program :
function pm=MGD_3D(q,a)
a1=a(1);
a2=a(2);
a3=a(3);
t1=q(1);
t2=q(2);
t3=q(3);
c1=cosd(t1);
s1=sind(t1);
c2=cosd(t2);
s2=sind(t2);
c3=cosd(t3);
s3=sind(t3);
M01=[c1 -s1 0 a1*c1;s1 c1 0 a1*s1;0 0 1 0;0 0 0 1];
M12=[c2 -s2 0 a2*c2;s2 c2 0 a2*s2;0 0 1 0;0 0 0 1];
M23=[c3 -s3 0 a3*c3;s3 c3 0 a3*s3;0 0 1 0;0 0 0 1];
M03=M01*M12*M23;
pm=M03(1:3,4);
disp('les cordonnées de p=');
disp(pm) ;
2.model géométrique inverse :
dans ce program on vouliez calculer le
paramètre ‘theta’ (𝜃1, 𝜃2) :
Le programme écrit :
function pm=MGI_2R(P,a)
a1=a(1);
a2=a(2);
Px=p(1) ;
Py=p(2) ;
D=(px^2+py^2-a1^2-a2^2)/(2*a1*a2) ;
Theta2=acosd(D) ;
K1=a1+a2*cosd(theta2) ;
K2=a2*sind(theta2) ;
Theta1=atan2d(k1*py-k2*px,k2*py+k1*px) ;
q=(theta1 ;theta2) ;
disp(q) ;
conclusion :
ces programmes et très rapide et facile de calcules les paramètres et
le matrice de (translation et/ou rotation) d’un repère a un autre avec
le program « matlab ».
Téléchargement