SEDKI Rapport

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 15

ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Département d’Automatique, électronique, électrotechnique et électromécanique

Filière : Génie Electromécanique


Option : Energie Et Maintenance Electromécanique

#Rapport de projet :

Modèle Géométrique Direct et inverse D’un Robot

Réalisé par :

SEDKI Hamza_4A_GEM_GEE

Encadrant :
Pr.NAFI

Année universitaire : 2022-2023

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

SOMMAIRE :

Cahier de charge :

Modèle Géométrique Direct (MGD) :

Script MATLAB :

Les équations de la matrice Jacobéenne :

La méthode de commande cinématique :

Conclusion ;

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Introduction :
La robotique industrielle offre la possibilité d'automatiser des tâches spécifiques au sein
de votre chaîne de production, ce qui se traduit par une augmentation de la flexibilité et une
amélioration de la productivité. À l'origine, les robots industriels ont été développés pour
intervenir dans des environnements présentant des risques élevés tels que le secteur nucléaire
ou des conditions de forte corrosion. Par la suite, leur utilisation s'est étendue à l'industrie
automobile et à d'autres domaines.
Un robot industriel est un dispositif programmable conçu pour effectuer
automatiquement des tâches spécifiques. Il est utilisé pour remplacer l'homme dans les tâches
dangereuses. Un robot se compose de plusieurs éléments essentiels. Tout d'abord, il comprend
une partie mécanique, notamment un bras, qui lui permet d'effectuer les mouvements
nécessaires pour accomplir les tâches assignées. Ensuite, il est équipé d'une armoire de
commande qui abrite une unité centrale responsable de la gestion des commandes électroniques
des différents axes du robot. Cette unité centrale est accompagnée de variateurs de vitesse qui
assurent le contrôle précis des mouvements du robot. De plus, le robot dispose d'un langage de
programmation spécialisé qui permet aux opérateurs de le commander et de lui donner des
instructions précises. Enfin, le robot intègre également un transformateur de coordonnées qui
convertit les valeurs cartésiennes en données codeur du moteur, permettant ainsi un
positionnement précis.

Il existe différents types de robots industriels, chacun avec ses propres caractéristiques et
applications spécifiques. Certains robots sont programmés pour exécuter de manière précise et
répétitive des actions spécifiques. Ces robots sont dotés d'une programmation rigoureuse qui
leur permet d'accomplir des tâches avec un haut degré de précision. D'autres robots, en
revanche, offrent une plus grande flexibilité. Ces robots flexibles sont souvent utilisés dans des
domaines tels que la peinture, où ils peuvent s'adapter à différentes surfaces et contours pour
effectuer leur travail. Ils sont programmés pour s'adapter à des situations variables et peuvent
être configurés pour différentes applications selon les besoins.

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Schéma cinématique spatiale du robot ABB_IRB4600_205_45 :

1/cahier de charge :

Notre objectif est de créer un fichier.tjr qui permettra de programmer une séquence d'actions
pour le robot à partir de sa position initiale. Voici les différentes manipulations que nous
souhaitons effectuer :

1. Saisir le bloc bleu et le déposer sur le bloc jaune.


2. Saisir les deux blocs et les déposer sur le bloc rouge.
3. Saisir les trois blocs et les déposer à l'emplacement Tbleu1.
4. Saisir le bloc bleu et le déposer à l'emplacement Tjaune1.
5. Saisir le bloc jaune et le déposer à l'emplacement Trouge1.
6. Retourner à la position initiale.

Notre objectif est donc de créer un fichier.tjr qui contiendra les instructions nécessaires pour
que le robot exécute ces manipulations dans l'ordre spécifié.

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

2/Modèle Géométrique Direct ( MGD) :

Logiciel utilisé : le logiciel RoKiSim.

Nous allons construire le tableau D-H ( Denavit-Hartenberg ) :

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

3/script MATLAB :

D’abord on va écrire le script sur MATLAB :

 Matrice de rotation autour de l’axe z :

function Matrice=Rz(teta)
c=cos(teta);
s=sin(teta);
Matrice=[ c -s 0 0
s c 0 0
0 0 1 0
0 0 0 1];

 Matrice de rotation autour de l’axe x :

function Matrice = Rx(teta)


c=cos(teta);
s=sin(teta);
Matrice=[ 1 0 0 0
0 c -s 0
0 s c 0
0 0 0 1];
7

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Matrice de translation suivant l’axe z :

function Matrice=Tz(b)

Matrice=[1 0 0 0
0 1 0 0
0 0 1 b
0 0 0 1];

Matrice de translation suivant l’axe x :

function Matrice=Tx(a)

Matrice=[1 0 0 a
0 1 0 0
0 0 1 0
0 0 0 1];

Pour manipuler les quetre fonction, on va utiliser la fonction suivante :

function TG=ModelGD(teta)

table=[teta(1) 495 175 -pi/2;


teta(2)-pi/2 0 900 0;
teta(3) 0 175 -pi/2;
teta(4) 960 0 pi/2;
teta(5) 0 0 -pi/2;
teta(6)-pi 368.37 0 0];

TG=eye(4,4);
for i=1:length(table(:,1))

TE=Rz(table(i,1))*Tz(table(i,2))*Tx(table(i,3))*Rx(table(i
,4));
TG=TG*TE;
End

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

3/Les équations de la matrice Jacobéenne :

Lorsqu'un opérateur spécifie la vitesse cartésienne de l'outil d'un robot, le contrôleur du robot
doit déterminer les vitesses articulaires nécessaires. Calculer directement cette relation en
différentiant l'équation de la cinématique directe par rapport au temps devient très complexe
pour les robots avec plus de deux articulations rotoides.
Heureusement, il existe une matrice appelée jacobienne qui permet de convertir le vecteur des
vitesses articulaires en vecteur des vitesses de l'outil. Cette matrice peut être calculée de
manière symbolique en utilisant des formules simples, que nous présenterons dans ce rapport.
Algorithme pour calculer la matrice Jacobéenne :

Script MATLAB de la matrice jacobienne :

function Ja =jacob(teta)

table=[teta(1) 495 175 -pi/2;


teta(2)-pi/2 0 900 0;
teta(3) 0 175 -pi/2;
teta(4) 960 0 pi/2;
teta(5) 0 0 -pi/2;

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

teta(6) 368.37 0 0];

T1=Rz(table(1,1))*Tz(table(1,2))*Tx(table(1,3))*Rx(table(1,4));
T2=Rz(table(2,1))*Tz(table(2,2))*Tx(table(2,3))*Rx(table(2,4));
T3=Rz(table(3,1))*Tz(table(3,2))*Tx(table(3,3))*Rx(table(3,4));
T4=Rz(table(4,1))*Tz(table(4,2))*Tx(table(4,3))*Rx(table(4,4));
T5=Rz(table(5,1))*Tz(table(5,2))*Tx(table(5,3))*Rx(table(5,4));
T6=Rz(table(6,1))*Tz(table(6,2))*Tx(table(6,3))*Rx(table(6,4));

R1=T1(1:3,1:3);
R2=T2(1:3,1:3);
R3=T3(1:3,1:3);
R4=T4(1:3,1:3);
R5=T5(1:3,1:3);
R6=T6(1:3,1:3);
R11=R1;
R12=R11*R2;
R13=R12*R3;
R14=R13*R4;
R15=R14*R5;
R16=R15*R6;
k=[0 0 1]';

e1=k;
e2=R11*k;
e3=R12*k;
e4=R13*k;
e5=R14*k;
e6=R15*k;

P6=T6(1:3,4);
P5=T5(1:3,4);
P4=T4(1:3,4);
P3=T3(1:3,4);
P2=T2(1:3,4);
P1=T1(1:3,4);

r6p=P6;
r5p=P5+R5*r6p;
r4p=P4+R4*r5p;
r3p=P3+R3*r4p;
r2p=P2+R2*r3p;
r1p=P1+R1*r2p;

r6=R15*r6p;
r5=R14*r5p;
r4=R13*r4p;
r3=R12*r3p;
r2=R11*r2p;
r1=r1p;

Ja(:,1)=[e1;cross(e1,r1)];
Ja(:,2)=[e2;cross(e2,r2)];
Ja(:,3)=[e3;cross(e3,r3)];
Ja(:,4)=[e4;cross(e4,r4)];
Ja(:,5)=[e5;cross(e5,r5)];

10

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Ja(:,6)=[e6;cross(e6,r6)];

End

4/ La méthode de commande cinématique :


Le modèle cinématique directe calcule les vitesses des coordonnées de l’outil final en fonction
des vitesses articulaires, il est donné par la relation suivante : 𝑿̇ = 𝑱(𝒒) ∗ 𝒒̇ Avec J(q) , la
matrice Jacobienne de dimension (m x n) du mécanisme, n étant le nombre d’articulations du
robots et m le nombre de degré de liberté. Le modèle cinématique inverse calcule les vitesses
articulaires en fonction des vitesses des coordonnées de l’outil final, il est donné par la
relation suivante : 𝒒̇ = 𝑱 −𝟏 ∗ 𝑿̇, Dans ce cas on doit écrire une fonction sur MATLAB qui va
nous permettre de déterminer les coordonnées articulaires en chaque point. C’est la fonction
reach.m
Script de la fonction reach :
function Ja =jacob(teta)

table=[teta(1) 495 175 -pi/2;


teta(2)-pi/2 0 900 0;
teta(3) 0 175 -pi/2;
teta(4) 960 0 pi/2;
teta(5) 0 0 -pi/2;
teta(6) 368.37 0 0];

T1=Rz(table(1,1))*Tz(table(1,2))*Tx(table(1,3))*Rx(table(1,4));
T2=Rz(table(2,1))*Tz(table(2,2))*Tx(table(2,3))*Rx(table(2,4));
T3=Rz(table(3,1))*Tz(table(3,2))*Tx(table(3,3))*Rx(table(3,4));
T4=Rz(table(4,1))*Tz(table(4,2))*Tx(table(4,3))*Rx(table(4,4));
T5=Rz(table(5,1))*Tz(table(5,2))*Tx(table(5,3))*Rx(table(5,4));
T6=Rz(table(6,1))*Tz(table(6,2))*Tx(table(6,3))*Rx(table(6,4));

R1=T1(1:3,1:3);
R2=T2(1:3,1:3);
R3=T3(1:3,1:3);
R4=T4(1:3,1:3);
R5=T5(1:3,1:3);
R6=T6(1:3,1:3);
R11=R1;
R12=R11*R2;
R13=R12*R3;
R14=R13*R4;
R15=R14*R5;
R16=R15*R6;
k=[0 0 1]';

e1=k;
e2=R11*k;
e3=R12*k;
e4=R13*k;
e5=R14*k;
e6=R15*k;

11

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

P6=T6(1:3,4);
P5=T5(1:3,4);
P4=T4(1:3,4);
P3=T3(1:3,4);
P2=T2(1:3,4);
P1=T1(1:3,4);

r6p=P6;
r5p=P5+R5*r6p;
r4p=P4+R4*r5p;
r3p=P3+R3*r4p;
r2p=P2+R2*r3p;
r1p=P1+R1*r2p;

r6=R15*r6p;
r5=R14*r5p;
r4=R13*r4p;
r3=R12*r3p;
r2=R11*r2p;
r1=r1p;

Ja(:,1)=[e1;cross(e1,r1)];
Ja(:,2)=[e2;cross(e2,r2)];
Ja(:,3)=[e3;cross(e3,r3)];
Ja(:,4)=[e4;cross(e4,r4)];
Ja(:,5)=[e5;cross(e5,r5)];
Ja(:,6)=[e6;cross(e6,r6)];

end

script de la fonction trajectoire :

function trj=trajectoire2points(teta,posef)

MGD = ModelGD(teta);
p=MGD(1:3,4);
q=MGD(1:3,1:3);
Qd=posef(1:3,1:3);

P1 = p;
P2 = posef(1:3,4);
pas=0.04;
T = 5;
iteration=(T/pas)+1;
t = [0:pas:T];
s = (t/T)-sin(2*pi*t/T)/(2*pi);
P = P1*ones(size(s)) + (P2-P1)*s;

for i=1:iteration

teta = reach(P(:,i),Qd,teta);
trj(:,i)=teta;
%pxy(:,i)=position_outil(theta);
end

12

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Maintenant on va appliquer ces deux programmes pour notre exemple. Pour cela on va
prendre comme situation initiale de notre robot Tinit =[1 0 0 0,0 1 0 0,0 0 1 0,0 0 0 1] Et pour
la variable teta, on va prendre :
θi= [ pi/2 0 0 0 0 pi/2]
script principale :

%les positions articulaires initiales en degré :


teta1=90;
teta2=0;
teta3=0;
teta4=0;
teta5=0;
teta6=90;
%on va ecrire les angles en radian :
t1=teta1*(pi/180);
t2=teta2*(pi/180);
t3=teta3*(pi/180);
t4=teta4*(pi/180);
t5=teta5*(pi/180);
t6=teta6*(pi/180);
teta=[t1;t2;t3;t4,;t5;t6];
%position initial
Ti=ModelGD(teta);
%position des bloc :
%BLEU
Tb=[-1,0,0,-200;0,0,1,1400;0,1,0,500;0,0,0,1];
%JAUNE
Tj=[-1,0,0,0;0,0,1,1500;0,1,0,500;0,0,0,1];
%ROUGE
Tr=[-1,0,0,200;0,0,1,1400;0,1,0,500;0,0,0,1];

%aller vers le bloc bleu


traj1=trajectoire2points(teta,Tb)*(180/pi);
trajectoire1=traj1'
teta=traj1(:,126) ; %les nouveaux coordonnés
%aller vers le jaune
traj2=trajectoire2points(teta,Tj)*(180/pi);
trajectoire2=traj2'
teta=traj2(:,126); %les nouveaux coordonnés
%aller vers le bloc rouge
traj3=trajectoire2points(teta,Tr)*(180/pi);
trajectoire3=traj3'
teta=traj3(:,126); %les nouveaux coordonnés
%aller vers le bloc bleu
traj4=trajectoire2points(teta,Tb)*(180/pi);
trajectoire4=traj4'
teta=traj4(:,126); %les nouveaux coordonnés
%aller vers le bloc jaune
traj5=trajectoire2points(teta,Tj)*(180/pi);
trajectoire5=traj5'
teta=traj5(:,126); %les nouveaux coordonnés
%aller vers le bloc rougz
traj6=trajectoire2points(teta,Tr)*(180/pi);
trajectoire6=traj6'
teta=traj6(:,126) ; %les nouveaux coordonnés
%revenir au position initiale
traj7=trajectoire2points(teta,Ti)*(180/pi);
trajectoire7=traj7'

13

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

teta=traj7(:,126) ; %les nouveaux coordonnés

Extrait des résultats obtenus :

Et pour simuler, on doit créer un autre fichier « myRobot.sim.rks » qui va contenir le nom du
robot et l’outil qu’on va utiliser comme suit :

Et après le choix de l’outil ainsi le robot dans le logiciel rokisim, on ouvre la fenêtre « load a
simulation » et on ouvre le fichier d’extension.sim pour la simulation.

14

SEDKI.HAMZA 2022-2023
ENSAM MEKNES ROBOTIQUE INDUSTRIELLE

Conclusion :

Dans ce projet, nous avons développé une trajectoire pour le


robot ABB_IRB4600_205_45 à l'aide de l'outil
IRB1600_Pince.tool dans le logiciel Matlab. L'objectif était de
permuter les positions de trois boîtes de couleurs bleue, jaune
et rouge. Nous avons créé les fonctions nécessaires et exécuté
le code pour générer un fichier (trajectoire.sim) définissant la
trajectoire à suivre.

Fin du rapport

15

SEDKI.HAMZA 2022-2023

Vous aimerez peut-être aussi