Sie sind auf Seite 1von 42

Jacobiano del manipulador

Departamento de Ingeniera de Sistemas y Automtica

Robtica Industrial E.T.S. Ingenieros Industriales

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Contenido

Departamento de Ingeniera de Sistemas y Automtica

1. 2. 3. 4. 5.

Introduccin Movimientos diferenciales. Jacobiano del manipulador. Cinemtica inversa por mtodos numricos. Conclusiones.

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

1. INTRODUCCIN

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Carl Gustav Jacob Jacobi (1804- 1851)

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Definicin.
Matriz jacobiana del manipulador: Relaciones diferenciales que vincula los cambios diferenciales de la localizacin del efector final, en coordenadas operacionales, con los producidos en cada una de las articulaciones.
= (q 1 , ..., q n )t y la que Relacin entre las velocidades articulares desarrolla el efector final v; o relacin lineal e instantnea entre el vector en coordenadas operacionales p y el de coordenadas generalizadas . Nmero de filas coincide con los grados de libertad cartesianos, y el nmero de columnas resulta el nmero de articulaciones del manipulador. El elemento (i,j) representa cmo influye el movimiento de la j-sima articulacin a la variacin i-sima coordenada cartesiana.

Departamento de Ingeniera de Sistemas y Automtica

p = J ( ) v = J ( )

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Conceptos derivados
El inters por desarrollar un modelo del tipo descrito:
Control de las velocidades articulares para que el efector final siga una trayectoria con una velocidad cartesiana especificada. Resolucin del manipulador por mtodos numricos. Movimientos de acomodacin basados en desplazamientos diferenciales de cada uno de los elementos del manipulador. Clculo de los pares que se requieren imprimir a cada una de las articulaciones para que el manipulador quede en un equilibrio esttico.

Departamento de Ingeniera de Sistemas y Automtica

Conceptos derivados:
Matriz Jacobiana inversa: Transformacin del espacio de las velocidades cartesianas a las articulares. Matriz Jacobiana traspuesta: Determina las relaciones entre las fuerzas aplicadas en el efector final y las articulares, con el manipulador en una configuracin de equilibrio. Singularidad: Configuracin del manipulador dnde el jacobiano no posee inversa. Indica la imposibilidad de mover el efector final hacia cierta direccin.
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Jacobiano por diferenciacin directa


Cmputo de la matriz jacobiana mediante la diferenciacin del modelo cinemtico.

Slo se puede aplicar a la porcin del modelo cinemtico directo de la posicin. No se puede aplicar de forma directa a la porcin de la orientacin del modelo cinemtico. Para ello:
Departamento de Ingeniera de Sistemas y Automtica Se puede aplicar a una representacin de la orientacin: Jacobiano analtico. Se expresa como los vectores Z de cada uno de los ejes de giro de las articulaciones de la mueca visto desde la base del robot.

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: SCARA RRPR (modelo cinemtico)

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: SCARA RRPR (matrices de paso DH2)

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: Manipulador SCARA (jacobiano)


1. Modelo cinemtico directo:

Departamento de Ingeniera de Sistemas y Automtica

2. Matriz Jacobina por diferenciacin directa:

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: Manipulador SCARA (MATLAB)


La funcin JACOBIAN(f,v) calcula el jacobiano de un vector f con respecto a otro vector v. El componente (i,j) de la matriz resultante se define como df(i)/dv(j).
function J=jacob1(Q) L=[60,40]; q=[Q(1),Q(1)+Q(2),Q(1)+Q(2)-Q(4)]; s=sin(q); c=cos(q); T04=[c(3) s(3) 0 c(1)*L(1)+c(2)*L(2) s(3) -c(3) 0 s(1)*L(1)+s(2)*L(2) 0 0 -1 -Q(3) 0 0 0 1]; J=[jacobian(T04(1:3,4),Q);jacobian(q(3),Q)];

Departamento de Ingeniera de Sistemas y Automtica

Si se desea realizar el clculo simblico del mismo:


syms q1 q2 d3 q4 real % Definiciones simblicas Q=[q1,q2,d3,q4]; % Matriz simblica articular. J=jacob1(Q); % Clculo del jacobiano. pretty(J); % Salida por pantalla.
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Interpretacin de las singularidades


Indica la direccin del espacio en la cual no se puede mover el manipulador desde la posicin actual. Se cumple:
El rango J(), se denota como R(J()), es un subespacio dentro del espacio articular de n dimensiones de los vectores articulares que permiten que el efector final del manipulador desarrolle una velocidad en una direccin determinada con un vector de velocidades articulares. Cuando R(J()) toma el valor nulo, define un subespacio N(J()), dentro del espacio de las velocidades cartesianas de m dimensiones, el cual el manipulador no puede alcanzar.

Departamento de Ingeniera de Sistemas y Automtica

Espacio articular

R(J()) N(J())

Espacio velocidades cartesianas

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

2. MOVIMIENTOS DIFERENCIALES

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Definiciones
Matriz de velocidades angulares y lineales, que al componerla a la izquierda o a la derecha de una transformacin homognea, produce en esta ltima cambios diferenciales en posicin y orientacin. Dado un sistema T, un cambio diferencial se expresa como alrededor de un eje seguida de una rotacin de un ngulo : un desplazamiento d
Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Clculo de la matriz
Se opera con la expresin genrica de la matriz :

Departamento de Ingeniera de Sistemas y Automtica

Donde los vectores de velocidad lineal y angular:

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo de movimiento diferencial


Dada la matriz A y los vectores de velocidad lineal y angular, se pide calcular la variacin en posicin y orientacin dA.

Departamento de Ingeniera de Sistemas y Automtica

Se sustituyen los dos vectores en la expresin genrica de y se premultiplica por A

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Expresin de T conocido 0
Conocida 0, se trata de calcular la referida a T, T. Se supone, la transformada T formada por los vectores columna:
n: vector normal a la garra (eje X). o: vector de orientacin de la garra (eje Y). a: vector de aproximacin de la garra (eje Z)

Departamento de Ingeniera de Sistemas y Automtica

Al simplificar

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Expresin de 0 conocido T
Se despeja 0
dT =0 T = T T ;
0

= T T

Al sustituir en la expresin 0, se obtiene el mismo resultado que el caso anterior.


Departamento de Ingeniera de Sistemas y Automtica

0 6 0 z =6 4 0 y 0
0

z 0 0 x 0
0

y 0 x 0 0
0

3 dx 0 7 dy 7 0 5 dz 0

y = ~ d o (T p ~ +T 0 dz = ~ a (T p ~ +T
0 0

x = ~ ) d n (T p ~ +T d ) d ) d

x =T ~ n

y =T ~ o

z =T ~ a

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Calculo de en composicin de transformaciones


Planteamiento:
{0}
0 0T 1

{1}

1T 2

{2}
2

0T . 1T 1 2

0T . 1T +d(0T . 1T ) 1 2 1 2

{0}

Departamento de Ingeniera de Sistemas y Automtica

0T 1

{1}

1T 2

{2}

0 T1 1 T2 =0 T1 1 T2 2
0

; (1 T2 )
1 1 (0 T2 ) 1

=0 T1 1 T2 2

En este caso, se toma T= (. 1T2)-1. ( 0T1)-1, con lo cual se establece la misma expresin para que en los casos anteriores.
0

= [(1 T2 ) =T
1 2

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

(0 T1 ) T

1 2

[(1 T2 )

(0 T1 )

Propagacin de movimientos diferenciales


Un cambio diferencial del sistema {M} causa a su vez un movimiento diferencial del sistema {S}, para que el diagrama de relaciones de arriba siga siendo vlido:

Departamento de Ingeniera de Sistemas y Automtica

H G

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: enunciado
Una cmara se encuentra unida a la quinta articulacin de un manipulador de seis grados de libertad. La mencionada conexin se define mediante la transformacin 5TC. Asimismo, la matriz de paso del ltimo elemento, en la configuracin actual, se especifica segn la transformacin 5T6.

Departamento de Ingeniera de Sistemas y Automtica

El objeto que se desea manipular, al observarlo desde la cmara incorporada al robot, se calcula que se encuentra desplazado y rotado con respecto a la localizacin prevista una pequea cantidad definida como: Se desean calcular los cambios necesarios en la posicin y orientacin del efector final para que este ltimo entre en contacto con el objeto.
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: solucin
1. Construccin del grafo de relaciones:

Departamento de Ingeniera de Sistemas y Automtica

2. Establecer la doble relacin:

Por tanto:
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

3. JACOBIANO DEL MANIPULADOR

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Definicin por movimientos diferenciales


Clculo a partir de ii en la i-sima articulacin y referido al sistema {i}, su expresin en {6}:6i

Departamento de Ingeniera de Sistemas y Automtica

Se concluye: a) En el caso de la notacin DH1, i = 0 ... 5. b) En el caso de la notacin DH2, i = 1 ... 6.


Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Clculo por movimientos diferenciales


Se supone la matriz iT6 compuesta por los vectores columna n, o, a y p.

Departamento de Ingeniera de Sistemas y Automtica

Por tanto, en este caso la matriz jacobiana, se puede expresar como:

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: Manipulador SCARA RRPR


Se aplica la frmula de propagacin de los movimentos diferenciales:
4 4 4 4 1 2 3 4

= (1 T2 2 T3 3 T4 ) = (2 T3 3 T4 ) = (3 T4 ) = (I )
1 3 1 4 1 2

1 1

Departamento de Ingeniera de Sistemas y Automtica

3 4

3 T4 = (3 T4 )

2 T3 3 T4 = (2 T4 )
1 3

1 T2 2 T3 3 T4 = (1 T4 )
1 2

1 1

3 T4

2 T4

1 T4

Por tanto, las matrices a calcular:

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: Manipulador SCARA RRPR


Primera articulacin: matriz 1T4.

Segunda y tercera articulacin: matrices 2T4 y 3T4

Departamento de Ingeniera de Sistemas y Automtica

Cuarta articulacin:

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Cambio de sistema de coordenadas del jacobiano


Si el jacobiano se encuentra referido al efector final:
n

1 d J () = n 1

2 d n 2
n

... ...

n d n n
n

Departamento de Ingeniera de Sistemas y Automtica

Se utiliza la matriz de orientacin 0Rn para expresar los vectores de velocidad nv y n al sistema de la base del robot: 2 3
0 0 0

3 1 v =n J () = 4. . .5 n ! n 1 n 4. . .5 . . . nd n 2 3 1 n ... n 4. . .5 n

! =0 Rn n !

v = Rn v
0 n

v =0 Rn
0

n n

1 d

Por tanto, en forma matricial:


0

! = Rn Rn 0

J () =

0 n J () 0 Rn

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: jacobiano SCARA RRPR (MATLAB)


function J=jacob2(Q) L=[60,40]; c=cos(Q); s=sin(Q); % MODELO CINEMTICO DIRECTO. T01=[c(1) -s(1) 0 0; s(1) c(1) 0 0;0 0 1 0;0 0 0 1]; T12=[c(2) -s(2) 0 L(1);s(2) c(2) 0 0;0 0 1 0;0 0 0 1]; T23=[1 0 0 L(2);0 -1 0 0;0 0 -1 -Q(3);0 0 0 1]; T34=[c(4) -s(4) 0 0;s(4) c(4) 0 0;0 0 1 0;0 0 0 1]; % MATRICES PARA LAS FRMULAS DE MOVIMIENTOS DIFERENCIALES. T24=T23*T34; T14=T12*T24; T04=T01*T14; % CLCULO DE LA MATRIZ JACOBIANA REFERIDA A {4}. J4(:,1)=[T14(2,1:3)'*T14(1,4)-T14(1,1:3)'*T14(2,4);T14(3,3)]; % PRIMERA ARTICULACIN. J4(:,2)=[T24(2,1:3)'*T24(1,4)-T24(1,1:3)'*T24(2,4);T24(3,3)]; % SEGUNDA ARTICULACIN. J4(:,3)=[T34(3,1:3)';0]; % TERCERA ARTICULACIN. J4(:,4)=[0;0;0;1]; % CUARTA ARTICULACIN. % TRANSFORMAR LA MATRIZ JACOBIANA AL SISTEMA {0}. R=[T04(1:4,1:3),[0;0;0;T04(3,3)]]; % Matriz de rotacin. J=R*J4;
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Departamento de Ingeniera de Sistemas y Automtica

4. CINEMTICA INVERSA POR MTODOS NUMRICOS


Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Cinemtica inversa
Cinemtica inversa: Encontrar las soluciones articulares para que el efector final alcance una localizacin. Motivacin: La mayora de los manipuladores suelen controlarse en el espacio articular, mientras que la definicin de la tarea se realiza en el espacio cartesiano.

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Mtodo de resolucin numrico


Procedimiento iterativo que trata de resolver la ecuacin:

p = J ()
Se parte de una semilla articular que se modifica en cada ciclo hasta alcanzar un nivel de error tolerable con respecto a la solucin buscada. Algoritmo bsico iterativo:
Funcin =InversoIterativo(p) =Un valor mayor que . Mientras || > hacer T()= CinemticaDirecta(). p=p- ExtraerPosicinOrientacin(T()). J()=CalcularMatrizJacobiana(). =MatrizInversa(J())*p. =+. Fin Mientras. Retornar(). Fin Procedimiento.

Departamento de Ingeniera de Sistemas y Automtica

Problemas: Convergencia del mtodo y clculo de la inversa del jacobiano.


Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Pseudoinversa de la matriz jacobiana


El sistema p = J () debe ser resoluble (El mximo rango de la matriz jacobiana es igual al nmero de incognitas). El en resto de las situaciones se aplicar la pseudo-inversa. Sea n el nmero de grados de libertad del manipulador, m la dimensin del espacio cartesiano y R el rango dela matriz jacobiana:
Departamento de Ingeniera de Sistemas y Automtica
Caso 1: n>m & m=R. Infinitas soluciones, y se escoge la que posee menor norma euclidea mediante la pseudo-inversa a la derecha.

() = J T () [J () J T ()] J () = [J T () J ()] J

Caso 2: n<m & n=R. No existe solucin, y se escoge la que minimiza la expresin ||J()-r|| mediante la pseudo-inversa a la derecha.
1

Caso 3: R<n & R<m. Se aplica el algoritmo de Greville.


Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

J ()

Algoritmo de Greville
Supuesta A, ak es la k-sima columna, Ak la particin de A formada por sus k primeras columnas y n el nmero total de estas.
1. 2. Si a1=[0,,0]T, entonces 1=[0,,0]T sino 1=[a1T . a1]-1 . a1T Para k=2 hasta n hacer
a. b. c. dk=k-1 . ak; ck = ak Ak-1 . dk Si ck=[0,,0]T, entonces bk = [1+dkT . dK]-1 . dkT . k-1, sino bk = [ckT . cK]-1 . ckT Componer k de la siguiente forma:

Departamento de Ingeniera de Sistemas y Automtica

3. Retornar la pseudo inversa como: = n

2 Ak k = 4 A

d k bk 5 ... bk

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Codificacin en MATLAB del algoritmo de Greville


function Amas=greville(A) if abs(sum(A(:,1)))<0.001, a=A(:,1)'; else a=inv(A(:,1)'*A(:,1))*A(:,1)'; end [m,n]=size(A); for k=2:n, d=a*A(:,k); c=A(:,k)-A(:,1:k-1)*d; if (abs(sum(c)))<0.001, b=inv(1+d'*d)*d'*a; else b=inv(c'*c)*c'; end; a=[a-d*b;b]; end Amas=a;
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Primer paso:

Departamento de Ingeniera de Sistemas y Automtica

2.a: Segundo paso:

2.b: 2.c:

Tercer paso:

Ejemplo: SCARA RRPR

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: Codificacin MATLAB (iterativo)


% Main loop of the iterative method. while sum(abs(dq))>0.001, % Computing functions for q1 and q2. c12=cos(q(1)+q(2)); s12=sin(q(1)+q(2)); c1=cos(q(1)); s1=sin(q(1)); s2=sin(q(2)); % Computing p dp=p-[c12*l2+c1*l1;s12*l2+s1*l1];. % Singularities detection. if abs(s2)<0.0001, A=[s12*l2-s1*l1 s12*l2; c12*l2+c1*l1 c12*l2]; Jinv=greville(A); else A=[c12*l2 s12*l2;... -c12*l2-c1*l1 -s12*l2-s1*l1]; Jinv=A./(l1*l2*s2); end; dq=Jinv*dp; % Solving: dp=J*dq q=rem(q+dq,pi2); % Solution in [0,2 rad] W=[W,q]; % Update trajectory end % Final solution for reaching "r. qs=[q;-r(3);rem(q(1)+q(2)-r(4),pi2)];

function [qs,W]=inverse(r,seed) % r : Robot's location to reach. % seed: : First aooximation to the final solution. % qs : Final solution; % W : Trajectory of q1 and q2 for reaching qs l1=60; l2=40; % arm's parameters pi2=2*pi; % 2. p=[r(1);r(2)]; % Position p=(X,Y). dq=ones(size(seed)); % Init q. q=seed(1:2); % Seed. W=q; % Trajectory q1 q2

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: codificacin MATLAB (principal)


SCARA RRPR Inverse Kinematic Model % (Iterative methods) % -------------------------------------- clear all d2r=pi/180; r2d=180/pi; T=forward([90*d2r,100*d2r,20,0]); r=[T(1,4);T(2,4);T(3,4);atan2(T(2,1),T(1,1))]; seed=[pi/4;pi/4]; [qs,W]=inverse(r,seed); iter=1:max(size(W)); plot(iter,W(1,:)*r2d,'k-', iter,W(2,:)*r2d,'k-.'); grid on; set(gca,'XTick',iter); xlabel('Iterations'); ylabel('Degrees'); s=sprintf('Desired robot location: [%3.2f,%3.2f,%3.2f, %3.2f]',r(1),r(2),r(3),r(4)*r2d); title(s); legend('Q1','Q2'); T=forward(qs);

Departamento de Ingeniera de Sistemas y Automtica

function T=forward(Q) l1=60; l2=40; c=cos(Q); s=sin(Q); T01=[c(1) -s(1) 0 0;s(1) c(1) 0 0;0 0 1 0; 0 0 0 1]; T12=[c(2) -s(2) 0 l1;s(2) c(2) 0 0;0 0 1 0; 0 0 0 1]; T23=[1 0 0 l2;0 -1 0 0;0 0 -1 -Q(3);0 0 0 1]; T34=[c(4) -s(4) 0 0;s(4) c(4) 0 0;0 0 1 0; 0 0 0 1]; T=T01*T12*T23*T34;

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ejemplo: resultado
250 Desired robot location: [39.39,53.05,20.00,170.00] Q1 Q2 200

150

Departamento de Ingeniera de Sistemas y Automtica

Degrees
100 50 0 1

4 Iterations

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

5. CONCLUSIONES

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Ideas importantes
La matriz jacobiana es una herramienta cinemtica para el estudio de las velocidades del manipulador. Sus aplicaciones principales:
Departamento de Ingeniera de Sistemas y Automtica Estudio de la movilidad del manipulador. Movimientos adaptativos. Planificacin de velocidades. Cinemtica inversa por mtodos numricos.

Mediante el uso de movimientos diferenciales se puede definir un algoritmo genrico para el clculo del jacobiano. Se puede construir un algoritmo genrico para resolver un manipulador por mtodos numricos. Se cumple que el traspuesto del jacobiano relaciona las fuerzas que se ejercen en el efector final con las que se tienen que ejercer en las articulaciones para que el manipulador quede en una situacin esttica.
Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial

Bibliografa

Craig J. J. (1.989) Introduction to Robotics Mechanics and Control. Second Edition. Adison-Wesley 1.986. ISBN 0-201-09528-9. McKerrow P. J. (1.991) Introduction to Robotics. Addison-Wesley 1.991. ISBN 0-201-18240-8. Paul R. P. (1.981). Robot Manipulators: Mathematics, Programming and Control. M.I.T. Press. ISBN 0-262-16082-X. Sciavicco L., Siciliano B. (1.996). Modeling and Control of Robot Manipulators. Mac Graw-Hill. ISBN 0-07-0572117-8.

Departamento de Ingeniera de Sistemas y Automtica

Ingeniero Industrial/Automtica Electrnica Industrial Robtica Industrial