You are on page 1of 4

UNAM F.I C.U, M.I. Noé Alfredo Martínez Sánchez.

ANÁLISIS CINEMÁTICO ROBOT 2 GDL
Objetivo: Simular la cinemática inversa y directa de un robot plano de 2GDL en Matlab
1

Representación de la posición

Para el siguiente análisis se limitara al caso de dos
dimensiones. La posición del extremo del brazo se
puede representar de varias formas. Una es utilizar
los ángulos de articulación

1 y  2 esto se conoce

como representación en el espacio de juntas y se
puede definir como:

q  (1,2 )
Otra forma de definir la posición del brazo es en
espacio cartesiano, este procedimiento trae consigo
la utilización de un sistema de coordenadas
cartesianas que es externo al robot. El origen del
sistema de ejes cartesianos se localiza con
frecuencia en la base del robot. La posición del
extremo del robot se definirá como:

p  ( x, y)
2

Figura 1. Robot 2gdl.
Escribiendo las ecuaciones (2.3) y (2.4) en una función
en Matlab:
%% Calculo de la cinemática directa Robot
2GDL

Cinemática directa.
function p=c_dir(L1,L2,th1,th2)

Se puede determinar la posición del extremo del
brazo en el espacio cartesiano definiendo un vector
para el enlace 1 y otro para el enlace 2.

r1  [ L1* Cos(1 ), L1* Sen(1 )]
(2.1)

r 2  [ L2* Cos(1  2 ), L2* Sen(1  2 )]
(2.2)
La suma vectorial de r1 y r2 proporciona las
coordenadas px y py del extremo del brazo en el
espacio cartesiano.

px  L1* Cos(1 )  L2* Cos(1  2 )
(2.3)

py  L1* Sen(1 )  L2* Sen(1  2 )
(2.4)

px=L1*cosd(th1)+L2*cosd(th1+th2);
py=L1*sind(th1)+L2*sind(th1+th2);
p=[px,py];

donde p es la salida x y y.
Para ejecutar la función escribimos en el comand
window de Matlab:
>>c_dir(1,1,0,0)
ans = 2

0

Ahora podemos utilizar esta función y dibujar una
trayectoria trazada por el robot.
%% DIBUJAR LA TRAYECTORIA TRAZADA POR EL ROBOT
clear all
%limpiar todo
th2=50;
%inicializamos th2 en 50 grados
c=1; %inicializamos variable c en 1 (contador)
%% CINEMATICA DIRECTA
for th1=0:1:90
%el angulo th1 varia de 0 a
90 grados
pause(0.01);
p=c_dir(1,1,th1,th2);

tray. %almacena el punto y c=c+1. p=c_dir(1.th1. en 1 %aumenta la variable plot(trax. donde robot es la función que dibuja el robot en pantalla. 4 Cinemática Inversa Normalmente las trayectorias se expresan en coordenadas cartesianas que deben ser traducidas a variables de articulación. y=[0 L1*sind(th1) p(2)]. %Dibuja robot hold on %retiene la imagen del robot trax(c)=p(1). clf %limpia la pantalla robot(1. Para desarrollar esta función. 0) y (Cos1 . %inicializamos variable c en 1 (contador) %% CINEMATICA DIRECTA for th1=0:1:90 %el angulo th1 varia de 0 a 90 grados pause(0.U. p y ) La función no retorna ningún valor (solo traza el robot). pero no el robot.1. ylabel('y'). 3 Grafica de la configuración espacial del robot En el ejemplo anterior se ha dibujado exclusivamente la trayectoria descrita por el efector final. Esto es lo que se conoce como problema cinemático inverso. Sen1 ) . Grafica de la trayectoria seguida por el efector final. M. Las funciones k_inv y robot quedan como sigue: %% DIBUJAR LA TRAYECTORIA TRAZADA POR EL ROBOT Figura 3.p) x=[0 L1*cosd(th1) p(1)].y. debe tenerse en cuenta que el robot se compone de dos segmentos lineales: el primero entre los puntos (0. .UNAM F. y el segundo entre este último punto y la posición del EF p  ( px .I.th2).th1. %almacena el punto x %almacena el punto y %aumenta la variable en 1 plot(trax.th1. %almacena el punto x tray(c)=p(2).'*') %dibuja punto end clear all %limpiar todo th2=50. %inicializamos th2 en 50 grados c=1. Noé Alfredo Martínez Sánchez. c=c+1. Dada la configuración espacial (por ejemplo:1 = 30 2 = 60) puede obtenerse un grafico del robotmediante la siguiente función: %% Esta funcion dibuja el robot function robot(L1. plot(x.I C. tray(c)=p(2). trax(c)=p(1).tray.01).'r') grid on title('SIMULACION ROBOT 2 DOF') xlabel('x').'*') %dibuja punto end Figura 2.p). Configuración espacial del robot. axis([-2 2 -2 2]).

L2. A esta función entran L1. x. q=[rad2deg(the1). the1=alfa+gama. beta=acos((L1^2-L2^2-Rt^2)/(2*L1*L2)). Conociendo las longitudes L1 y L2 de los eslabones.I. L2. El robot trazara un circulo de diámetro de 1 cm con ayuda de la función kinv.360). t=linspace(0.UNAM F.5.5. plot(x.x. El siguiente código genera el círculo. Rt=sqrt(x^2+y^2). 5 Reproducción de trayectorias. se puede calcular los ángulos de articulación requeridos para desplazar el manipulador a una posición (x.y).I C.360. Noé Alfredo Martínez Sánchez. % genera el vector de puntos de los que estara formado el circulo x=1+sind(t)*0.y). Figura 6. alfa=atan2(y.5 el centro del circulo esta en (0.rad2deg(the2)]. y=1+cosd(t)*0. gama=acos((L1^2-L2^2+Rt^2)/(2*L1*Rt)).U. the2=-pi+beta. t es el número de puntos del circulo. y obtenemos theta1 y theta2 correspondientes a los ángulos de los eslabones.y) Para la simulación de la trayectoria escribimos el siguiente código: .5).x).5 y  1  cos(t )  0. La función en Matlab es: %% Cinematica Inversa function q=c_inv(L1. Circulo a reproducir por el manipulador. La ecuación paramétrica del circulo es: x  1  sen(t )  0.5.0. y. M.

for i=1:1:360 pause(0.I.q(1). y_cir(c)=y(i).U. Ángulos recorridos por los eslabones. %% SIMULACION ROBOT 2 DOF clc clear all t=linspace(0.7+cosd(t)*0. plot(x_cir.360. Noé Alfredo Martínez Sánchez. hold on x_cir(c)=x(i). Simulación de la trayectoria.x(i).1.'r') legend('ROBOT_2DOF') Figura 8. end Figura 7. clf robot(1. x=0.y_cir. ang2(c)=q(2).7+sind(t)*0.UNAM F. c=1.y(i)).y(i)).-Plotear theta1 y theta2 como se muestra en la siguiente figura. 2. .I C.001). M. ang1(c)=q(1). Tarea: 1.x(i).1.360).Hacer la simulación para trazar una línea. c=c+1.1. y=0.. q=c_inv(1.