Sei sulla pagina 1di 8

CINEMTICA INVERSA DEL ROBOT PUMA 560

USANDO LA LIBRERA A.R.T.E. EN EL


SOFTWARE MATLAB
I.- Descripcin del Robot PUMA 560:
PUMA (Programmable Universal Machine for Assembly, or Programmable Universal
Manipulation Arm) es un brazo robot industrial desarrollado por Victor Scheinman en la
empresa pionera en robtica Unimation. Inicialmente desarrollado para General Motors,
el brazo robot PUMA naci de los diseos iniciales inventados por Scheinman mientras
se encontraba en el MIT y en la Stanford University.
Unimation produjo PUMAs durante algunos aos hasta que fue absorbida por
Westinghouse (ca. 1980), y posteriormente por la empresa suiza Stubli (1988). Nokia
Robotics manufactur cerca 1500 brazos robots PUMA durante los aos 1980, siendo el
PUMA-650 el modelo ms popular entre los clientes. Nokia vendi su divisin de
robtica en 1990.
En 2002, La organizacin General Motors Controls, Robotics and Welding (CRW) don
el prototipo original del brazo robot PUMA al Museo Nacional de Historia Americana,
reconocindose as su importancia en el desarrollo de la robtica.

Las dimensiones de un robot PUMA 560 es como sigue:

El alcance de un robot PUMA 560 describe la siguiente geometra:

II.- Simulacin:
1. Cargamos el software MATLAB y entramos en la carpeta arte3.2.3 que es la que
contiene todos los archivos necesarios para nuestra aplicacin.
2. Inicializamos la librera escribiendo el comando init_lib.
3. Invocamos el modelo del robot Puma 560 con la orden:
robot = load_robot('UNIMATE','puma560').
4. Para apreciar mejor el robot ejecutamos el comando:
robot.graphical.draw_axes=0.
5. Con el comando drawrobot3d(robot,[0 0 0 0 0 0]) redibujamos el robot sin los
ejes y en la posicin Q=[0 0 0 0 0 0]

6. Usamos la herramienta Rotate 3D

para tener una mejor vista del robot.

7. Declaramos el vector del efector para el robot Puma 560 con el siguiente
comando:
TD_tool0=[1,[[0,0,0],[1,0,0,0]],[0,[0,0,0],[1,0,0,0],0,0,0]]
8. A continuacin procedemos a definir los puntos a los que se va a mover el
efector final, estos puntos han sido probados con la interfaz teach de la librera,
para verificar que son puntos que estn dentro del rango de trabajo del robot
Puma 560.
a) Definimos el punto inicial del efector final:
RT_tp0=[[0.4521, -0.1501, 0.4718],[1.0000, 0.0000, 0.0000, 0.0000], [-1, 0, 0,
0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

b) Definimos dos puntos de destino:


RT_tp1=[[0.5000, 0.2000, -0.4000],[1.0000, 0.0000, 0.0000, 0.0000], [0, 0, -1,
0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

RT_tp2=[[-0.1000, 0.5000, -0.4000],[1.0000, -0.0000, 0.0000, -0.0000], [1, 0, -2,


0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

9. Para visualizar el movimiento del robot de un punto a otro, utilizamos el


comando MoveL.

Con la siguiente orden el efector final del robot se desplaza al punto RT_tp1:
MoveL(RT_tp1, 'vmax' , 'fine' , TD_tool0, 'wobj0');

Y luego al punto RT_tp2:


MoveL(RT_tp2, 'vmax' , 'fine' , TD_tool0, 'wobj0');

El tercer movimiento lo realiza regresando a su posicin inicial:


MoveL(RT_tp0, 'vmax' , 'fine' , TD_tool0, 'wobj0');

10. A continuacin presentamos el script completo en MATLAB:


clear all; clc;
init_lib % Cargamos la librera A.R.T.E.
robot = load_robot('UNIMATE','puma560'); % Inicializamos el robot puma 560
robot.graphical.draw_axes=0; % Eliminamos los ejes
drawrobot3d(robot,[0 0 0 0 0 0]) % Dibujamos el robot 3D
TD_tool0=[1 [[0 0 0] [1,0,0,0]] [0,[0,0,0] [1,0,0,0] 0 0 0] ]; % Declaramos tool0
definicin del efector del robot
% Matriz que describe la posicin inicial del efector con sus valores de variables de
articulacin correspondientes.
RT_tp0=[[0.4521, -0.1501, 0.4718],[1.0000, 0.0000, 0.0000, 0.0000], [-1, 0, 0, 0],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
% Matriz que describe mi primer punto de destino con sus valores de variables de
articulacin.
RT_tp1=[[0.5000, 0.2000, -0.4000],[1.0000, 0.0000, 0.0000, 0.0000], [0, 0, -1, 0],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
% Matriz que describe mi segundo punto de destino con sus valores de variables de
articulacin.
RT_tp2=[[-0.1000, 0.5000, -0.4000],[1.0000, -0.0000, 0.0000, -0.0000], [1, 0, -2, 0],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

% Describe una trayectoria de lnea recta entre punto y punto.


MoveL(RT_tp1, 'vmax' , 'fine' , TD_tool0, 'wobj0');
MoveL(RT_tp2, 'vmax' , 'fine' , TD_tool0, 'wobj0');
% Regresa a la posicin inicial a travs de una lnea recta.
MoveL(RT_tp0, 'vmax' , 'fine' , TD_tool0, 'wobj0');

Potrebbero piacerti anche