Documentos de Académico
Documentos de Profesional
Documentos de Cultura
oacs_198@hotmail.com
irwing_1988_@hotmail.com
jonathan260605@hotmail.com
1
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
DIRECTA
Valor de las Coordenadas articulares Posición y orientación del efector final del robot
(q1, q2,…,qn) INVERSA (x,y,z,α,β,ϒ)
2
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
3
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Los pasos anteriores permitirán hallar las matrices homogéneas que son
necesarias para hallar las relaciones matemáticas entre los sistemas
coordenados. Por tanto un sistema de coordenadas (Si) definido según el
4
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
θi di αi ai
1 q1 l1 0 0
2 0 q2 -a2 -pi/2
3 0 q3 0 0
4 q4 l4 0 0
Figura N°7.- Denavit – Hartenberg
Estos parámetros D-H nos servirán para hallar las matrices de transformaciones
homogéneas “para cada eslabón respecto al frame móvil anterior”, definidas
según la siguiente matriz:
( ) ( ) ( ) ( )
5
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
a) Antes de comenzar nuestro programa debemos entonces crear una función que
realice el algoritmo D-H y que luego será utilizada en nuestro programa
principal.
Esta función debe contener los parámetros: θi (giro con respecto al eje ), di
(traslación con respecto al eje ), αi (traslación con respecto al eje ), ai
(rotación con respecto al eje ), y su resultado debe ser devuelto en una matriz.
% Función Denavit-Hartenberg
function dh=denavit(a,alpha,d,theta)
b) En primer lugar declararemos los parámetros físicos del robot, las coordenadas
articulares y parámetros Denavit-Hartenberg
7
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
8
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
d) Una vez declaradas las matrices que describen la posición y orientación de los
frames de los eslabones del robot, pasaremos a postmultiplicar cada notación
para obtener el frame actual respecto del anterior (tener en cuenta que el anterior
esta en base al frame solidario). Luego en el caso del efector final se tendrá su
posición y orientación respecto al frame solidario OXYZ.
e) Luego extraeremos los datos de posición de cada eslabón para el ploteo del
robot.
%-----------------------------ploteos------------------------------------
figure
plot3([P0(1) P1(1)],[P0(2) P1(2)],[P0(3) P1(3)],'c','LineWidth',4)
hold
plot3([P1(1) P2(1)],[P1(2) P2(2)],[P1(3) P2(3)],'r','LineWidth',4)
plot3([P2(1) P3(1)],[P2(2) P3(2)],[P2(3) P3(3)],'g','LineWidth',4)
plot3([P3(1) P4(1)],[P3(2) P4(2)],[P3(3) P4(3)],'m','Linewidth',4)
plot3([P4(1) P5(1)],[P4(2) P5(2)],[P4(3) P5(3)],'b','Linewidth',4)
plot3([P5(1) P6(1)],[P5(2) P6(2)],[P5(3) P6(3)],'b','Linewidth',4)
plot3([P4(1) P7(1)],[P4(2) P7(2)],[P4(3) P7(3)],'b','Linewidth',4)
plot3([P7(1) P8(1)],[P7(2) P8(2)],[P7(3) P8(3)],'b','Linewidth',4)
hold
frame(S0,'b',0.05),hold,frame(S1,'b',0.05),hold,frame(S2,'b',0.05)
9
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
hold,frame(S3,'b',0.05),hold,frame(S4,'b',0.05)
axis([-0.5 0.5 -0.5 0.5 0 0.5])
rotate3d,grid,view(149,54)
%----------------------------resultados----------------------------------
disp('-----------------------------------------------------------------')
disp('------------------MATRIZ DE TH (ESLABON 4)-----------------------')
disp(S4)
disp('-----------------------------------------------------------------')
disp('------------------MATRIZ DE TH (ESLABON 3)-----------------------')
disp(S3)
disp('-----------------------------------------------------------------')
disp('-------------------MATRIZ DE TH (ESLABON 2)----------------------')
disp(S2)
disp('-----------------------------------------------------------------')
disp('-------------------MATRIZ DE TH (ESLABON 1)----------------------')
disp(S1)
disp('-----------------------------------------------------------------')
disp('---------------------MATRIZ DE TH (Fijo)-------------------------')
disp(S0)
disp('-----------------------------------------------------------------')
10
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
11
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
0.5
0.45
0.4
0.35 Z
X
0.3 Y
Z X Z
YZ
Eje Z
0.25 Y
X
0.2 X Y
0.15
0.1
Z
0.05
-0.5
0 X Y -0.4
-0.5 -0.3
-0.2
-0.1
0
0 0.1
0.2
0.3
0.4
0.5 0.5 Eje X
Figura N°12.- Simulación del Robot RPPR de 4 grados de libertad
Eje Y
Así, nuestro robot posee un revoluta que no ha sido girada con respecto a su eje z
(color celeste), un primer prisma cuya longitud inicial es de 0.1 unidades (color
rojo), un segundo prisma cuya longitud inicial es de 0.2 unidades (color verde) y
una revoluta (color rosado) unida a un efector (color azul) que han sido rotadas
45° (pi/4).
12
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Primero insertaremos la tabla D-H para este robot siguiendo el formato del
toolbox Corke para cada eslabón o “link”, además de crear el objeto con titulo y
con parámetros D-H ya declarados:
Luego declararemos valores de color para las líneas, sombra y ajustes de escala
para el ploteo:
T=fkine(R4,q);
drivebot(R4,q);
disp('--------------------------------------------')
disp('Matriz de Transformacion Homogenea FKINE')
disp(T)
disp('--------------------------------------------')
view(149,54)
13
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
0.5
0
Z
Robot RPPR
-0.5 y
x z
-1
-0.5
-0.5
0
Y 0.5 0.5 X
Figura N°13.- Simulación del robot RPPR con el toolbox de Corke – Matlab
a) Planteamos una vista superior del robot. Para estos fines rotamos la primera
revoluta 45° y la cuarta revoluta 60°. Los primas siguen teniendo las mismas
longitudes:
14
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Figura N°14.- Análisis Geométrico del Robot 4DOF – RPPR (Plano X0, Y0)
Primera Articulación:
√( ) ( )
√( ) ( )
( ) ( )
( ) ( )
( ) ( )
15
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Segunda Articulación:
Tercera Articulación:
Cuarta Articulación:
Para llevar a cabo este análisis tomamos otra vista del robot. La vista que
tendremos en la figura 14 será la del efector y la comparación entre los frames 3 y
4. En este caso aparecerá la última juntura q4, cuyo valor lo encontraremos
vectorialmente:
Figura N°15.- Análisis Geométrico del Robot 4DOF – RPPR (Plano X3, Y3)
⃗ ⃗⃗ | || |
16
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ | || | ( ) ( )
⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ | || | ( ) ( )
[ ]
⃗⃗⃗⃗⃗ ( )
⃗⃗⃗⃗⃗ ( )
⃗⃗⃗⃗⃗ ( )
⃗⃗⃗⃗⃗ ( )
Para finalmente:
( ) ( ) ( )
( ) ( ) ( )
( ( ) ( ))
17
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
function qi = cinversa1(T,q1,q2,q3,q4,l1,l4,a2)
%------------------------------------------------------------------------
%DEVUELVE EL VERCTOR DE CORRDENADAS ARTICULARES QUE CORRESPONDE
%------------------------------------------------------------------------
%Posición del Efector Final
%------------------------------------------------------------------------
p=T(1:3,4); %Px = p(1), Py = p(2), Pz = p(3)
%------------------------------------------------------------------------
%Parametros DH
%------------------------------------------------------------------------
teta= [q1 0 0 q4];
d=[l1 q2 q3 l4];
a=[0 -a2 0 0];
alpha=[0 -pi/2 0 0];
%------------------------------------------------------------------------
% a alpha d theta
%------------------------------------------------------------------------
PD=[ 0 0 l1 q1
-a2 -pi/2 q2 0
0 0 q3 0
0 0 l4 q4];
%------------------------------------------------------------------------
%Articulación 1
R=sqrt(p(1)^2+p(2)^2);
r=sqrt(R^2-a(2)^2);
sphi=-p(1)/R;
cphi=p(2)/R;
phi=atan2(sphi,cphi);
sbeta=-a(2)/R;
cbeta=r/R;
beta=atan2(sbeta,cbeta);
q1i=phi-beta;
%------------------------------------------------------------------------
%Articulacion 2
q2i=p(3)-d(1); %Pz-L1
%------------------------------------------------------------------------
%Articulacion 3
q3i=r-d(4); %r-L4
%------------------------------------------------------------------------
%Articulacion 4
A01 = denavit(PD(1,1),PD(1,2),PD(1,3),q1i);
A12 = denavit(PD(2,1),PD(2,2),PD(2,3),PD(2,4));
A23 = denavit(PD(3,1),PD(3,2),q2i,PD(3,4));
A34 = denavit(PD(4,1),PD(4,2),q3i,PD(4,4));
A03=A01*A12*A23;
y3 =A03(1:3,2);
sq4=dot(T(1:3,1),y3); %Definimos el producto escalar x4.y3
cq4=dot(T(1:3,2),y3); %Definimos el producto escalar y4.y3
q4i=atan2(sq4,cq4);
%------------------------------------------------------------------------
%Declaramos la matriz final qi
qi=[q1i*180/pi q2i q3i q4i*180/pi];
18
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
%------------------------------------------------------------------------
%Coordenadas insertadas al inicio
q = [(q1*180/pi) q2 q3 (q4*180/pi)];
disp('--------------Coordenadas Iniciales---------------')
disp(q);
%------------------------------------------------------------------------
%Cinematica Inversa Robot RPR
qi = cinversa1(S4,q1,q2,q3,q4,l1,l4,a2);
disp('--------------Coordenadas Finales-----------------')
disp(qi);
%------------------------------------------------------------------------
0.4
0.3
Eje Z
0.2 Z
XY
XY Z Y Z
0.1 Z X
0 X Y
-0.5 Z
X Y
-0.5
0
19
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
SubVI D-H.
Tratamiento de parámetros D-H y generación de matrices TH para los
eslabones.
Extracción de coordenadas para el ploteo.
Cinemática inversa (Para comprobación).
Cinemática inversa (Para insertar los datos de la posición del efector final).
20
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
21
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Con estas pautas generales se presentará los diagramas de bloques para el código
en general para cada caso expuesto:
Caso 0:
Caso 1:
22
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Matriz D-H
Coeficientes de
la matriz D-H
Usaremos esta notación para asignar las matrices D-H respectivas para cada
eslabón.
23
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
En este SubVi se toman en cuenta las siguientes las entradas: parámetros D-H
fijos, articulaciones insertadas (en modo Teach Pendant o Modo coordenada).
Estos valores servirán para obtener en la salida del SubVI las matrices de TH de
cada eslabón móvil (S1, S2, S3, S4) respecto al mundial, además de los
eslabones fijos para el gripper (S5, S6, S7 y S8) y el eslabón solidario que refiere
al frame solidario “S0”. La tabla de parámetros D-H general también es
construida y mostrada en la salida.
a) La primera contiene un código que procesa los números escalares L1, L4, a2 y
las articulaciones q1, q2 , q3, q4 para ser ingresados a los arreglos d, theta, a y
alpha que representan a los parámetros D-H del robot, usando la herramienta
“Replace Array Subset”, la cual nos permite reemplazar el valor en una posición
de un arreglo o índice por otro valor, de esta forma construiré la tabla D-H
general con un “Reshape Array” para convertir el arreglo fila en una columna de
4 elementos luego a un “Build Array” para apilar todas las columnas y generar la
tabla solo aplicando transpuesta a todo el arreglo.
A su vez se observa que los valores completos de la tabla general D-H son
extraídos uno a uno por cada fila (es decir por eslabón) para ingresar a la
siguiente parte de la estructura.
24
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Tabla D-H
Matrices de TH por
eslabón móvil
b) Aquí se procesarán estos valores por eslabón con el propósito de encontrar las
matrices de D-H (A01, A12, A23 y A34) de cada uno utilizando el SubVI anterior
de D-H. Luego pasamos a calcular las matrices de transformación homogénea
para cada eslabón, pero estas matrices describirán su posición y orientación
respecto al frame mundial (S1, S2, S3, S4), para ello hacemos producto matricial
siguiendo el algoritmo ya explicado. Finalmente obtendremos en el último
producto la matriz del efector final “S4”, la cual es importante para el código,
pues con esto hemos logrado pasar el algoritmo aprendido en clase y comprobado
antes en Matlab, a Labview con éxito.
c) Como parte extra hemos hecho un VI para el gripper que contiene el cálculo de
los D-H extras que se han agregado para su generación, ver figura 23. Se observa
que la multiplicación de las matrices es estratégica, esto debido a que necesito
que el gripper refleje el movimiento de la última articulación q4, por tanto las
matrices S5, S6, S7 y S8 deben estar respecto al frame del efector final S4.
25
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Con estos resultados podemos pasar a plotear la cinemática directa del robot
modelado 4DOF RPPR con ayuda del algoritmo D-H desarrollado hasta aquí.
26
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
b) En la segunda parte del Flat procesaremos los datos de los Pi(x,y,z) para
graficarlos, para ello apilaremos los datos de las coordenadas “x” en un arreglo
1D llamado Px, lo mismo para Py y Pz. Tener en cuenta que para el gripper se
han agrupado los datos de forma tal que se pueda visualizar sin problemas los
cambios en el grafico 3D final, esto debido a que le ploteador CURVE 3D de
Labview une los puntos en secuencia y no independientemente, por lo que se
tendrá que repetir un punto en el gripper (P5) para obtener los resultados que se
pretenden. No existe alteración en los cálculos pues solo es con fines gráficos.
27
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
Este SubVI fue creado en base al código de la función cinversa1 del código Matlab
expuesto y explicado anteriormente. El programa recibe los parámetros fijos D-H
junto con la matriz de transformación homogénea del efector final “S4” como
entradas, y las salidas serán las cuatro articulaciones q1, q2, q3 y q4 que serán
comprobadas con referencia a la cinemática directa. Cabe resaltar que esta SubVi
se encuentra en el modo de operación “Teach Pendant” del código principal.
a) En el primer sector se extraen los datos de la posición del efector final además
de los vectores de orientación en “x4” y “y4” que nos darán información para el
cálculo de la articulación q4 posteriormente en este código.
28
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
a) Este código recibe un punto deseado P(x,y,z) para el efector final del robot.
29
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
x4
A04
y4
P(x,y,z)
IV.- Conclusiones
30
2012-B ROBÓTICA – CINEMÁTICA DEL ROBOT 4DOF - RPPR
7. Una vez más se comprobó la efectividad del software Labview para comprender
y comprobar aspectos de los algoritmos matemáticos para esta experiencia.
31