Prcticas de Robtica utilizando Matlab
Cinemtica de Robots
2.1.- Introduccin
Los robots clsicos presentan una arquitectura antropomrfica serial, semejante al brazo humano. Consisten de una serie de barras rgidas unidas entre s a travs de articulaciones de un grado de libertad del tipo rotacional o prismtica. En general cada articulacin logra su movimiento a travs de un accionamiento de potencia e incluye otros dispositivos como reductores de velocidad, frenos y sensores de posicin o velocidad. Aunque al definir las relaciones cinemticas de un robot no se suelen consideran los aspectos dinmicos, nada ms alejado de la realidad cuando se quiere disear un robot ya que existe una inevitable relacin causa-efecto entre la cinemtica y la dinmica. Nada ms claro resulta que al pensar en las dimensiones de un robot, la longitud de un brazo afecta al cuadrado la inercia de los eslabones y por lo tanto el peso del robot y la potencia requerida en los actuadores. Las arquitecturas de los robots clsicos presentan una serie de propiedades dinmicas y estructurales caracterizadas por una gran rigidez estructural, repetibilidad y elevado peso propio. El elevado peso propio de los robots clsicos limita la capacidad carga til y las velocidades de trabajo, las cuales usualmente estn en torno a los 60 grados/seg. para las primeras tres articulaciones de los robots industriales (robots de soldadura) y 250 grados/seg. para los robots pequeos de altas prestaciones como el STUBLI RX90.
Prctica 2 .- Pg. 1
Prcticas de Robtica utilizando Matlab
Un aspecto importante que refleja las relaciones dinmicas del robot respecto de la carga til que pueden manipular, puede estudiarse en la siguiente tabla. Robot ABB IRB 2000 ABB IRB 4400 ABB IRB 6400/3.0 STUBLI RX 90 GMF S 10 Hitachi M6100 Puma 550 SCARA Adept 3 SCARA GMF A-600 Peso 370 940 1450 120 200 410 63 205 120 Carga til 10 45 75 6 10 10 4 25 6 Repetibilidad 0.100 0.100 0.100 0.002 0.200 0.100 0.100 0.025 0.013 Carga til/peso 0.0270 0.0047 0.0510 0.0500 0.0417 0.0243 0.0063 0.1220 0.0500
Al calcular la cinemtica de los robots clsicos debe considerarse que dependiendo de las dimensiones de sus primeras articulaciones, el peso de los robots de tipo industrial oscila en torno a valores que tienen una relacin en el mejor de los casos de 0.150 (Carga til/peso). Por lo cual, por ejemplo un robot industrial con un alcance de 3.0 metros con capacidad para mover cargas de 75 kg puede tener un peso de 1450 kg (ABB IRB 6400). Las siguientes son algunas recomendaciones que deben tenerse en cuenta al definir la cinemtica de un robot, la cual debe hacerse en consideracin de la dinmica que imponen las dimensiones de las barras que lo forman: El espacio de trabajo del robot debe ser cuidadosamente estudiado para definir el volumen justo de trabajo del robot En un robot de seis grados de libertad rotacional, las primeras tres barras son las que aportan la mayor dinmica debido a su peso. A menudo es posible localizar los primeros tres accionamientos de potencia en la base del robot, pero para lograr esto se debe ser cuidadoso en el uso de mecanismos de cuatro barras que mueven el brazo mas alejado (robot ABB IRB2400). En un robot de seis grados de libertad, las tres primeras articulaciones del robot deben dar las condiciones de posicin y las tres ltimas articulaciones del extremo del robot deben concentrar en un punto de la mano, los tres grados de libertad de orientacin. En esta prctica se van a presentar las herramientas necesarias para resolver los dos problemas fundamentales en el estudio de la cinemtica del robot. El primero de ellos, consiste en determinar la posicin y orientacin del extremo final de la cadena cinemtica conocidos los valores de las coordenadas articulares y las caractersticas geomtricas del robot, y es conocido como problema cinemtico directo. La solucin del problema inverso permite hallar las variables articulares conocida la posicin y orientacin del extremo de la cadena cinemtica. Para la resolucin de estos problemas se utiliza la representacin de Denavit-Hartenberg y las matrices de transformacin homognea.
Prctica 2 .- Pg. 2
Prcticas de Robtica utilizando Matlab
De acuerdo con la estructura del libro, todos los apartados presentan herramientas desarrolladas en MatLab para la solucin de los problemas planteados.
2.2- Cinemtica directa del brazo de un robot manipulador
Las tcnicas que se estudian aqu, se aplican a un manipulador mecnico de cadena abierta y tratan el estudio analtico y el modelado en MatLab de la geometra del movimiento de un robot con respecto a un sistema de referencia fijo como una funcin del tiempo sin considerar la dinmica.
2.2.1 El problema cinemtico directo
El problema cinemtico directo se plantea en trminos de encontrar una matriz de transformacin que relaciona el sistema de coordenadas ligado al cuerpo en movimiento respecto a un sistema de coordenadas que se toma como referencia. Para lograr esta representacin se usan las matrices de transformacin homognea 4x4, la cual incluye las operaciones de traslacin y la orientacin. La matriz de transformacin homognea es una matriz de 4x4 que transforma un vector expresado en coordenadas homogneas desde un sistema de coordenadas hasta otro sistema de coordenadas. Para una descripcin ms amplia acerca de las bases algebraicas de las transformaciones homogneas se recomienda estudiar las referencias: [1] y [2]. La matriz de transformacin homognea tiene la siguiente estructura:
n x matriz de rotacin vector de posicin n y T = = n f1x3 escalado z 0 n s a p T = 0 0 0 1
sx sy sz 0
ax ay az 0
p x p y p z 1
donde los vectores n, s, a, son vectores ortogonales unitarios y p es un vector que describe la posicin x, y, z del origen del sistema actual respecto del sistema de referencia. Para entender las propiedades de la matriz de transformacin homognea nos fijamos en el siguiente grfico.
Prctica 2 .- Pg. 3
Prcticas de Robtica utilizando Matlab
Tj z
Sistema-j p=(10, 4, 3) y
z y
Sistema-i
Figura-2.1. Interpretacin geomtrica de la matriz de transformacin homognea
0 0 1 10 0 1 0 4 i Tj = 1 0 0 3 0 0 0 1
Al analizar las columnas de la submatriz de rotacin de la matriz de transformacin homognea iTj, un observador localizado en el origen de sitema-i, puede ver como estn orientados los ejes x, y, z del sistema-j, adems tambin observa como se ha desplazado en coordenadas cartesianas el origen del sistema-j respecto del origen del sistema de referencia con la informacin del vector de posicin.
2.2.2 La representacin de Denavit-Hartenberg
La representacin de D-H, se aplica a robots de cadena cinemtica abierta y consiste en una serie de reglas para colocar los sistemas de referencia de cada eslabn del robot. Antes de aplicar el mtodo de D-H es importante tener en cuenta los siguientes comentarios: Se parte de una configuracin cualesquiera del robot, si bien es aconsejable colocarlo en una posicin sencilla de analizar. Se numeran los eslabones, asignando el 0 para la base y n-1 para el ltimo eslabn, siendo n el nmero de grados de libertad del robot. El sistema de coordenadas ortonormal dextrgiro de la base (x0, y0, z0) se establece con el eje z0 localizado a lo largo del eje de movimiento de la articulacin 1 y apuntando hacia fuera del hombro del brazo del robot. El sistema de referencia de cada eslabn se coloca al final del mismo, en el extremo de la articulacin a la cual esta conectado el eslabn siguiente. El ngulo desplazamiento de cada eslabn siempre se mide tomando como base el sistema de referencia del eslabn anterior.
Prctica 2 .- Pg. 4
Prcticas de Robtica utilizando Matlab
Al colocar el sistema de referencia del eslabn-i, se deben seguir las siguientes reglas: - El eje zi del sistema de referencia debe quedar alineado a lo largo de la articulacin - di El eje xi debe colocarse con orientacin normal al plano formado por los ejes zi-1 y zi Al establecer los sistemas de coordenadas de la mano se debe tener en cuenta el principio de Piepers en el cual se establece que los tres ltimos sistemas de referencia se intercepten en un punto, lo cual permite obtener una solucin para el problema cinemtico inverso de forma cerrada para estas articulaciones.
Adems de las reglas anteriores la convencin de D-H establece las siguientes condiciones para los dems parmetros geomtricos, de acuerdo a la figura-2.2.
i
Eslabn i-1 Articulacin i Eslabn i
i+1
Articulacin i+1
ai
Eslabn i+1
zi xi
zi-1
xi-1
Figura-2.2. Sistemas de coordenadas para la convencin de D-H.
Cada sistema de coordenadas se establece sobre las siguientes reglas. i: Es el ngulo de la articulacin desde el eje xi-1 hasta el eje xi, medido respecto del eje zi-1, usando la regla de la mano derecha. di: Es la distancia medida desde el origen del sistema i-1, a lo largo del eje zi-1 hasta la interseccin del eje zi-1 con el eje xi. ai: Es la distancia de separacin entre los orgenes de los sistemas de referencia i-1 e i, medida a lo largo del eje xi hasta la interseccin con el eje zi-1. (o la distancia ms corta entre los ejes zi-1 y zi, cuando estos no se interceptan) i: Es el ngulo que separa los ejes zi y zi-1, medido respecto del eje xi
Prctica 2 .- Pg. 5
Prcticas de Robtica utilizando Matlab
Con base en la figura-2.2 y de acuerdo a las reglas de D-H, se determina la siguiente matriz de transformacin homognea:
1 0 i 1 A i = 0 0
0 0 1 0
0 c i 0 s i 0 1 d i 0 0 0 1 0
s i c i 0 0
0 0 1 0 0 0 1 0 0 0 1 0
0 0 a i 1 0 1 0 0 0 c i 0 1 0 0 s i 0 0 1 0 0
0 s i c i 0
0 0 0 0
c i s i 1 A i = i 0 0
c i s i c i c i s i 0
s i s i s i c i c i 0
a i c i a i s i d i 1
Cdigo en Matlab . La funcin DENAVIT realiza los clculos anteriores devolviendo la matriz de transformacin homognea
% DENAVIT Matriz de transformacin homognea. % DH = DENAVIT(TETA, D, A, ALFA) devuelve la matriz de transformacion % homognea 4 x 4 a partir de los parametros de Denavit-Hartenberg % D, ALFA, A y TETA. % % See also DIRECTKINEMATIC. function dh=denavit(teta, d, a, alfa)
dh=[cos(teta) sin(teta) 0 0 -cos(alfa)*sin(teta) cos(alfa)*cos(teta) sin(alfa) 0 sin(alfa)*sin(teta) -sin(alfa)*cos(teta) cos(alfa) 0 a*cos(teta); a*sin(teta); d; 1];
Prctica 2 .- Pg. 6
Prcticas de Robtica utilizando Matlab
2.2.3 Representacin de la cinemtica directa de robots manipuladores
En esta seccin se explican algunas arquitecturas de robots y como construir la
2 d2 x2 z1 1 y2
z2
d3
a2 z3 x3 y1 1 y3 4 4
l4
l1
x1 z0
0 y0 x0
x4 y4
z4
Figura-2.3 Parmetros de D-H para un robot cilndrico
Eslabn 1 2 3 4
i 1 0 0 4
di l1 d2 d3 l4
ai 0 - a2 0 0
i 0 -/2 0 0
Tabla 2.1 Parmetros de D-H para el robot cilndrico de la figura-2.3
Note el lector el signo negativo del parmetro a2 as como la localizacin del origen del sistema de coordenadas (x2, y2, z2) Las variables articulares son en este caso 1, d2, d3, 4
Prctica 2 .- Pg. 7
Prcticas de Robtica utilizando Matlab
Cdigo en Matlab . La funcin DIRECTKINEMATIC resuelve la cinemtica directa de robots de cadena abierta. Para utilizarla debe invocarse junto con el vector de coordenadas articulares Q de n componentes siendo n el nmero de eslabones del robot.
A continuacin se muestra el cdigo fuente utilizado para cada uno de los robots que se estn utilizando como ejemplos. El lector debe notar las modificaciones realizadas en el cdigo, debido al diferente nmero de eslabones de cada robot y a los parmetros D-H de cada robot. Se recomienda que se realicen estos ejemplos como prctica de los conocimientos adquiridos.
Ejemplo 2.3 Cdigo fuente de la funcin DIRECTKINEMATIC para el robot cilndrico de 4 grados de libertad del ejemplo 2.1 Debe notarse que el vector de coordenadas articulares Q representa los 4 grados de libertad del robot, 2 rotacionales y 2 prismticas y se introduce en los parmetros DH como variables. Las dimensiones del robot, introducidas en los parmetros de D-H, son las indicadas en el captulo 1.
% DIRECTKINEMATIC4 Direct Kinematic. % A04 = DIRECTKINEMATIC4(Q) devuelve la matriz de transformacin del % primer sistema de coordenadas al ltimo en funcin del vector Q % de variables articulares. % % See also DENAVIT. function A04 = directkinematic4(q) % Parmetros Denavit-Hartenberg del robot teta = [q(1) 0 0 q(4)]; d = [0.4 q(2) q(3) 0.2 ]; a = [0 -0.1 0 0 ]; alfa = [0 -pi/2 0 0 ]; % Matrices de transformacin homognea entre sistemas de coordenadas consecutivos A01 = denavit(teta(1), d(1), a(1), alfa(1)); A12 = denavit(teta(2), d(2), a(2), alfa(2)); A23 = denavit(teta(3), d(3), a(3), alfa(3)); A34 = denavit(teta(4), d(4), a(4), alfa(4)); % Matriz de transformacin del primer al ltimo sistema de coordenadas A04 = A01 * A12 * A23 * A34;
Prctica 2 .- Pg. 9
Prcticas de Robtica utilizando Matlab
A continuacin se presenta la matriz obtenida para una configuracin en la que todas las coordenadas articulares tienen valor nulo:
q=zeros(4,1) q = 0 0 0 0 T=directkinematic4(q) T = 1.0000 0 0 0.0000 0 -1.0000 0 0 0 -0.1000 1.0000 0.2000 0.0000 0.4000 0 1.0000
Se recomienda analizar la matriz homognea obtenida tal y como se indic en el apartado 2.2.1, comprobando que tanto la posicin como la orientacin del efector final coinciden con lo esperado cuando se introducen las coordenadas articulares del ejemplo.
Ejemplo 2.4 Cdigo fuente de la funcin DIRECTKINEMATIC para el robot rotacional de 6 grados de libertad del ejemplo 2.2 Debe notarse que en el caso particular de un robot enteramente rotacional, las variables articulares representan los parmetros teta de D-H, como se estudi en el apartado 2.2.3 Las dimensiones del robot, introducidas en los parmetros de D-H, son las indicadas en la prctica 1.
Prctica 2 .- Pg. 10
Prcticas de Robtica utilizando Matlab
2.3.- Cinemtica inversa del brazo de un robot manipulador
La cinemtica inversa consiste en hallar los valores de las coordenadas articulares del robot q = [q1 , q2 ,...., qn ]T conocida la posicin y orientacin del extremo del robot. A pesar de que en la literatura [1] y [2] se pueden encontrar diversos mtodos genricos para la resolucin de la cinemtica inversa que pueden ser implementados en computadora, suele ser habitual la resolucin por medio de mtodos geomtricos. La mayor parte de los robots suelen tener cadenas cinemticas relativamente sencillas, que facilitan la utilizacin de los mtodos geomtricos. Para muchos robots, si se consideran slo los tres primeros grados de libertad, se tiene una estructura planar. Este hecho facilita la resolucin del problema. Asimismo los ltimos tres grados de libertad suelen usarse para la orientacin de la herramienta, lo cual permite una resolucin geomtrica desacoplada de la posicin de la mueca del robot y de la orientacin de la herramienta. En esta seccin se va a resolver el problema cinemtico inverso para los dos robots anteriores, utilizando el mtodo geomtrico e implementndolo en Matlab .
Ejemplo 2.5 Solucin del robot cilndrico de 4 grados de libertad. En este caso particular, la solucin geomtrica es inmediata. Se parte de que la posicin del extremo del robot es conocida (px, py, pz) y se va a calcular los valores de las coordenadas articulares. Articulacin 1 Para obtener el valor de 1 (TETA1 en el cdigo de Matlab .) se proyecta el punto del extremo del robot (px, py, pz) sobre el plano (x0, y0, z0) obteniendo una sencilla relacin angular. Sabiendo que 1 es el ngulo entre x0 y x1, se obtienen las siguientes grficas.
Prctica 2 .- Pg. 12
y0
Prcticas de Robtica utilizando Matlab d3+l4
R r
px,py,pz orientacin
a2
1 x0
z0
x0
y0
Figura-2.5 Cinemtica inversa del robot de 4 gdl.
De las que se deducen las siguientes relaciones:
R=
2 px + p2 y
2 r = R 2 a2 = d 3 + l4 py cos = sin = R a sin = 2 cos = R
px R r R
utilizando la funcin atan2 de Matlab se calculan los valores de los ngulos:
= atan 2( sin , cos ) = atan 2( sin , cos )
que permiten el clculo de 1 como -. Articulacin 2 De la figura 2.3 se obtiene la siguiente frmula:
Articulacin 3 De la figura 2.5:
l1 + d 2 = pz d 2 = pz l1
2 r = R 2 a2 = d 3 + l4
Prctica 2 .- Pg. 13
Prcticas de Robtica utilizando Matlab
Articulacin 4 Para calcular la ltima articulacin se necesita el clculo previo del sistema de referencia (x3, y3, z3), que se resolver mediante la cinemtica directa explicada en el ejemplo 2.3. Dado que el vector a de aproximacin es necesariamente paralelo a z4 se deben cumplir las siguientes relaciones:
y3 x4 y4 4 x3
sin 4 = ny3
4 = atan2(sin 4 , cos 4 )
cos 4 = sy3 donde n y s son vectores de orientacin del extremo del robot.
Cdigo en Matlab . La funcin INVERSEKINEMATIC4 resuelve la cinemtica inversa del robot cilndrico de 4 gdl. Para ello toma como parmetros la matriz homognea T, que representa la orientacin y posicin del extremo del robot y devuelve el vector de coordenadas articulares.
% % % % % %
Q = INVERSEKINEMATIC4(T) devuelve el vector de coordenadas articulares correspondiente a la solucin cinemtica inversa de la mano del manipulador en la posicin y orientacin expresadas en la matriz T. See also DIRECTKINEMATIC4, DENAVIT.
function q = inversekinematic4(T) p = T(1:3,4); % Posicin de la mano del manipulador
% Inicializacin de las variables articulares a calcular q1 = 0; q2 = 0; q3 = 0; q4 = 0; % Parmetros Denavit-Hartenberg del robot teta = [q1 0 0 q4 ]; d = [0.4 q2 q3 0.2]; a = [0 -0.1 0 0 ]; alfa = [0 -pi/2 0 0 ]; % Solucin de la primera articulacin: q1 R = sqrt(p(1)^2+p(2)^2); r = sqrt(R^2-a(2)^2); sphi = -p(1)/R; cphi = p(2)/R; phi = atan2(sphi, cphi);
Prctica 2 .- Pg. 14
Prcticas de Robtica utilizando Matlab
sbeta = -a(2)/R; cbeta = r/R; beta = atan2(sbeta, cbeta); q1 = phi - beta; % Solucin de la segunda articulacin: q2 q2 = p(3) - d(1); % Solucin de la tercera articulacin: q3 q3 = r - d(4); % Solucin de la cuarta articulacin: q4 % Clculo de la matriz de transformacin A03 A01 = denavit(q1, d(1), a(1), alfa(1)); A12 = denavit(teta(2), q2, a(2), alfa(2)); A23 = denavit(teta(3), q3, a(3), alfa(3)); A03 = A01 * A12 * A23; y3 = A03(1:3,2); sq4 = dot(T(1:3,1), y3); cq4 = dot(T(1:3,2), y3); q4 = atan2(sq4, cq4); % Vector orientacin n: T(1:3,1) % Vector orientacin s: T(1:3,2)
% Vector de variables articulares q = [q1 q2 q3 q4]';
Se observa como la cinemtica directa est incluida en los clculos necesarios para obtener la matriz 0A3. En el ejemplo mostrado a continuacin se puede comprobar como despus de asignar un vector de coordenadas articulares aleatorio, y obtener la matriz homognea del extremo de robot correspondiente a este vector, si sobre esta matriz se aplica la funcin INVERSEKINEMATIC4 se obtiene el vector q original.
Prctica 2 .- Pg. 15
Prcticas de Robtica utilizando Matlab
q=rand(4,1) q = 0.8913 0.7621 0.4565 0.0185 T=directkinematic4(q) T = 0.6283 0.7778 -0.0185 0 -0.0116 -0.0144 -0.9998 0 -0.7779 0.6284 0.0000 0 -0.5735 0.3347 1.1621 1.0000
inversekinematic4(T) ans = 0.8913 0.7621 0.4565 0.0185
Prctica 2 .- Pg. 16
Prcticas de Robtica utilizando Matlab
EJERCICIOS PROPUESTOS Se pide implementar las funciones PLANIFICA4 y ANIMACIN4 para el ejemplo con el robot prismtico de 4 gdl y realizar una animacin entre dos puntos del espacio de trabajo del robot.
Prctica 2 .- Pg. 30