Diseño y Fabricación Digital de Mecanismos
VI Ciclo
Laboratorio N°2
“Coordenadas cartesianas, polares y cilíndricas”
Informe
Integrantes:
Apellidos y Nombres Sección Grupo
Vizcarra Armaccancce, Alex C16 B
Lino Maravi, Emmanuel C16 B
Profesor:
Chavez Luna, Miguel Angel
Fecha de realización:6/03/19
Fecha de entrega: 13/03/19
Lima-Perú
2019-I
Introducción
Robot SCARA
El primer robot SCARA fue creado como un prototipo revolucionario en 1978, en la Universidad
de Japón. La SCARA de 4 ejes fue diseñado como ningún otro brazo robótico en ese tiempo.
Estos robots pueden variar en forma y tamaño, pero todos los robots SCARA consisten en 4 ejes.
Estos robots sobresalen en la labor PICK and Place con su habilidad única para tomar
componentes industriales de un lugar y colocarlos en otro con alta precisión, velocidad y un
movimiento suave.
ROBOT RV-2AJ
PROCEDIMIENTO
Calculo de las coordenadas en 4 ejes
Modelamiento matemático en MATLAB
clc
clear all
close all
clc
% ingreso de longitudes
L0 = 300;
L1 = 250;
L2 = 160;
L3 = 195;
a = L0 + L1 + L2 + L3;
par.L0 = L0; par.L1 = L1 ; par.L2 = L2 ; par.L3 = L3;
%entrada de valores
entrada = inputdlg({'j1:','j2:','j3:','j4:'}); j1 =
str2num(entrada{1});
j2 = str2num(entrada{2}); j2 = j2 + 90;
j3 = str2num(entrada{3});
j4 = str2num(entrada{4});
j5 = 0;
SUBRUTINA
% Posicion
[x,y,z] = Forward_Arm(j1,j2,j3,j4,j5,par);
msgbox(sprintf('Posicion en coordenadas cartaesiandas: \n x =
%.2f\n y = %.2f\n z = %.2f\n',x,y,z));
% plot
figure; grid on; hold on;
plot3([0,0],[0,0],[0,L0],'-b','LineWidth',2);
x1 = -L1*cosd(j2)*cosd(j1);
y1= -L1*cosd(j2)*sind(j1);
z1 = L0+L2*sind(j2);
plot3([0,x1],[0,y1],[L0,z1],'-k','LineWidth',2);
x2 = -(L1*cosd(j2)+L2*cosd(j3+j2))*cosd(j1);
y2 = -(L1*cosd(j2)+L2*cosd(j3+j2))*sind(j1);
z2 = L0+L1*sind(j2)+L2*sind(j3+j2);
plot3([x1,x2],[y1,y2],[z1,z2],'-g','LineWidth',2);
plot3([x2,x],[y2,y],[z2,z],'-r','LineWidth',2);
axis([-1.5*a 1.5*a -1.5*a 1.5*a -1.5*a 1.5*a]);
axis square
Subrutina ROBOT ARM
function [x,y,z]= Forward_Arm(j1,j2,j3,j4,j5,par)
% th1: angulo de brazo 1
% th2: angulo de brazo 2
% th4: angulo de brazo 4
% d0: desplazamiento base
% d3: desplazamiento de brazo 3
% d4: desplazamiento de brazo 4
% a1: longitud de brazo 1
% a2: longitud de brazo 2
% Tres angulos
L0 = par.L0;
L1 = par.L1;
L2 = par.L2;
L3 = par.L3;
x0=0;
y0=0;
z0=L0;
% Posicion [x y z] %% MODIFICAR LAS CORDENADAS CARTECIANAS
x =x0-(L1*cosd(j2)+L2*cosd(j2+j3)+L3*cosd(j2+j3+j4))*cosd(j1);
y =y0-(L1*cosd(j2)+L2*cosd(j2+j3)+L3*cosd(j2+j3+j4))*sind(j1);
z =z0+(L1*sind(j2)+L2*sind(j2+j3)+L3*sind(j2+j3+j4));
Ejercicio 2:
Modelo matemático en MATLAB
clc
clear all
close all
a1=60;
a2=40;
a0=45;
a4=10;
a=a1+a2;
% Entrada
entrada =
inputdlg({'theta1:','theta2:','theta3:','desplazamiento:'});
theta(1) =str2num(entrada{1});
theta(2) =str2num(entrada{2});
theta(3) =str2num(entrada{3});
d3=str2num(entrada{4});
%posicion
[R,x,y,z] = Forward_SCARA_Cart(theta,d0,d3,d4,a1,a2);
msgbox(sprintf('Posicion en coordenadas cartesianas:\n
x=%.2f\n y =%.2f\n z=%.2f\n',x,y,z));
%plot
figure;grid on; hold on;
plot3 ([0,0],[0,0],[0,d0], '-b', 'LineWidth' ,2); %base
x1=a1*cosd(theta(1));
y1=al*sind(theta(1));
z1=d0;
plot3 ([0,x1],[0,y1],[d0,z1], '-k', 'LineWidth' ,2)% brazo 1
x2=a1*cosd(theta(1))+a2*cosd(theta(1)+theta(2));
y2=al*sind(theta(1))+a2*sind(theta(1)+theta(2));
z2=d0;
plot3([x1,x2],[y1,y2],[z1,z2], '-g', 'LineWidth' ,2);% brazo
2
z3 = (d0-d3-d4);
plot3([x2,x2],[y2,y2],[z2,z3],'-r', 'LineWidth' ,2);
axis([-1.5*a 1.5*a -1.5*a -1.5*a 1.5*a])
axis square
Localizacion del robot usando coordenadas cartesianas
function[R,x,y,z]=Forward_SCARA_Cart(theta,d0,d3,d4,a1,a2)
% th1: angulo de brazo 1
% th2: angulo de brazo 2
% th4: angulo de brazo 4
% d0: desplazamiento base
% d3: desplazamiento de brazo 3
% d4: desplazamiento de brazo 4
% a1: longitud de brazo 1
% a2: longitud de brazo 2
%Tres Angulos
th1=theta(1);
th2=theta(2);
th4=theta(3);
%Posicion [x y z]
x = ((a1*cosd(th1))+(a2*cosd(th1+th2)));
y = ((a1*sind(th1))+(a2*sind(th1+th2)));
z = (d0-d3-d4);
%Rotacion total
alpha=th1+th2-th4;
%Matriz de rotacion
R=[cosd(alpha),sind(alpha),0;sind(alpha),-cosd(alpha),0;0,0,-1];
%
EN LABVIEW
CODIGO FUENTE
X0=0;
Y0=L1;
X1=L2*cos(A*0.0017);
Y1=L1+L2*sin(A*0.0017);
X2=L2*cos(A*0.017)+L3*cos((A+B)*0.017);
Y2=L1+L2*sin(A*0.017)+L3*sin((A+B)*0.017);
X3=L2*cos(A*0.017)+L3*cos((A+B)*0.017)+L4*cos((A+B+C)*0.017);
Y3=L1+L2*sin(A*0.017)+L3*sin((A+B)*0.017)+L4*sin((A+B+C)*0.017);
ZZ1=Y1+L1;
ZZ2=Y2+L1;
ZZ3=Y3+L1;
XX1=X1*cos(C*0.017);
XX2=X2*cos(C*0.017);
XX3=X3*cos(C*0.017);
YY1=X1*sin(C*0.017);
YY2=X2*sin(C*0.017);
YY3=X3*sin(C*0.017);
OBSERVCIONES
• Se debe tener conocimientos de geometría básica para el desarrollo de las ecuaciones
que definirán los movimientos del robot.
• El comando str2num convierte caracteres que ingresamos como una matriz numérica.
• El comando msgbox crea un cuadro de diálogo de mensaje.
• El comando inputdlg crea un cuadro en la que podemos ingresar valores de entrada,
como parámetros entre otros y las guarda en una matriz que posteriormente
direccionamos a variables x.
CONCLUSIONES
• Se concluyó que para hacer la simulación de las articulaciones o movimiento que
realiza un robot, más el seguimiento de estos en un plano, se debe tener
conocimientos claros de geometría básica, ya que lo que se busca es controlar
ángulos y desplazamientos lineales conociendo la posición en la que se encuentra
el gripper del robot, es decir el último punto de este. Así mismo, se comprendió el
funcionamiento de los comandos inputdlg, str2num, msgbox para desarrollar
nuestro programa en el software Matlab y se logró modelar y simular los robots RV-
2AJ y SCARA en dicho programa.