0% encontró este documento útil (1 voto)
665 vistas18 páginas

Puma 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
0% encontró este documento útil (1 voto)
665 vistas18 páginas

Puma 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 Jacobiano 2_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 2 2.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 3 24 _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 4 2.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 Bustinza 3_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 6 3.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 7 3.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 Bustinza 3.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 9 3.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 10 3.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 "1 3.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 2 3.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 B 3.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 4 3.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 15 3.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 16 3.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 7 3.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