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 ».