0% encontró este documento útil (0 votos)
193 vistas15 páginas

Jacobiano

Este documento presenta el código en Matlab para resolver el problema cinemático inverso de un robot planar de 2R y 3R utilizando la matriz Jacobiana. Explica la cinemática directa geométrica de un robot planar 2R y cómo derivar la matriz Jacobiana. Luego muestra el código para simular el movimiento del robot hacia un punto definido por el usuario minimizando el error a través de la pseudo inversa de la matriz Jacobiana.

Cargado por

Julio Cedillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
193 vistas15 páginas

Jacobiano

Este documento presenta el código en Matlab para resolver el problema cinemático inverso de un robot planar de 2R y 3R utilizando la matriz Jacobiana. Explica la cinemática directa geométrica de un robot planar 2R y cómo derivar la matriz Jacobiana. Luego muestra el código para simular el movimiento del robot hacia un punto definido por el usuario minimizando el error a través de la pseudo inversa de la matriz Jacobiana.

Cargado por

Julio Cedillo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE

DEPARTAMENTO DE CIENCIAS DE LA ENERGÍA Y MECÁNICA


Robótica Industrial

TEMA

CINEMÁTICA INVERSA MEDIANTE MATRIZ JACOBIANA

INTEGRANTES
JULIO CEDILLO

NRC: 1389

SANGOLQUÍ
2017
Contenido
TABLA DE ILUSTRACIONES ............................................................................................. 2
TEMA ..................................................................................................................................... 3
OBJETIVO ............................................................................................................................. 3
Objetivo Principal ............................................................................................................... 3
Objetivo Especifico ............................................................................................................ 3
MARCO TEÓRICO ............................................................................................................... 3
Problema cinemático inverso ............................................................................................. 3
Matriz Jacobiana ................................................................................................................. 3
Cinemática directa geométrica de un Robot planar 2R ...................................................... 4
Desarrollo ............................................................................................................................... 6
Código en Matlab para planar 2R ....................................................................................... 6
Código en Matlab planar 3R............................................................................................... 9
Resultados............................................................................................................................. 12
Planar 2R .......................................................................................................................... 12
Planar 3R .......................................................................................................................... 13
CONCLUSIONES ................................................................................................................ 14
RECOMENDACIONES ...................................................................................................... 15
REFERENCIAS ................................................................................................................... 15

TABLA DE ILUSTRACIONES
Ilustración 1: Cinemática directa de un robot planar 2R ........................................................ 4
Ilustración 2: Ingreso de datos .............................................................................................. 12
Ilustración 3: Gráfica de las iteraciones ............................................................................... 12
Ilustración 4: Gráfico punto deseado .................................................................................... 13
Ilustración 5: Ingreso de datos .............................................................................................. 13
Ilustración 6: Gráfico de iteraciones ..................................................................................... 14
Ilustración 7: Gráfico del punto deseado .............................................................................. 14
TEMA
Cinemática inversa mediante matriz Jacobiana

OBJETIVO
Objetivo Principal
Realizar un código en Matlab que permita resolver el problema cinemático inverso de
un robot planar 2R y 3R.

Objetivo Especifico

 Simular el movimiento del robot planar hacia un punto definido por el usuario
 Comprender el uso de la matriz Jacobiana para resolver el problema cinemático
inverso

MARCO TEÓRICO
Problema cinemático inverso

El objetivo del problema cinemático inverso consiste en encontrar los valores que deben
adoptar las coordenadas articulares del robot q, para que su extremo se posicione y
oriente según una determinada localización espacial.

La solución depende de la configuración del robot y puede tener múltiples respuestas.

Matriz Jacobiana

En robótica, la matriz Jacobiana transforma un sistema de velocidades a otro; por defecto


la matriz jacobiana de un robot relaciona las velocidades articulares con la velocidad
espacial.

Existen varios tipos de matrices jacobianas entre ellas la matriz geométrica que relaciona
el mundo articular con el mundo cartesiano, en un momento determinado nos permite
obtener la velocidad espacial instantánea en base a la posición y velocidad articular.
Cinemática directa geométrica de un Robot planar 2R

Ilustración 1: Cinemática directa de un robot planar 2R

La matriz Jacobiana puede obtenerse a partir de derivar parcialmente las funciones que
componen la cinemática directa, al hacer una diferenciación directa obtenemos una matriz
3x2.

Es posible obtener las variables articulares a partir de las velocidades, es decir resolver el
problema cinemático inverso a través de la matriz jacobiana.
Para ello es necesario invertir la matriz jacobiana, cuando se trata de una matriz cuadrada
se puede realizar la operación directamente.
Al tener matrices no cuadradas se recurre la pseudo inversa por izquierda y por derecha, la
matriz por izquierda se usa cuando el número de ecuaciones es mayor el número de
incógnitas y la matriz pseudo inversa por derecha cuando el número de incógnitas es mayor
al número de ecuaciones.
Matriz pseudo inversa por izquierda se define como:

Y la matriz pseudo inversa por derecha se define como:

Con las cuales obtenemos las variables articulares:

Las ventajas de resolver el problema cinemático inverso mediante la matriz jacobiana son:
 Se puede obtener la matriz jacobiana de cualquier robot serie de forma general
 Rápido
 Preciso
 Robusto

Si consideramos una solución cinemática

La formulación de la cinemática directa viene dada por:

Por lo que el problema cinemático inverso busca obtener

El jacobiano se considera el núcleo de una aproximación lineal

La jacobiana nos dice aproximadamente cuanto cambia E en el espacio cartesiano en el


entorno a un punto articular q ante variaciones articulares.

Cada columna de la jacobiana nos informa el cambio que sufre el extremo por la variación
de la variable articular, expresado de otra manera se tiene una variación en base a un
incremento infinitesimal respecto del tiempo:
Con esta expresión se puede plantear la relación inversa y la aproximación lineal de la
relación inversa:

Esto se puede plantear con el uso de la pseudo inversa:

Con estas expresiones es posible implementar algoritmos computacionales que permiten


calcular la aproximación lineal optimizando tiempo y recursos, disminuyendo
considerablemente el error.

Desarrollo

Después de saber las expresiones que nos son útiles para la resolución del problema
cinemático inverso, se puede implementar un algoritmo en Matlab que minimiza el tiempo
de cálculo y reduce costos de recursos.

Código en Matlab para planar 2R


%Julio Cedillo
%Cinematica inversa Jacobiano 2R
clc
clear all
close all

%Condiciones iniciales
L1=input('Ingrese la longitud L1: ')
L2=input('Ingrese la longitud L2: ')
%L3=input('Ingrese la longitud L2: ')
q1=input('Ingrese el ángulo inicial Q1: ')
q2=input('Ingrese el ángulo inicial Q2: ')
%q3=input('Ingrese el ángulo inicial Q2: ')
x=input('Ingrese el valor X deseado: ')
y=input('Ingrese el valor Y deseado: ')
% Transformacion a radianes
Q1=q1*pi/180;
Q2=q2*pi/180;
%Q3=q3*pi/180;

W=[1 0 0; 0 1 0; 0 0 1];
Pd = [x;y];
dt =.01;
counter = 0;

% Area de trabajo
r=L1+L2;
ang=0:0.1:2*pi;
xw=r*sin(ang);
yw=r*cos(ang);
plot (xw,yw)
axis equal;
hold on
pause(1)

for i = 0:dt:2 %End time should be adjusted for the desired accuracy

%Jacobiano 2x3

J= [-L1*sin(Q1)-L2*sin(Q1+Q2),-L2*sin(Q1+Q2);
L1*cos(Q1)+L2*cos(Q1+Q2),L2*cos(Q1+Q2)];

%Calculo de los puntos


xo=L1*cos(Q1)+L2*cos(Q1+Q2)
yo=L1*sin(Q1)+L2*sin(Q1+Q2)

Joint1 = [L1*cos(Q1) ; L1*sin(Q1)];


Joint2 = Joint1 + [L2*cos(Q1+Q2);L2*sin(Q1+Q2)];
PActual=[xo;yo]

Error=[x-xo;y-yo];

%Grafico del robot

plot(0,0,'o')
if (mod(counter,10)==0) %plots every 10 iterations
line([0,Joint1(1)],[0,Joint1(2,1)])
hold on
line([Joint1(1),Joint2(1)],[Joint1(2,1),Joint2(2,1)],'marker','o')
line([Joint2(1),PActual(1)],[Joint2(2,1),PActual(2,1)],'marker','o')
plot(PActual(1),PActual(2),'marker','o')
pause(0.08)

end

%Variacion infinitesimal

DeltaQ = 0.01*inv(J)*Error;

%Calculo nuevos q

Q1 = Q1 + DeltaQ(1);

Q2 = Q2 + DeltaQ(2);

counter = counter +1;

end
pause(1)
close all
%Grafico del punto deseado
if Error<0.1

r=L1+L2;
ang=0:0.1:2*pi;
xw=r*sin(ang);
yw=r*cos(ang);
plot (xw,yw)
axis equal;
hold on
plot(0,0,'o')
line([0,Joint1(1)],[0,Joint1(2,1)])

line([Joint1(1),Joint2(1)],[Joint1(2,1),Joint2(2,1)],'marker','o')
line([Joint2(1),PActual(1)],[Joint2(2,1),PActual(2,1)],'marker','o')
plot(PActual(1),PActual(2),'marker','o')
pause(0.08)
disp('Iteraciones')
disp(counter)
disp('Error')
disp(Error)
else
close all
disp('Punto fuera del area de trabajo')

end

Código en Matlab planar 3R


%Julio Cedillo
%Cinematica inversa Jacobiano 3R
clc
clear all
close all

%Condiciones iniciales
L1=input('Ingrese la longitud L1: ')
L2=input('Ingrese la longitud L2: ')
L3=input('Ingrese la longitud L3: ')
q1=input('Ingrese el ángulo inicial Q1: ')
q2=input('Ingrese el ángulo inicial Q2: ')
q3=input('Ingrese el ángulo inicial Q3: ')
x=input('Ingrese el valor X deseado: ')
y=input('Ingrese el valor Y deseado: ')
% Transformacion a radianes
Q1=q1*pi/180;
Q2=q2*pi/180;
Q3=q3*pi/180;

W=[1 0 0; 0 1 0; 0 0 1];
Pd = [x;y];
dt =.01;
counter = 0;

% Area de trabajo
r=L1+L2+L3;
ang=0:0.1:2*pi;
xw=r*sin(ang);
yw=r*cos(ang);
plot (xw,yw)
axis equal;
hold on
pause(1)

for i = 0:dt:3 %End time should be adjusted for the desired accuracy

%Jacobiano 2x3

J= [-L1*sin(Q1)-L2*sin(Q1+Q2)-L3*sin(Q1+Q2+Q3),...
-L2*sin(Q1+Q2)-L3*sin(Q1+Q2+Q3),...
-L3*sin(Q1+Q2+Q3);...
L1*cos(Q1)+L2*cos(Q1+Q2)+L3*cos(Q1+Q2+Q3),...
L2*cos(Q1+Q2)+L3*cos(Q1+Q2+Q3),...
L3*cos(Q1+Q2+Q3)];

%Calculo de los puntos


xo=L1*cos(Q1)+L2*cos(Q1+Q2)+L3*cos(Q1+Q2+Q3)
yo=L1*sin(Q1)+L2*sin(Q1+Q2)+L3*sin(Q1+Q2+Q3)

Joint1 = [L1*cos(Q1) ; L1*sin(Q1)];


Joint2 = Joint1 + [L2*cos(Q1+Q2);L2*sin(Q1+Q2)];
PActual=[xo;yo]

Error=[x-xo;y-yo];

%Grafico del robot

plot(0,0,'o')
if (mod(counter,10)==0) %plots every 10 iterations
line([0,Joint1(1)],[0,Joint1(2,1)])
hold on
line([Joint1(1),Joint2(1)],[Joint1(2,1),Joint2(2,1)],'marker','o')
line([Joint2(1),PActual(1)],[Joint2(2,1),PActual(2,1)],'marker','o')
plot(PActual(1),PActual(2),'marker','o')
pause(0.08)

end

%Variacion infinitesimal
DeltaQ = 0.01*pinv(J)*Error;

%Calculo nuevos q

Q1 = Q1 + DeltaQ(1);

Q2 = Q2 + DeltaQ(2);

Q3 = Q3 + DeltaQ(3);

counter = counter +1;

end
pause(1)
close all
%Grafico del punto deseado
if Error<0.1

r=L1+L2+L3;
ang=0:0.1:2*pi;
xw=r*sin(ang);
yw=r*cos(ang);
plot (xw,yw)
axis equal;
hold on
plot(0,0,'o')
line([0,Joint1(1)],[0,Joint1(2,1)])

line([Joint1(1),Joint2(1)],[Joint1(2,1),Joint2(2,1)],'marker','o')
line([Joint2(1),PActual(1)],[Joint2(2,1),PActual(2,1)],'marker','o')
plot(PActual(1),PActual(2),'marker','o')
pause(0.08)
disp('Iteraciones')
disp(counter)
disp('Error')
disp(Error)

else
close all
disp('Punto fuera del area de trabajo')

end
Resultados
Planar 2R

Ilustración 2: Ingreso de datos

Ilustración 3: Gráfica de las iteraciones


Ilustración 4: Gráfico punto deseado

Planar 3R

Ilustración 5: Ingreso de datos


Ilustración 6: Gráfico de iteraciones

Ilustración 7: Gráfico del punto deseado

CONCLUSIONES
 Se logró simular el movimiento de un robot planar 2R y 3R, hacia un punto definido
por el usuario con errores menores a 0.1 usando aproximaciones lineales por el
método de Newton, siempre y cuando los puntos se encuentren dentro del área de
trabajo del robot.
 Se comprendió como usar la matriz Jacobiana para resolver el problema cinemático
inverso, esta permite calcular las variables articulares de cualquier robot de forma
general y es más precisa.
RECOMENDACIONES
 Se recomienda probar si se obtienen iguales o mejores resultados usando otros
métodos de aproximación lineal como el CCD la cual permite resolver el problema
cinemático inverso pero sin el uso de la matriz jacobiana.
 Es recomendable verificar que usando la matriz jacobiana se tiene una mejor
aproximación a los puntos deseados, que usando métodos como el geométrico o la
matriz homogénea.

REFERENCIAS
 Hernando M. Apuntes de robótica. Universidad Politécnica de Madrid (2017).
Disponible en línea:
http://www.elai.upm.es/moodle/pluginfile.php/3637/mod_resource/content/2/Ca
pitulo6_CinematicaDiferencial.pdf
 N.A. Problema cinemático inverso. Disponible en línea:
http://icaro.eii.us.es/descargas/Tema%20_4_%20parte_4_y_ultima.pdf
 N.A. Cinemática del robot. Universitas Miguel Hernández. Disponible en línea:
http://isa.umh.es/asignaturas/rvc/tema4.pdf
 García F. Velocidades en robots manipuladores. Universidad Autónoma del Estado
de Hidalgo. Disponible en línea:
https://www.uaeh.edu.mx/docencia/P_Presentaciones/tizayuca/electronica_tele/C
inematica_TopicosSelectosRobotica.pdf

También podría gustarte