Upload
others
View
1
Download
1
Embed Size (px)
Citation preview
GPA546
Robots industriels
Ahmed Joubair, ing., Ph.D. (Chargé de cours, ÉTS)
Ilian Bonev, ing., Ph.D. (Professeur titulaire, ÉTS)
Cours 6 :
Révision pour l’examen intra
1. Matrice de rotation
x1 y1
z1 x2
y2 z2
Révision de la théorie pour l’examen…
Révision de la théorie pour l’examen…
2. Roll (roulis) Pitch (tangage) Yaw (tangage)
x2
y2
z2
Yaw (w) Pitch (p)
Roll (r)
Rotation de r autour de l’axe des z
Rotation de p autour du nouvel axe des y
Rotation de w autour du nouvel axe des x
rt1.rot := OrientZYX(r,p,w); rpy(r,p,w)
angles(H)
x1 y1
z1 x2
y2 z2
Rot_z*Rot_y*Rot_x --»
Révision de la théorie pour l’examen…
3. Matrices homogènes
x1 y1
z1 x2
y2 z2
H21 := [[px,py,pz], OrientZYX(r,p,w)];
H12 := PoseInv(H21);
Révision de la théorie pour l’examen…
Txyz := [[px,py,pz],[1,0,0,0]];
Rx := [[0,0,0],OrientZYX(0,0,theta)];
rx(θ), ry(θ), rz(θ) txyz(x,y,z)
x1 y1
z1 x2
y2 z2
Révision de la théorie pour l’examen…
4. Ordre de multiplication
x0
y0
x1
y1
30°
1 2
x0
y0
30°
1 2
Révision de la théorie pour l’examen…
5. Ordre de multiplication
H := [[px,py,pz], OrientZYX(r,p,w)]; ou
Txyz := [[px,py,pz], OrientZYX(0,0,0)];
Rx := [[0,0,0], OrientZYX(0,0,w)];
Ry := [[0,0,0], OrientZYX(0,p,0)];
Rz := [[0,0,0], OrientZYX(r,0,0)];
H := PoseMult(PoseMult(PoseMult(Txyz,Rz),Ry),Rx);
H = Txyz * Rz * Ry * Rx
Q := RelTool(Q0, px, py, pz \Rx:=w \Ry:=p \Rz:=r); ou
H := PoseMult(PoseMult(PoseMult(PoseMult([Q0.trans,Q0.rot],Txyz),Rx),Ry),Rz);
Q := Q0; Q.trans := H.trans; Q.rot := H.rot;
H = H0 * Txyz * Rx * Ry * Rz Avec:
H0: [Q0.trans,Q0.rot]; !matrice homogène de Q0
Révision de la théorie pour l’examen…
6. Ordre de multiplication – Roll, Pitch, Yaw
x0
y0
z0
y1
x1 z1
10°
10°
angles(rx(10)*ry(90))
angles(ry(90)*rz(10))
Q := RelTool(Q0, 0, 0, 0 \Rx:=10 \Ry:=90);
Q0 := [[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,...]];
Q := RelTool(Q0, 0, 0, 0 \Ry:=90 \Rz:=10);
Q.rot := OrientZYX(90,80,90);
Révision de la théorie pour l’examen
À quoi ça sert tout ça ?
50
75 20
60 80
175
xB
yB
zB
bloc
xT
yT zT
table
xR
yR
zR
réf.
atelier
xt
yt
zt
TCP
poignet
xo
yo
zo base
pick:= RelTool(table, 50, 75, 20 \Rx:=180 \Rz:=-90);
pick.rot := OrientZYX(r,p,w);
pick.rot := OrientZYX(0,180,0)
pick.trans := [ 60-75 , 175+50 , 80+20 ];
pick:= ... (trouver le sans utiliser la fonction RelTool)
Exemple 0 : Référentiels d’outil sur la bride d’un robot
industriel
Révision pour l’examen intra
TCP
TCP
tool0
tool0 est toujours la référence pour
les référentiels d’outil
Exemple 1 : Référentiels sur un robot industriel
450
yo
zo
base
Atelier
(wobj0)
70×30×150
yt
zt
xt
30o
670
xo
zR
yR
xR
140
zB
xB
yB
Révision pour l’examen intra (suite)
bloc := [[480, -90, -530], OrientZYX(90,60,-90),
[0,0,0,0],[9E9,…]];
xB=450+30
yB=-90
zB=-(670-140)=-530
Exemple 1 : Référentiels sur un robot industriel (suite)
zB
xB
yB
Révision pour l’examen intra (suite)
bloc := [[480, -90, -530], OrientZYX(90,60,-90), [0,0,0,0], [9E9,9E9,…]];
MoveJ RelTool(bloc,0,0,-300), v2000, z30, tPince;
SetDO DO01_EE_PINCE01, 0;
MoveL bloc, v200, fine, tPince;
SetDO DO01_EE_PINCE01, 1;
Exemple 2 : Programmation de base en RAPID
Révision pour l’examen intra (suite)
z R
x R
y R
x o
y o
z o
base
Cellule UFrame
R
R
R
R
R
R
x o
y o
z o
base
x o
y o
z o
base
Cellule UFrame
p2
p1
p3
Exemple 2 : Programmation de base en RAPID (suite)
Révision pour l’examen intra (suite)
z R
x R
y R
x o
y o
z o
base
Cellule UFrame
R
R
R
R
R
R
x o
y o
z o
base
x o
y o
z o
base
Cellule UFrame
p2
p1
x5 y5
z5
yt
zt
xt
p3
Exemple 2 : Programmation de base en RAPID (suite)
Révision pour l’examen intra (suite)
z R
x R
y R
Cellule
UFrame
R
R
R
R
R
R
x5 y5
z5
Solution :
frame := DefFrame(p1,p3,p2);
p5.trans := frame.trans;
p5.rot := frame.rot;
decal := Distance(p1.trans,p3.trans);
p5 := RelTool(p5, decal/2, 0, 0 \Rx:=180);
x5
z5
y5
p3
p2
p1
Exemple 2 : Programmation de base en RAPID (suite)
Révision pour l’examen intra (suite)
! Trouver les erreurs et améliorations possibles
! Le robot est prêt à faire un retrait de la glissoire après avoir saisi un bloc
MoveJ RelTool(Glissoire,0,0, 300), v5000, fine, tPince_bloc;
! Ici il manque une approche vers P5, où le bloc va être disposé
MoveL P5, v100, z0, tPince_bloc;
SetDO DO01_EE_PINCE01, 1;
MoveL RelTool(P5,0,0,-300), v100, fine, tPince_bloc;
MoveL Retrait, v100, fine, tool0;
Rotation de 30° autour de l’axe x0
Rotation de −40° autour de l’axe y0
Translation de 100 mm le long du nouvel axe z
Rotation de 40° autour de l’axe y0
Révision pour l’examen intra (suite)
Exemple 3 : Transformations consécutives
x0
y0
z0
x4
y4
z4
30°
Examen intra
Question 1 de l’examen : correction négative
Toute documentation et toute calculatrice permises
Les étapes de calculs doivent apparaître dans les solutions
Cellulaires, tablettes, et ordinateurs interdits
Bonne préparation !