RobotStudio

Cinemática Directa con Labview, Comprobación con RobotStudio

Posted on Updated on

1-0

En el anterior post se abordo los conceptos clásicos que involucran la localización espacial del robot en un conjunto de sistemas de coordenadas. Por lo tanto en este post se pondrán en practicas esos conceptos teóricos valiendonos de la cinemática directa, que es la ciencia  que abarca el movimiento sin involucrar las fuerzas que lo originan.

Para esto se elaborara un análisis en los eslabones  vinculados en el movimiento del robot (Conjuto de eslabones = Estructura Robot)   haciendo los cálculos matematicos necesarios para cada uno de ellos. Esto nos permitira conocer el valor de las coordenadas de la herramienta de trabajo o el TCP (tool center pointer)  de nuestro Robot.toolpoint

Figura1: TCP o efector final

El algoritmo a utilizar para el análisis de los eslabones es el muy reconocido Algoritmo de Denavit-Hartemberg que nos permite conocer la ubicacion de los sistemas de referencia para cada una de las articulaciones. Mas informacion

DHParameter

Figura2: Eslabones y transformaciones de Denavit-Hartemberg  (O_((i-1))X_((i-1))Y_((i-1))Z_((i-1))  O_((i))X_((i))Y_((i))Z_((i)).)

Usaremos Labview valiendonos de su interfaz gráfica de programación y después realizaremos una comprobación de esos datos obtenidos en nuestro programa con el Software de programación y simulación de Robots de la Compañía ABB Robotics RobotStudio.

El primer robot a analizar es el IRB120 tomando en cuenta los valores del fabricante como longitud de los eslabones, rango de apertura de los ángulos de las articulaciones etc. estos datos aparecen en el Datasheet del IRB120.

irb12

Figura3: Datos característicos del IRB120

Al hacer el respectivo análisis de las transformaciones en cada par de eslabones nos queda la siguiente Matriz con los datos característicos de cada eslabón.

denavit120

Figura4: Matriz de Valores de cada eslabón del IRB120

Ahora que se poseen los datos de cada eslabón usaremos las matrices de transformaciones homogeneas entre cada sistema para encontrar el valor en coordenadas cartesianas del Efector final (TCP), debido a que son 6 eslabones tendremos 6 Matrices que definiran la orientacion de cada una de ellas, consecutivamente aplicaremos una multiplicación de cada matriz característica y de esta forma tendremos el valor de X, Y y Z del TCP.

Cabe destacar que los calculos paso a paso de estas matrices no seran mostrados aca ya que nos estamos valiendo del toolkit de Labview llamado MathScrip (Desarrollado en conjunto con Matlab y National Instruments)  Dejando de un lado el calculo, estaremos listos para obtener el valor de X, Y y Z del efector final si conocemos el angulo de cada articulacion.

 A continuacion se muestra el codigo del Mathscrip del programa del VI de Labview

%%%% %%%%%%%%%%%%%PASANDO ANGULO A RADIANES %%%%%%%%%%%%%%%%%%%%%%
th1= (pi*th1x)/180;
th2y=(pi*th2x)/180;
th3= (pi*th3x)/180;
th4= (pi*th4x)/180;
th5= (pi*th5x)/180;
th6y=(pi*th6x)/180;

%%%%%% %%%%MATRIZ DE DENAVIT- HARTEMBERG MODEL IRB 120 %%%%%%%%%%%%%%%%%%%

a1 = 0; d1 = 290; alpha1 = -pi/2; % th1r = 0;
a2 = 270; d2 = 0; alpha2 = 0; th2 = th2y -pi/2;
a3 = 70; d3 = 0; alpha3 = -pi/2; %th3r = pi;
a4 = 0; d4 = 302; alpha4 = pi/2; % th4r = 0;
a5 = 0; d5 = 0; alpha5 = -pi/2; %th5r = 0;
a6 = 0; d6 = 72; alpha6 = 0; th6 = th6y +pi;

%%%% %%%%%%%%%%%%%PASANDO ANGULO A RADIANES IRB140 %%%%%%%%%%%%%%%%%%%%%%
%th1= (pi*th1x)/180;
%th2y=(pi*th2x)/180;
%th3y= (pi*th3x)/180;
%th4= (pi*th4x)/180;
%th5= (pi*th5x)/180;
%th6y=(pi*th6x)/180;

%%%%%% %%%%MATRIZ DE DENAVIT- HARTEMBERG MODEL IRB 140 %%%%%%%%%%%%%%%%%%%

%a1 = 70; d1 = 352; alpha1 = -pi/2; % th1 = th1y + pi/2;
%a2 = 360; d2 = 0; alpha2 = 0; th2 = th2y -pi/2;
%a3 = 0; d3 = 0; alpha3 = pi/2; th3 = th3y +pi;
%a4 = 0; d4 = 380; alpha4 = -pi/2; %th4 = th4y +pi ;
%a5 = 0; d5 = 0; alpha5 = pi/2; % th5= th5y +pi/2 ;
%a6 = 0; d6 = 65; alpha6 = pi/2; th6 = th6y – pi;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%%%%% MATRICES DE TRANSFORMACION HOMEGENEA %%%%%%%%%%%%%%%%%%%%%%%%

A01 = [cos(th1) -cos(alpha1)*sin(th1) sin(alpha1)*sin(th1) a1*cos(th1);
sin(th1) cos(alpha1)*cos(th1) -sin(alpha1)*cos(th1) a1*sin(th1);
0 sin(alpha1) cos(alpha1) d1;
0 0 0 1];

A12 = [cos(th2) -cos(alpha2)*sin(th2) sin(alpha2)*sin(th2) a2*cos(th2);
sin(th2) cos(alpha2)*cos(th2) -sin(alpha2)*cos(th2) a2*sin(th2);
0 sin(alpha2) cos(alpha2) d2;
0 0 0 1];

A23 = [cos(th3) -cos(alpha3)*sin(th3) sin(alpha3)*sin(th3) a3*cos(th3);
sin(th3) cos(alpha3)*cos(th3) -sin(alpha3)*cos(th3) a3*sin(th3);
0 sin(alpha3) cos(alpha3) d3;
0 0 0 1];

A34 = [cos(th4) -cos(alpha4)*sin(th4) sin(alpha4)*sin(th4) a4*cos(th4);
sin(th4) cos(alpha4)*cos(th4) -sin(alpha4)*cos(th4) a4*sin(th4);
0 sin(alpha4) cos(alpha4) d4;
0 0 0 1];

A45 = [cos(th5) -cos(alpha5)*sin(th5) sin(alpha5)*sin(th5) a5*cos(th5);
sin(th5) cos(alpha5)*cos(th5) -sin(alpha5)*cos(th5) a5*sin(th5);
0 sin(alpha5) cos(alpha5) d5;
0 0 0 1];

A56 = [cos(th6) -cos(alpha6)*sin(th6) sin(alpha6)*sin(th6) a6*cos(th6);
sin(th6) cos(alpha6)*cos(th6) -sin(alpha6)*cos(th6) a6*sin(th6);
0 sin(alpha6) cos(alpha6) d6;
0 0 0 1];

A06 = A01*A12*A23*A34*A45*A56;

x = A06(1,4)
y = A06(2,4)
z = A06(3,4)

El código posee dos matrices características una para el IRB120 y otro para el IRB140 solo basta con descomentar el código característico del IRB140 y comentar el de IR120 para obtener los datos.

irb2

Figura5: Matriz de Valores de cada eslabón del IRB140

Diagrama de bloques de Labview

labviewsch

Figura6: Diagrama de bloques en labview junto con el script.

Panel Frontal Labview

panelfrontal

Figura7: Interfaz de Labview Acá se puede ajustar el Angulo de cada eslabón y se mostraran el valor de XYZ

A continuación se muestran los datos obtenidos y comparados con RobotStudio.Para una posicion de 0º en todos los 6 eslabones el valor de X = 374 Y=0 Z=630 esta es la posiciones inicial del robot donde estos datos siempre estan referenciados al vector universal U

Podemos ver la posicion inicial del robot en RobotStudio y los valores de XYZ barrita de valores TCP, que coinciden con el VI de Labview.

abb

Figura8: Interfaz de Robot Studio parte izquierda muesta los datos de ajuste en grados e informacion de la posicion del TCP (XYZ)

Demostración (1) IRB120 (se mostraran interfaz de Labview y despues de RobotStudio)

lav1abb1

Figura9: Demostracion (1) IRB120 

Demostración (2) IRB140 (Se ha descomentado y comentado respectivamente en El programa (: ) Mostrando los mismos angulos que el IRB120 y se muestra la diferencia de la posicion del TCP ya que los eslabones no tienen la misma configuración o longitud

lav2abb2

Figura10: Demostracion (2) IRB140 

Podemos ver que los valores del angulo y coordenadas XYZ del TCP para el IRB120 y el IRB140 para ambas interfaces  coinciden.

De esta forma concluimos con la practica.

Descarga