0%(1)0% encontró este documento útil (1 voto) 665 vistas18 páginasPuma 560
Derechos de autor
© Attribution Non-Commercial (BY-NC)
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
Anilisis del Movimiento de un Robot Puma de 6DOF
MSc. Ricardo Rodriguez Bustinza
robust@[Link]
Indice
1. Objetivos
2. Marco Teérico
2.1. Comando FKINE
‘Comando IKINE
‘Comando JACOBO
‘Comando DIFF2TR
‘Comando TRAC
‘Comando MANIPLTY
‘Comando ROBOT
3. Experiencia
3.1. Analisis de la Cinemiética Directa con Matlab
3.2. Analisis de la Cinematica Inversa con Matlab
3.3. El Jacobiano2_MARCO TEORICO
|. Objetivos
+ Utiizar la caja de herramientas de Robstica para Matlab en la creaciGn de manipuladores simulados.
= Realizar las operaciones bsicas de traslacién y rotacién de marcos de referencia,
+ Realizar la solueisn al problema de la cinematica directa
+ Realizar la soluci6n al problema de la cinemstica inversa y saber explicar sus problemas y limita-
+ Utilizacién del Jacobiano para la cinemética directa e inversa,
2. Marco Te6rico
La cinemética es el estudio del movimiento sin importar las fueraas que los causan, Dentro de la cin-
emiética se estudian la posicidn, velocidad y aceleracién, y todas las derivadas de orden superior de las
variables de posicién. La cinemética de los manipuladores involuera el estudio de las propiedades ge-
‘ométricas y basadas en el tiempo del movimiento, y en particular como varios eslabones se mueven uno
con respecto al otro y con el tiempo. Los robots tipicos son manipuladores con eslabones en setie com-
prendiendo un conjunto de cuerpos llamados eslabones, en una cadena, conectados por articulacionesl
cada unin tiene un grado de libertad, si es taslacional 0 rotativa. Para un manipulador con n articula-
ciones numeradas desde I hasta n, hay 1-1 eslabones numerados desde 0 hasta n. El eslabén 0 es la base
del manipulador, generalmente fj, y el eslabén n leva el elemento terminal. La articulacién i conecta el
eslabén icon el i= 1
Un estabsn puede considerarse como un cuerpo rigido definiendo la relacién entre dos ejes de aceién
vvecinos. Un eslabin puede especificarse por dos nimeros, la longitud del eslabsn y el giro del eslabsn,
los cuales definen el lugar relativo de los dos ejes en el espacio. Los parimetros de los eslabones para
el primero y el iltimo no tienen importancia, pero se escogen arbitrariamente que sean cero. Las aticu-
laciones pueden deseribirse por dos parimetros. El desplazamiento del estabsn es la distancia desde un
eslabin al siguiente a lo largo del eje de la articulaci6n, El sngulo de la articulacién es la rotaciéa de un
enlace con respecto al siguiente sobre el eje de articulacisn,
ElTeelbox de Robética nos proporciona funciones para e6mputo de la cinemétiea directa, cinemetica
inversa funciones con las funciones fine, ikkine, y eémputar la matriz Jacobiana jacob0, jacobn y
para diferenciales, mapeo diferencial y manipulabilidad, por las funciones jacobian,dif#2tr, tr2jac
y maniplty respectivamente. Finalmente la funcién robot que representa al robot objeto.
2.1, Comando FKINE
La funcién #kine relaciona la cinemstica directa del robot para el manipulador del eslabén serie que
presenta la sintaxis:
T= fkine (robot, 4)
la funcidn fine computa las cineméticas directas para la coordenada de la juntura q dada por una trans-
formacién homogénea para la localizacién del efector final. La funciGa robot es un objeto del robot
«que contiene un modelo de la cinemstica normal o modificada de la presentacidn Denavit-Hartenberg,
Note que el robot objeto puede especificar una transformacién homogénea arbitraria para la base de robot.
[Link]. Ricardo Rodriguez Bustinza 22.2_Comando IKINE 2_MARCO TEORICO
Si q es un vector que se interpreta como la coordenada de juntura generalizada, fkine retornard una
‘ransformaci6n homogénea para el eslabén final del manipulador,
Si q es una matriz y cada fila se interpreta como una juntura el vector de estado, T es una matriz de
44 xm dOnde mes el mimero de filas de 4
Preeaucién: Note que las unidades dimensionales para la ltima columna de la matriT sern de la misma
dimension de las unidades que usa el robot objeto. Las unidades pueden ser dadas en cualquier unidad
(por ejemplo, metros, pulgadas) pero la opeidn afectara el valor numérico de los elementos en la tltima
columna de 7. El Robot Puma S60 y el Brazo Stanford del Toolbox de Robética se define en el
‘con dimensiones en metros.
2.2, Comando IKINE
La funcidn dkine relaciona la cinemstica inversa del robot para el manipulador del eslubén serie que
presenta la sintaxis
Aline (Robot, 1)
Q = ikine(Robot, T, 9)
ikine (Robot, T, Q,
Elcomando ikine retomna la coondenada de articulacién correspondiente al efector final de la transforma-
da de 7. Note que la cinemética inversa generalmente no es de soluci6n nica, y depende de la condicién
inicil Q (valores predeterminados)
ikine (Robot, 76)
ikine (Robot, 7, Q)
ikine(Robot, TC, 0, 1)
El comando kine también retorna la coordenada de articulacién correspondiente a cada uno de las
‘ransformaciones en Ia trayectoria TG de 4x43, Retomna una fila de Q para cada entrada transformada. La
condicién inicial de Q para eada paso de tiempo se toma como la soluci6n del anterior al paso de tiempo.
2.3. Comando JACOBO
El comando jacob0 computa el Jacobiano del manipulador en coordenadas mundial. Presenta la sin-
taxis:
Jacobo(Robet, Q)
Retoma la matriz Jacobiana para la posici6n actual de Q. EI manipulador de la matriz Jacobiana ma-
pea el cambio diferencial en el espacio cartesiano de Ia juntura al diferencial de movimiento (marco de
ccoordenada mundial) del efector final.
ax =O
ara n-ejes el Jacobiano del manipulador es una matriz de 6x,
El comando jacobn computa el Tacobiano del manipulador en el marco del efector final. Presenta la
simtaxis:
MSe, Ricardo Rodriguez Bustinza 324 _Comando DIFF2TR 2_MARCO TEORICO
Jacobn(Robot, Q)
Esta funcién usa la técnica de Paul, Shimano, Mayer Ecuacién de Control Cinemdtico Diferencial para
un Simple Manipulador IEEE SMC 11(6) 1981 pp. 436-460.
2.4, Comando DIFF2TR
El comando di #2tr convierte una diferencial a una transformacién homogénea, Presenta la sintaxis
aitfotr(D)
[Retoma una transformacién homogénea representando al diferencial traslaci6n y rotacié,
2.8. Comando TR2JAC
El comando tx2ja computa el Jacobiano de mapeo diferencial entre marcos, Presenta la sintaxis:
tr2jac(t)
Retorna una mattiz Jacobiana de 65<6 para mapeo diferencial entre marcos relatives a una transformacién
homogénea 7.
2.6. Comando MANIPLTY
El comando maniplty mide la manipulabilidad, Presenta la sintaxis:
4
4
naniplty(Robot, Q)
maniplty(Robot, Q, WHICH)
(Comput el indice de manipulabilidad para el manipulador a las posturas dadas.
La manipulabilidad varia de 0 (mala) a1 (buena).robot es un robot objeto que contiene Ia cinematica y
‘opcionalmente los parimetros dindmicos para el manipulador.
2.7. Comando ROBOT
La funcidn robot es Ia que construye un robot objeto. La primera forma crea un robot predefinido, Ia
segunda forma retoma un nuevo robot objeto con el mismo valor de su argumento, La tercera forma crea
un robot de una celda array de objetos del eslabsn que definen las cinensitica del robot y opcionalmente
ladindmica, Presenta la siguiente sintaxis
robot
robot (rr)
robot (Link ...)
robot (DH...)
= robot (DY...)
La cuarta y quinta forma erean un objeto del robot desde las matrices generales DH y DYN. La ttima de
las tes formas acepta opeionalmente cadena de argumentos optatives que se toman en el orden como
comienza el nombre del robot, fabricante y comentario,
MSe, Ricardo Rodriguez Bustinza 42.7 Comando ROBOT
2_MARCO TEORICO
Miedo
robot a
robot Link
robot name
robot manuf
robot .comment
robot gravity
robot .mdh
robot base
robot tool
[Link]
robot .dya,
robot.q
robot .qlin
robot .jelimit
robot offset
robot .plotopt
robot .lineopt
Operacion
robot shadowopt ra
Recomm,
‘aumero de juntaras
cell array de estabén objeto
nombre de la cadena robot
cadena manufacturera del robot
cadena de comentario general
‘vector 3-elementos que define la direcci6n de gravedad
cconvenciGn DH: 0 si es estandar, | si se modifica.
Determinado desde el objeto eslabsin,
‘ransformacion homogénea, define la hase del robot
‘ransformaci6n homogénea, definine las herramientas
del robot
‘matriz general DH
‘matsiz general DYX
coordenadas de juntura
limites de coordenadas de juntura, matriz de n2
vector limite de juntura, para cada conjunto de
juntura -1, 00 I dependiendo si es menor del limite
bajo, OK, o mayor que el Limite superior
ccoordenada offset de juntura
‘opeisn para ploteo
estilo de linea para el robot de eslabones grificos
estilo de linea para las sombras de los eslabones
del robot
El vector offset es adicionado al usuario, especifica los dngulos de Ia juntura antes de las funciones
cinemtica o dinamica sean invocadas (es implementado dentro del objeto del eslabsn). Similarmente se
substrae despues de una operacién como la cinemética inversa. Es necesario un vector de juntura of feet
debido a la notacign de resteiecidn Denavit-Hartenberg (0 modificado Denavit-Hartenberg). Por defecto
los pardmetros para el robot son:
ober
robot
robot
robot
robot
robot
robot
robot
robot
manuf ‘noname’
consent —“noname’
gravity (0009.81}ms?
offset ones!)
base eyet44)
‘tool eyet44)
Lineopt Color’, ‘black’, ‘Linewidth’, 4
shadowopt ‘Color’, ‘black’, ‘Linewidth’, 1
MSe, Ricardo Rodriguez Bustinza3_EXPERIENCIA
3. Experiencia
3.1, Anilisis de la Cinemiitica Directa con Matlab
Lacinemitica directa, resuelve la posici6n y orientacién cartesiana de un mecanismo dado el conocimien-
to de la estructura cinematica y de las coordenadas de la juntura de un robot. Considere el robot Puma
‘560 que se muestra en la Figura 1
Figura 1: Robot Puma 560
Los pardimetros Denavit Hartenberg son mostrados en la siguiente tabla
4] alpha a theta @ signa
1 '
i 1
l1t pie o o 0 ot
121 0 0.4318 0 0 ot
| 31 -pi/2 0.0203 0 0.180050
lat piezo 0 0.438 oI
| 81 -pis2 0 oo ot
Cn) o 0 o1
MSe, Ricardo Rodriguez Bustinza 63.1__Anilisis de la Cinemética Directa con Matlab 3_EXPERIENCIA
El siguiente c6digo en MATLAB, ilustra el problema de la einem:
ca directa para el robot Puma 560,
LA} = Link(L pi/2 0
Link(L 0.4318
© obs
0 oO);
Link({-pi/2 0203 01d;
Link([pi/2 0 43180);
Link([-pi/2 0 0 obs
Link(fo 0 01)
Link(L pi/2 0 °
Link(E 0 .aa18 00 01);
Link({ -pi/2 0203 0.180050);
Link(L pi/2 0 0.431801);
Link({ -pi/2 0 o 0 01);
Link(E 0 0 o 0 01);
% Masa de las barras
$0; LQ} = 17.4; LGG}m = 4.8;
0.82; L{S}.m = 0.34; L{6}.m = .09;
de gravedad de las barra
Lo °
[-.3638 006.2278 1;
LAB}. = [ -.0203 -.0141 .070 1;
Lo 19 0;
Lo o 0 2;
Lo 0.032;
% Matriz de inercia
Lub = Lo 38 0 0 0;
LO}I = [13 52483900;
LAB}.1 = [066 086-0128 0 «0 0};
LE}. = [1.803 1.263 186-3 0 0 oO);
LGS}.I= [ .3e-3 40-3 -3e-3 0 «0 0);
L{6}.1 = [ .150-3 150-3 -04e-3 0 0 0);
%
% Inercia de los motores
h
L{A}.Jm = 2000-6;
LQ}.Jn = 2000-6;
L{3}.Jn = 2000-6;
LE}.Jn = 330-6;
L{S}.Jn = 330-6;
L{6}.Jn = 330-6;
MSe, Ricardo Rodriguez Bustinza 73.1__Anilisis de la Cinemética Directa con Matlab
3_EXPERIENCIA
%
1 Factor de reduccién
%
LA}.G = 62.6111;
LQ}.G = 107.815;
LGh.c 7083;
L&4}.c = 76.0364;
LaSh.G 923;
L{6}.¢
%
4 Priceién viscosa (referide al actor)
%
LUD = 1.480~5
LQ}.B = 0.8170-3;
LGB}.B = 1.386-3;
LGG}.B = 71.20-6;
L{S}.B = 82.60-6;
L{6}.B = 36.70-6;
%
W Friccién de Coulorb (referide al motor)
%
LUbTe = [398 -0.435 J;
LQ}Te = (126 -0.071 1;
LGhTe = [192 -0.105 1;
L&G}.Te = [ 11.20-3 -16.90-3 1;
LAS}. Te = [ 9.2603 -14.50-3 1;
L{6}.Te = [ 3.96e-3 -10.5e-3 1;
%
4 Posiciones
%
4% Wome Position
gh = (000000);
4 Macia arriba
up = [0 pi/2 -pi/2 00 0);
1 Aleance méxino
gstretch = [0 0 -pi/2 0 0 0);
x
4% Robot Odjeto
REGO = robot (L, *R5GO" , °LD9S4", "Robot 6R?);
[Link] R560";
R560. manuf LD9S4
R560. plotopt *workspace’,(-1 1 -1 1-1 1)};
[Link] = {'color’, *blue’,’Linewidth’ 4};
R560. shadowopt = {'color”, "black", "Linewidth’ ,1};
‘Tefleine (R560, qup)
%
arivebot (R560)
%
MSe, Ricardo Rodriguez Bustinza3.1__Anilisis de la Cinemética Directa con Matlab 3_EXPERIENCIA
Figura 2: Postura Home Position del Robot Puma 560.
Analizando la cinemst
-a directa para el robot Puma 560, Considere la juntura de coordenada qup, la
ma que genera una nueva postura “hacia arriba” como se muestra en la Figura 3,
up = [0 pi/2 -pi/2 00 0);
plot(R560,qup)
Figura 3: Postura hacia arriba del Robot Puma 560
La cinemitica directa se computa usando flcine con una apropiada descripcién de la cinemética, en este
caso, la matriz p60 que define Ia cinemyitica para el robot Puma $60 de 6-ejes.
T= fkine(p560, 2);
% 1.0000 ° 0 0.0203
% 0 1.0000 0 0.1800
% ° © 1.0000 0.8636
% ° ° 0 1.0000
MSe, Ricardo Rodriguez Bustinza 93.1__Anilisis de la Cinemética Directa con Matlab 3
PERIENCIA
Como vemos, retorna la correspondiente transformaci6n homogénea al dltimo eslabén det manipulador
‘fine también puede usarse con una secuencia de tiempo de coordenadas de juntura, o trayectoria gene
ada por jtzaj
t= 0:.01:2; % genera un vector de tiempo
@ = jtraj(qh, qup, t);% computa coordenadas de juntura de trayectoria
Entonces la transformacin homogénea para cada conjunto de coordenadas de la juntura se da por
1
feine(RS60, q); 1 genera evelucién de la matriz de TH
Donde T es una matriz 3-dimensional, las primeras dos dimensiones (i, j.:) coresponden a la mattiz de
transformaci6n homogénea 4 x 4 y la tercera dimensi6n (:,:,1) es tiempo. Por ejemplo queremos evaluar
Ja matriz der transformacién homogénea de la muestra 201
1G, 2,201) =
% 1.0000 ° 0 0.0203
% 0 1.0000 0 0.1800
% ° © 1.0000 0.8636
% ° ° 0 1.0000
Los elementos (1:3.4) corresponde a las coordenadas X, ¥ y Z respectivamente, y puede plotearse en el
tiempo (ver Figura 4),
figure
subplot (311), plot(t, squeeze(T(1,4,:)),‘r"), ylabel(*X (m)’)
subplot (312), plot(t, squeeze(T(2,4,:)),"g"), ylabel(*Y (m)’)
subplot (313), plot(t, squeeze(T(3,4,:)),‘m"), ylabel(*Z (m)’)
xlabel (Tiempo (s)’)
Figura 4: Posicién del robot en el tiempo.
plotear X versus Z y conseguir alguna idea del camino cartesiano seguido por el manipulador como se
observa en la Figura 5.
MSe, Ricardo Rodriguez Bustinza 103.2_Anilisis de la Cinemética Inversa con Matlab
PERIENCIA
subplot (311), plot(squeeze(T(1,4,:)),
xlabel('X(a)’), ylabel('2(m)"), grid,
subplot (312), plot(squeeze(T(1,4,:)),
xlabel('X(a)’), ylabel’Y¥(m)"), grid,
subplot (313), plot(squeeze(T(2,4,:)),
squeeze (1(3,4,:)),"k+)
title(’X versus 2")
squeeze (T(2,4,:)), +)
title(’X versus ¥")
squeeze (T(3,4,:)), K+)
xlabel(’Y(a)’), ylabel('2(m)'), grid, title(Y versus 27)
z
Figura 5: Caminos cartesianos.
32,
Andlisis de la Cinemética Inversa con Matlab
La cinematica inversa tiene el problema de encontrar las coordenadas articulates del robot dada una trans-
formacién homogénea representando al timo eslabn del manipulador. Es muy stil en un determinado
espacio de cartesiano, por ejemplo, un camino en Iinea recta como propuesta de trayectoria
El siguiente e6digo en MATLAB, ilustra el problema de Ia cinemstica inversa para el robot Puma S60, Para
ello invocamos al M-file analizado en Ia seccién anterior. En primer lugar generamos la transformada
correspondiente a una coordenada de la juntura en particular
% Articulacion hacia arriba
up = [0 pi/2 -pi/2 0 0 0);
Luego mediante el comando £kine realiza el retorno de una transformacién homogénea para el eslabén
final del manipulador.
T= fkine (R560, qup);
1.0000 0 0 0.0203
0 1.0000 0 -0.1500
° 0 1.0000 0, 8636
° ° 0 1.0000
Ahora veamos la posicis
representado por TA,
corientacién de la matriz homogénea T respecto a un marco de referencia {A}
MSe, Ricardo Rodriguez Bustinza "13.2_Anilisis de la Cinemética Inversa con Matlab 3_EXPERIENCIA
Tareye(4)s
figure
frane(T, "g?,0.8)
hold
frame(TA,’r?,0.8)
view(-20,16)
grid
Figura 6: Simulacidn de frames desde el IKINE,
El procedimiento de la cinemética inversa para cualquier robot especitica puede ser derivado simbélica-
‘mente y en general una soluei6n en forma certada y eficaz puede ser obtenida, Sin embargo slo se da
luna deseripeién generalizada del manipulador (referida a los pardmetros de Ia cinemstica para que una
soluci6n reiterativa pueda ser usada). El procedimiento es lento, y la opcién de empezar un valor afecta en
tiempo de la bésqueda y la soluci6n, en general un manipulador puede tener varias posiciones qué resultan
en [a misma transformada para el itimo eslabén, El punto de partida puede especificase, o de otra forma
los valores predeterminados se ponen a cero (qué no siempre es una opcidn particularmente buena en este
caso),
ap = (0 -pi/4 -pi/4 0 pi/a 0);
‘Tefleine(R560,qp) ;
qinv=ikine (R560, 1);
ged = qp*i80/pi;
ged = qinv#i80/pi;
% Angulos PAINE
%
Ko 745.0000 -45.0000 0 22,6000 0
% Angulos IKINE
4 -
% 0.0000 -45.0000 45.0000 0.0000 22.8000 0.0000
4 -
MSe, Ricardo Rodriguez Bustinza 23.2_Anilisis de la Cinemética Inversa con Matlab 3
PERIENCIA
Una solucién no siempre es posible, por ejemplo si especificamos transformadas que describen un punto
fuera de aleance del manipulador. Como se expres6 anteriormente, las Soluciones no son necesariamente
“inicas, hay singularidades y el manipulador pierde grados de libertad y las coordenadas articulares se
ponen linealmente dependientes.
Examinaremos el efecto de una singularidad que permite repeti el Gltimo ejemplo para una propuesta
diferente, Una posicidn inicial para el robot Puma 560 donde Ia mulieca es alineada produciendo la
pérdida de un grado de libertad (ver Figura 7)
qup = [0 pi/2 -pi/2 00 0);
‘Tefleine (R560, qup) ;
qinveikine (R560, 1);
ged = qupri80/pi;
ged = qinv¥i80/pi;
disp(*Angulos FKINE*)
displ’ »
isp (qed)
disp(Angulos TKINE*)
y
displ’
isp (act)
% Angulos PAINE
%
Ko 80 -90 ° ° °
% Angulos IKINE
%
% 0.0000 87.3069 84.6167 0.0000 -2.6902 0.0000
%
Figura 7: Simulacidn de postura hacia arriba arviba
‘Vemos que devuelve articulaciones que no son iguales al dngulo de la artculacién original. También
pueden computarse las cinemsticas inversas para una trayectoria, Si nosottos tomamos un camino en
linea recta cartesiana los resultados (ver Figura 8).
MSe, Ricardo Rodriguez Bustinza B3.2_Anilisis de la Cinemética Inversa con Matlab 3
PERIENCIA
0:0.01:25 4% creamos el vector de tiempo
Tt = transi(0.6, -0.8, 0.0); define el punto de partida
12 = transi(0.4, 0.8, 0.2); destino
T= ctraj(Tt, 12, £/2); % computa e1 camino cartesiano
figure % muestra la posicién final
frane(T1,?g?,1), hold
frane(T2,?r?,1)
frame(T, "k? ,1)
view(-30,18), grid
Figura 8: Trayectoria cartesiana,
‘Ahora se resuelve las cinemticas inversas para una trayectoria, empezando con las coordenadas de la
articulacién para cada punto se toma como el resultado del la solucién inversa anterior.
the
q = Skine (R560, 1);
toc
% Elapsed time is 1.247678 seconds.
Se observa claramente este acereamiento es lento,
no conveniente para controlar al robot real donde una
solucién de lacinematica inversa requiere de unos pocos milisegundos. Examinemos la juntura trayectoria
espacial que produce el movimiento cartesiano.
figure
subplot (311)
phot(t,q(:,1),?k"), ylabel(*Art. 1 (rad)"), grid
subplot (312)
phot(t,q(:,2),?k"), ylabel(*Art. 2 (rad)"), grid
subplot (313)
plot(t,q(:,3),?k"), ylabel (Art. 3 (rad)") grid
xlabel (’t(seg)") ;
MSe, Ricardo Rodriguez Bustinza 43.3 ElJacobiano 3_EXPERIENCIA
Figura 9: Movimiento cartesianos de las junturas,
Esta articulacién de la tayectoria espacial puede ser animada como se observa en la Figura 10,
plot (R560, q)
1 10: Animacion del robot objeto.
3.3. El Jacobiano
El Jacobiano y el movimiento diferencial pueden ser representado por un vector de 6-elementos, siendo
los elementos [dx dy dz drs dry drz| donde los primeros 3 elementos son una traslaci6n diferencial, y los
3 ultimos son una rotacién diferencial, Al ratar las rotaciones infinitesimal, el orden es insignificance, EL
‘movimiento diferencial puede eseribirse en términos de transformadas compuestas de la siguiente forma
T= transl ([Link])*rotx(drx) eroty(dry) +xotz(dre)
MSe, Ricardo Rodriguez Bustinza 153.3 ElJacobiano 3_EXPERIENCIA
Esta instruccién en forma directa es aproximada usando di£42ex que conviert el diferencial en una trans-
formacién homogénea, mientras que dif £2tr (D) retorna una transformacién homogénea representando
el diferencial de raslacién y rotacién
D= C1 .20-.2.4 1175
aigertr(D);
ans
% © 0.1000 0.1000 0.1000
% 0.1000 © 0.2000 0.2000
% 0.1000 -0.2000 o o
% ° ° o o
Usualmente es iil saber c6mo un movimiento diferencial en uno marco de coordenadas aparece en otro
‘marco. Si el segundo marco es representado por a tansformaciGn. El siguiente c6digo en MATLAB, ils
ccémo obtener la matriz Jacobiana.
7 = transl (100, 200, 300)*roty(pi/a)+rotz(-pi/4);
Entonces el movimiento diferencial en el segundo matco se darfa por tr2ja¢ que computa un Jacobiano
para mapeo diferencial entre marcos t2jac(T) y retoma una matriz Jacobiana de dimensidn 6%6 para
el mapeo diferencial entre marcos relacionados por la transformacién homogénea T.
DI = tr2jac(T)*D;
% 19.4974 39.6974 ~74.6593 -0.2307 -0.0307 -0.0765,
T(t); dy=DT(2); @z=DT(3); 1 Traslacién diferencial
% 19.4974 39.6974 ~74.6593
arx-DT(4); ary-DT(S); arz-DT(6); % Rotacién diferencial
% — -0.2307 -0.0307 0.0765
La funcién ¢22jac computa la matriz Jacobiana de 6x6 que transforma el cambio diferencial del primer
‘marco al préximo, La matsi2 Facobiana del manipulador relaciona la coordenada de la articulacién dife-
rencial de movimiento diferencial al movimiento cartesiano dado por:
ax = Jd
Para un manipulador de -junturas (articulaciones), el manipulador es una maiz Jacobiana de 6xn y es
usado para muchos esquemas de control de manipuladores. Para un manipulador Puma 560 de 6-ejes el
Jacobiano es cuadrado. Frecuentemente se usan dos Jacobianos, qué expresa la velocidad cartesiana en el
‘marco de la coordenada mundial
ap = (0 -pi/4 -pi/4 0 pi/a 0);
J0 = jacob0(RS60,qp);
% 0.1801 0.3256 0.0203 o o °
% 0.7371 0.0000 0.0000 o o °
% 0.0000 0.7371 0.4318, o o °
% 0.0000 ° © 1.0000 0 0.9239
% 0.0000 1.0000 1.0000 0.0000 -1.0000 0.0000
% — 1-0000 0.0000 0.0000 0.0000 0.0000 0.3827
EL marco de coordenada en el efector final viene dado por
MSe, Ricardo Rodriguez Bustinza 163.3 ElJacobiano 3_EXPERIENCIA
ap = (0 -pi/4 -pi/4 0 pi/a 0);
Jn = jacoba(RS60,qp) ;
% an
%
% 0.0874 ~0.8564 0.3912 ° ° °
% 0.7371 0.0000 0.0000 o o °
% 0.1386 0.8828 0.1840 o o o
% 0.9239 ° 0 0.3827 ° o
% — -0.0000 1.0000 -1.0000 0.0000 -1.0000 °
% 0.8827 0.0000 0.0000 0.9239 0.0000 1.0000
Note el bloque derecho de 33 son todos ceros. Esto indica, correctamente, el movimiento de las junturas
4 4.6 no causa cualquier movimiento tanslacional del robot en el efector final. Muchos esquemas de
control requieren que el Jacobiano inverso. El Jacobiano en este ejemplo no es singular
det (JO); 0.0354
det (Jn); 0.0354
Y puede invertrse
Jin = inv(Jn);
din =
%
% 0.0000 1.3866 0.0000 © 0.0000 °
% 1.4644 -0.6986 3.1138 0.0000 0.0000 °
% -4.6396 1.1943 4.4285, © 0.0000 0.0000
% 0.0000 3.2762 -0.0000 2.6131 0.0000 0
% 3.1751 -0.4947 1.3182 -0.0000 -1.0000 °
% — -0.0000 3.8460 0.0000 2.4142 0.0000 1.0000
Una técnica elésica de control es Witney y resuelve el control de movimiento,
40 _ 4) dX
a a
Donde dX /dt es la velocidad cartesiana deseada, y dQ/di es la velocidad de la juntura requerida para
lograr esto, ingresamos el e6digo:
(a)
vol = [100000]; %mov. translacional on 1a direccién X
quel = Jinevelj
quel’;
% ans =
% 0.0000 1.4644 -4.6396 0.0000 3.1751 -0.0000
Esta es una estrategiaalternativa a computar una trayectoria cartesiana y resuelve las cinemticas inversas,
‘Sin embargo nos gustaria otro esquema, es decir, una estrategia que también se encuentra con Ia dificultad
de una singularidad del manipulador d6nde el Jacobiano es singular. Como ya se mencion6, este Jacobiano
relaciona la velocidad de la juntura del efector final la velocidad en el efector final del marco de referencia,
‘Nosotros podemos desear en cambio para especificar la velocidad en base o las coordenadas mundiales.
EI movimiento diferencial en un marco puede ser trasladado a otto. Considere la velocidad como un
diferencial en el marco mundial, dOX.
6X = Jac(T6)d0X
MSe, Ricardo Rodriguez Bustinza 73.3 ElJacobiano 3_EXPERIENCIA
16 = fkine(R560,qp); % computa la transf en el efector final
46X = tr2jac(T6)+vel; % traslada 1a velocidad del marco mundial al marco 76
quel = Jined6x; 4% computa velocidad de 1a juntura requerida
quel’;
% ans
% 0.0000 3.4967 8.8669 0.0000 2.4301 0.0000
Note que este valor de velocidad de la juntura es bastante diferente al calculado que pata el movimiento
en la direccién del eje-X de 76. Una singularidad del manipulador o degeneracién del Jacobiano se pone
singular. En la posici6n del robot Puma S60 por ejemplo, dos de las junturas de la muieca son alineadas
produciendo la pérdida de un grado de libertad, Esto se revela por el rango del Jacobiano.
rank(jacobn(p860,qr)); % 8
El valor singulares.
sva( jacoba(R560,ap)); % valor de descomposicién singular
% ans
% 1.8829
% 1441s
% 1.2087
% 0.8244
% 0.1673
% 0.1232
‘Cuando no actualiza una singularidad el Jacobiano puede proporcionat la informacién sobre eémo “condi-
cionar mejor” al manipulador para que realice eiestos movimientos, a esto se le Hama “manipulabili-
dad”. Se han propuesto varios medidas escalares de la manipulabilidad. Uno propuesta por el ingeniero
Yoshikawa,
maniplty(R560,qp, "yoshikava’)
% ans
% a
Es basado en los parimetros de la cinemsitica del manipulador. Otro propuesto por Asada que toma en
J cuenta la inercia del manipulador que afecta la aceleracién logrando en las direcciones diferentes, Esta
‘medida varia de 0 a1, dnde 1 indica uniformidad de aceleracién en todos las direcciones.
maniplty (RS60,qp, "asada’)
% ans
% a
Ambas de estas medidas indicarén que este propuesta particular no esté bien condicionada
MSe, Ricardo Rodriguez Bustinza 18
También podría gustarte
Guía COSIMIR
Aún no hay calificaciones
Guía COSIMIR
11 páginas
PDF
Aún no hay calificaciones
PDF
174 páginas
Puma Fase2
Aún no hay calificaciones
Puma Fase2
49 páginas
BP 70 PDF
Aún no hay calificaciones
BP 70 PDF
154 páginas
Sae J1930
Aún no hay calificaciones
Sae J1930
5 páginas
DTC Laguna
Aún no hay calificaciones
DTC Laguna
94 páginas
PCP Limite
Aún no hay calificaciones
PCP Limite
7 páginas