Beruflich Dokumente
Kultur Dokumente
Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
Resumen
En este trabajo se presenta un método para el modelado de cadenas cinemáticas de robots que salva las dificultades asociadas
a la elección de los sistemas de coordenadas y obtención de los parámetros de Denavit-Hartenberg. El método propuesto parte
del conocimiento de la posición y orientación del extremo del robot en su configuración de reposo, para ir obteniendo en qué se
transforman éstas tras los sucesivos movimientos de sus grados de libertad en secuencia descendente, desde el más alejado al más
cercano a su base. Los movimientos son calculados en base a las Matrices de Desplazamiento, que permiten conocer en que se
transforma un punto cuando éste es desplazado (trasladado o rotado) con respecto a un eje que no pasa por el origen. A diferencia
del método de Denavit-Hartenberg, que precisa ubicar para cada eslabón el origen y las direcciones de los vectores directores de
los sistemas de referencia asociados, el método basado en las Matrices de Desplazamiento precisa solo identificar el eje de cada
articulación, lo que le hace más simple e intuitivo que aquel. La obtención de las Matrices de Desplazamiento y con ellas del
Modelo Cinemático Directo a partir de los ejes de la articulación, puede hacerse mediante algunas simples operaciones, fácilmente
programables. Copyright © 2012 CEA. Publicado por Elsevier España, S.L. Todos los derechos reservados.
Palabras Clave:
Modelo cinemático de robots, Denavit-Hartenberg, fórmula de rotación de Rodrigues.
© 2012 CEA. Publicado por Elsevier España, S.L. Todos los derechos reservados
http://dx.doi.org/10.1016/j.riai.2012.09.004
Documento descargado de http://www.elsevier.es el 21/08/2015. Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
372 A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382
entre el sistema base y el sistema asociado al extremo del robot, do solo a conocimientos básicos de álgebra lineal y a simples
que expresa la localización de su extremo en función de las qi consideraciones vectoriales, deduce una expresión final del Mo-
(modelo cinemático directo). delo Cinemático equivalente a la que se llega con el Producto
Paul (Paul and Shimano, 1978; Paul, 1981) y otros inves- de Matrices Exponenciales, pero sin precisar del uso de éstas,
tigadores divulgaron y popularizaron el método que, finalmen- sistematizando y simplificando notablemente la obtención del
te conocido como método de Denavit Hartenberg (DH), se ha modelo cinemático de robots, con respecto al método de DH.
convertido en el procedimiento estándar para el modelado ci- El método propuesto utiliza las denominadas Matrices de
nemático de robots, siendo incluso utilizados los parámetros Desplazamiento (Di ), de fácil obtención a partir de la identifi-
DH para la definición de cadenas cinemáticas en herramientas cación de los ejes de cada articulación, prescindiendo del esta-
de simulación (Corke, 1996), (Jaramillo-Botero et al., 2006) y blecimiento de los sistemas de coordenadas y de la obtención de
ampliándose su uso al análisis dinámico. los parámetros DH, foco de dificultades y errores en el método
Conceptualmente el método DH es sencillo, basta con apli- de Denavit-Hartenberg.
car unos conocimientos elementales de álgebra lineal. Pero su Frente al método de DH, el método propuesto resulta más
uso no suele estar exento de cierta dificultad debido a la com- simple de comprender y de aplicar, evitando la necesidad de
plejidad espacial ligada a la selección de la ubicación de los tener que memorizar y utilizar los criterios que llevan a la se-
sistemas de coordenadas asociados a cada barra. lección de los sistemas de coordenadas de Denavit Hartenberg
En cualquier caso, la popularidad del método de DH ha y a la obtención de los correspondientes parámetros.
eclipsado otras alternativas que, posiblemente precisando de Se aspira a que tras el conocimiento del algoritmo y su de-
unas bases algébricas menos difundidas que el uso de las ma- mostración, éste constituya una alternativa competitiva e inclu-
trices de transformación homogénea para representar cambios so preferida al método de Denavit-Hartenberg para el modelado
de base y sin notables ventajas frente a ésta, han tenido menor de cadenas cinemáticas robóticas.
aceptación que el método de DH. Se ha optado por estructurar el presente artı́culo comenzan-
Los números duales (Veldkamp, 1976), utilizados dentro do con la exposición del método (apartado 2), previamente a su
del contexto matricial, permiten expresar las matrices DH en justificación. Esta decisión tiene por objeto el mostrar al lector,
sus equivalentes matrices de números duales (3x3), siendo apli- desde el primer momento, las ventajas del método propuesto.
cables a la solución del modelo cinemático del robot (McCarthy, El algoritmo se describe tanto literalmente como mediante su
1986), (Jin and Xiaorong, 2010). codificación en Matlab ©.
Los cuaternios, si bien permiten representar rotaciones de Tras especificar el algoritmo y aplicarlo en un sencillo ro-
una manera más compacta que las matrices de rotación, no per- bot de ejemplo para facilitar su comprensión, se procede en el
miten por sı́ solos representar traslaciones. Sin embargo, su ex- apartado 3 a su demostración. En ésta, la única dificultad, pura-
tensión a los cuaternios duales, en los que cada uno de los cuatro mente geométrica, es la demostración de la fórmula de Rodri-
componentes del cuaternio está formada por un número dual, gues, que si bien es ampliamente conocida, se ha incluido en el
permite el uso del álgebra de cuaternios para representar ro- artı́culo para su mejor disposición. La demostración del método
taciones y traslaciones, constituyendo ası́ una alternativa válida propuesto precisa de la extensión de la fórmula de Rodrigues a
para el modelado de cadenas cinemáticas (Perez and McCarthy, rotaciones en torno a ejes que no pasan por el origen, lo que se
2004). hace mediante simples razonamientos geométricos.
En general los números duales permiten expresar un movi- En el apartado 4 se muestra como las Matrices de Despla-
miento de desplazamiento (traslación y rotación) a lo largo de zamiento permiten, con la misma metodologı́a habitualmente
un eje, denominado “Movimiento de tornillo” o “Screw” (en su utilizada con las matrices de DH (Paul, 1981), obtener el mo-
denominación en inglés), pudiendo ser este tipo de movimien- delo cinemático inverso.
tos manejados mediante diferentes recursos algebraicos. Una El apartado 5 extiende el uso del método a la obtención del
comparación de estas técnicas y su eficiencia computacional modelo diferencial, calculando las componentes de la matriz
puede encontrarse en (Funda, 1988), (Funda and Paul, 1990). Jacobiana a partir de las Matrices de Desplazamiento genera-
El método denominado como Producto de Exponenciales lizadas. Con esto, la utilización del método MD al modelado
(PoE por sus siglas en inglés) (Brockett, 1984), (Murray et al., cinemático de robots se equipara a la del método DH (Modelo
1994), utiliza la representación exponencial de una serie matri- cinemático directo, inverso y diferencial).
cial para representar desplazamientos de tornillo, cuya adecua- En el apartado 6 se muestran las ventajas del método apli-
da combinación permite la obtención del modelo cinemático de cado a dos robots de cinemática complicada. El primero se trata
robots. Este método evita la compleja selección de los sistemas de un robot redundante de 7 grados de libertad. El segundo es
de coordenadas DH, pero su justificación y deducción es menos un robot multicadena concretado en un robot bı́pedo. En am-
intuitiva y más compleja que el uso de las nociones básicas de bos casos se muestran los sistemas y parámetros de Denavit-
álgebra asociadas al método de DH, por lo que su difusión es Hartenberg y los ejes y parámetros de las Matrices de Despla-
escasa, quedando limitado a algunos desarrollos de robots espe- zamiento.
cialmente complejos como es el caso de los robots humanoides Se supone que el lector está familiarizado con el método de
(Arbulú, 2009). Denavit-Hartenberg (Ollero, 2001), (Spong et al., 2005), (Ba-
En este artı́culo se presenta y demuestra un método para la rrientos et al., 2007).
obtención del modelo cinemático de un robot que, recurrien-
Documento descargado de http://www.elsevier.es el 21/08/2015. Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382 373
matriz T 0 ).
374 A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382
2. Obtención de los 4 parámetros de DH (θ, d, a, α) 2. Obtención de los parámetros que definen los ejes y de la
localización del robot en reposo con el robot situado en su
a. Encontrar los valores del giro en z, traslación en z, tras- posición cero (qi = 0, ∀i)
lación en x y giro en x, necesarios para pasar del siste-
ma asociado a un eslabón al del siguiente. a. Identificar el eje
de cada articulación (mediante su vec-
tor director k y un punto cualquiera del mismo p )
b. Identificar la matriz de transformación homogénea T 0
que define la localización de su extremo
3. Obtención de las matrices de DH: i−1 Ai mediante expresión 3. Obtención de las matrices de Desplazamiento: Di mediante
conocida expresión conocida (fórmula de Rodrigues generalizada)
4. Obtención del MCD como producto de las matrices i−1 Ai 4. Obtención del MCD como producto de las matrices Di y la
matriz T 0
D-1. Se comienza obteniendo la Matriz de Transformación Ho- rrespondientes matrices Di . En el presente ejemplo los 3
mogénea T 0 que define la localización del extremo del grados de libertad son de rotación. Las matrices Di toman
robot, cuando qi = 0 para todo i. la forma1 :
⎡ ⎤
⎢⎢⎢0 0 1 L2 + L3 ⎥⎥⎥ ⎡ ⎤
⎢⎢⎢1 0 0 0 ⎥⎥⎥⎥ ⎢⎢⎢C1 −S 1 0 0⎥⎥
T 0 = ⎢⎢⎢⎢ ⎥ ⎢⎢⎢S 0 0⎥⎥⎥⎥
⎥
⎢⎣⎢0 1 0 L1 ⎥⎥⎥⎦⎥ D1 = ⎢⎢⎢⎢ 1
C1
⎥
1 0⎥⎥⎥⎥⎦
(1)
0 0 0 1 ⎢⎢⎣ 0 0
0 0 0 1
Las tres primeras columnas representan las coordenadas
de los vectores Xn , Yn , Zn en el sistema S 0 = {O0 , X0 , Y0 , ⎡ ⎤
⎢⎢⎢C2 0 −S 2 L1 S 2 − L2 (C2 − 1) ⎥⎥
Z0 }. La cuarta columna representa las coordenadas de On , ⎢⎢⎢ 0 ⎥⎥⎥
1 0 0 ⎥⎥⎥
D2 = ⎢⎢⎢⎢
−L2 S 2 − L1 (C2 − 1)⎥⎥⎥⎥⎦
(2)
origen del sistema S n y punto extremo del robot, en el ⎢⎢⎣S 2 0 C2
sistema de la base S 0 . 0 0 0 1
D-2.1. y D-2.2: Se obtienen los valores que definen los ejes de ⎡ ⎤
⎢⎢⎢1 0 0 0 ⎥⎥⎥
cada articulación, siendo estos: ⎢⎢⎢0 C −S 3 L1 S 3 ⎥⎥⎥⎥
D3 = ⎢⎢⎢⎢ 3
⎥
L1 (C3 − 1)⎥⎥⎥⎥⎦
(3)
⎢⎢⎣0 S 3 C3
Eje Vector director ki Punto cualquiera del eje pi
0 0 0 1
1 k1 = [0, 0, 1] p1 = [0, 0, 0]
2 k2 = [0, −1, 0] p2 = [L2 , 0, L1 ] Estas expresiones han sido obtenidas mediante el códi-
3 k3 = [1, 0, 0] p3 = [0, 0, L1 ] go Matlab © incluido en la Tabla 3, que implementa los
puntos 2.3 y 3 del algoritmo.
En la Figura 1 se han marcado los vectores libres ki y
los puntos seleccionados de cada eje pi . Nótese que pi es 1 Se emplea la notación habitual en robótica que representa a las funciones
cualquier punto del eje de la articulación i, procurándose seno y coseno por las letras S y C, de modo que S i = sen(qi ) y Ci = cos(qi )
por ello escoger el que resulte más cómodo.
D-2.3. Una vez obtenidos los vectores ki y pi se obtienen las co-
Documento descargado de http://www.elsevier.es el 21/08/2015. Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382 375
D-3. El MCD se obtiene como el producto de las matrices Di continuación basta con ir calculando en qué se transforma T 0
por la matriz T 0 , resultando: cuando se le somete sucesivamente a los desplazamientos ori-
⎡ ⎤ ginados por cada uno de los grados de libertad desde qn hasta
⎢⎢⎢ x⎥⎥
⎥ q1 . Estos desplazamientos consisten en traslaciones o giros a lo
⎢⎢⎢ R y⎥⎥⎥⎥
T 4 = D1 .D2 .D3 .T 0 = ⎢⎢⎢⎢ ⎥ largo de los ejes de la correspondiente articulación, que en ge-
z ⎥⎥⎥⎥⎦
(4)
⎢⎢⎣ neral no pasaran por el origen. El resultado es el valor de T 0 tras
0 0 0 1 haber sufrido los desplazamientos definidos por todos los gra-
dos de libertad y por lo tanto la nueva localización del extremo
Siendo:
⎡ ⎤ del robot T n en función de los qi o Modelo Cinemático Directo.
⎢⎢⎢−S 1C3 − C1 S 2 S 3 S 1 S 3 − C1 S 2C3 C1C2 ⎥⎥⎥
⎢ ⎥ Es preciso por lo tanto establecer cual es el resultado de
R = ⎢⎢⎢⎢−C1C3 − S 1 S 2 S 3 −C1 S 3 − S 1 S 2C3 S 1C2 ⎥⎥⎥⎥
⎣ ⎦ desplazar un punto mediante un eje cualquiera, definido por su
C2 S 3 −C2C3 S2
⎡ ⎤ ⎡ ⎤ vector dirección ki y por un punto cualquiera del mismo pi . Este
⎢⎢⎢ x⎥⎥⎥ ⎢⎢⎢C1 (L2 + L3C2 )⎥⎥⎥ movimiento va a venir definido por la Matriz de Desplazamien-
⎢⎢⎢ ⎥⎥⎥ ⎢⎢⎢ ⎥
⎢⎢⎣y⎥⎥⎦ = ⎢⎢⎣S 1 (L2 + L3C2 )⎥⎥⎥⎥⎦ to.
z L1 + L3 S 2
3.1. Matriz de Desplazamiento generalizado
Tabla 3: Código en Matlab © para resolver los pasos D-2.3 y D-3 La Matriz de Desplazamiento generalizada es una matriz de
por el método de las Matrices de Desplazamiento (El código se ha transformación homogénea D (4x4) que relaciona las coordena-
particularizado para el caso de robots con un máximo de 6 grados de das de un punto r con las del punto s obtenido por la traslación
libertad. Puede ser fácilmente ampliable a cualquier número de grados o rotación del primero a lo largo de un eje k que no pase por el
de libertad sin mas que aumentar el número de valores simbólicos qi y origen.
del vector simbólico qq -2 primeras lı́neas-)
⎡ ⎤ ⎡ ⎤
⎢⎢⎢ s x ⎥⎥⎥ ⎢⎢⎢r x ⎥⎥⎥
⎢⎢⎢⎢ sy ⎥⎥⎥⎥ ⎢⎢r ⎥⎥
⎢⎢⎢ ⎥⎥⎥ = D. ⎢⎢⎢⎢⎢ y ⎥⎥⎥⎥⎥ (5)
1 function T=MCD MD (kk,pp,T0,tipo,n) ⎢⎢⎣ sz ⎥⎥⎦ ⎢⎢⎣ rz ⎥⎥⎦
2 % kk(3,n) coordenadas del vector director ... 1 1
del eje de la articulacion expresadas en ...
{S0}, con el robot situado en qi=0 En el caso de tratarse de una traslación de longitud d, en la
3 % pp(3,n) coordenadas de un punto del eje de ...
dirección del vector k = [k x , ky , kz ], la relación es trivial, estan-
la articulacion expresadas en {S0}, con ...
el robot situado en qi=0 do la matriz de desplazamiento definida por la matriz:
4 % T0(4,4) MTH del sistema de coordenadas del ... ⎡ ⎤
extremo {Sn} expresado en {S0}, con el ... ⎢⎢⎢1 0 0 d.k x ⎥⎥
⎥
robot situado en cero qi=0 ⎢⎢⎢0 1 0 d.ky ⎥⎥⎥⎥
D = . ⎢⎢⎢⎢ ⎥
d.kz ⎥⎥⎥⎦⎥
% tipo(1,n) vale 0 si el gdl es de rotacion ... (6)
⎢⎢⎣0 0 1
5
y 1 si es de traslacion
6 % n: numero de gdl 0 0 0 1
7 syms q1 q2 q3 q4 q5 q6 real;
8 qq=sym([q1, q2, q3, q4, q5, q6]); Para el caso de rotación, antes de obtener la matriz D que
9 T=T0; define una rotación de ángulo θ alrededor de un eje k que no
10 I=eye(3); pasa por el origen, es preciso encontrar la expresión de D para el
11 for i=n:−1:1
12 k=kk(i,:)'; p=pp(i,:)'; q=qq(i);
caso particular de que el eje de rotación pase por el origen. Esta
13 if tipo(i)==0 matriz viene dada por la fórmula de Rodrigues, que se expone
14 K=[0 −k(3) k(2);k(3) 0 −k(1);−k(2) ... y demuestra a continuación.
k(1) 0];
15 R=I*cos(q)+k*k'*(1−cos(q))+K*sin(q);
16 D=[R,(I−R)*p;[0 0 0 1]]
3.1.1. La fórmula de Rotación de Rodrigues
17 else Si bien la demostración de la fórmula de Rodrigues, puede
18 D=[eye(3),w*q;[0 0 0 1]] encontrarse en numerosas fuentes (Koks, 2006), se reproduce
19 end
aquı́ para mayor comodidad del lector.
20 T=simple(D*T);
21 end La Figura 2 representa un vector r que, una vez rotado un
22 end ángulo θ, en torno al eje definido por el vector unitario k que
pasa por el origen O, se convierte en el vector s.
El cı́rculo de la Figura 2a se muestra abatido en la Figura
2b. Éste se encuentra contenido en el plano perpendicular al eje
3. Demostración del Algoritmo de rotación que pasa por el extremo del vector r. El punto O es
el corte del vector de giro k con dicho plano.
Para demostrar el algoritmo propuesto se debe partir de la está en la dirección del vector k y su longitud
El vector OO
matriz de transformación homogénea T 0 que define la locali-
es la proyección del vector r sobre dicho vector. Por lo tanto
zación (posición y orientación) del extremo del robot, cuando
puede expresarse como:
éste se encuentra en la posición cero (qi = 0 para todo i). A
Documento descargado de http://www.elsevier.es el 21/08/2015. Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
376 A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382
s = R.r
Con:
O' kxr
kxr w
Ɵ R = Icos(θ) + kkT (1 − cos(θ)) + skew(k)sen(θ) (16)
z k v
w Ɵ
r v
Donde I es la matriz identidad (3x3).
O
s T
y El producto del vector columna k = k x ky kz por su
x traspuesto da lugar a una matriz (3x3).
(a) (b)
La matriz skew(k) se obtiene como la matriz antisimétrica
que, multiplicada por el vector r, da como resultado que k × r,
Figura 2: Rotación en torno a un eje que pasa por el origen estando definida por:
⎡ ⎤
⎢⎢⎢ 0 −kz ky ⎥⎥⎥
⎢
⎢ ⎥
skew(k) = ⎢⎢⎢ kz 0 −k x ⎥⎥⎥⎥ (17)
= (k.r)k ⎣ ⎦
OO (7) −ky k x 0
Los vectores v y w
están definidos como: Por lo tanto, utilizando coordenadas homogéneas como en
el caso de la expresión (6), el resultado de rotar el vector r un
= r − (k.r)k
v = r − OO (8) ángulo θ alrededor de un eje k que pasa por el origen, es (fórmu-
= s − (k.r)k la matricial de Rodrigues):
= s − OO
w (9)
⎡ ⎤ ⎡ ⎤
El producto vectorial k ×r está contenido en el cı́rculo, pues ⎢⎢⎢ s x ⎥⎥⎥ ⎢⎢⎢r x ⎥⎥⎥
⎢⎢⎢⎢ sy ⎥⎥⎥⎥ ⎢⎢r ⎥⎥
k es unitario. Además es perpendicular a v, pues ⎢⎢⎢ ⎥⎥⎥ = D. ⎢⎢⎢⎢⎢ y ⎥⎥⎥⎥⎥ (18)
⎢⎢⎣ sz ⎥⎥⎦ ⎢⎢⎣ rz ⎥⎥⎦
k × v = k × r − k.r k = k × r (10) 1 1
con
Atendiendo ahora al cı́rculo se tiene (Figura 2b) que las pro-
yecciones del vector w sobre los vectores v y k × r, serán res- R 03×1
pectivamente cos(θ) y sen(θ) (nótese que las longitudes de w, v D= (19)
01×3 1
y k × r son las mismas).
Estando R definido por la ecuación (16).
Por lo que w se podrá poner como:
En ocasiones la expresión de la fórmula matricial de Rodri-
gues puede encontrarse como:
= v.cos(θ) + k × r.sen(θ)
w (11)
Sustituyendo (8) en (11) se obtiene: 2
R = I + skew(k) (1 − cos(θ)) + skew(k)sen(θ) (20)
= (r − (k.r)k).cos(θ) + k × r.sen(θ)
w (12)
Expresión que se puede comprobar es equivalente a (16), a
Utilizando (9) y considerando (12) se llega a: partir de la igualdad:
2
= s − (k.r)k ⇒
= s − OO
w skew(k) = k.kT − I (21)
+ (k.r)k = (r − (k.r)k).cos(θ) + k ×r.sen(θ) + (k.r)k (13)
s = w que se puede verificar por simple desarrollo de ambos miem-
Desarrollando y agrupando términos: bros de la misma.
A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382 377
378 A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382
4.2. Ejemplo de obtención del MCI mediante MD Se deben por lo tanto obtener estas aportaciones para conocer
Para el robot de la Figura 1, se tiene que del elemento (2,4) la columna J j .
de la expresión matricial: Para ello se distinguirán los 3 primeros elementos de J j ,
correspondientes a la aportación a la velocidad de traslación de
(D1 )−1 T 4 = D2 .D3 .T 0 (29) los 3 últimos, correspondientes a la aportación a la velocidad de
rotación.
es posible obtener:
J
py J j = vj (34)
pyC1 − p x S 1 = 0 → q1 = arctg (30) Jw j
px
donde Jv j y Jw j serán respectivamente, las componentes x, y,
A continuación la expresión: z de la contribución de q̇ j a las velocidades de traslación (v) y
rotación (w) del extremo del robot.
(D2 )−1 (D1 )−1 T 4 = D3 .T 0 (31) La Figura 4 representa al grado de libertad j aislado del
permite obtener q2 igualando los elementos (3,4), con el re- resto, cuando el resto de los grados de libertad qi , con i j, se
sultado de: mantienen invariables.
Junto a la articulación j se representan los sistemas de refe-
⎛ ⎞
⎜⎜⎜ ⎟⎟⎟ rencia del origen {O0 , X0 , Y0 , Z0 } y del extremo {On , Xn , Yn , Zn },
⎜⎜⎜ pz − L1 ⎟⎟⎟
q2 = arctg ⎜⎜⎜ ⎟⎟ (32) ası́ como el eje que define el movimiento de la articulación j,
⎝⎜ ± p2 + p2 − L2 ⎟⎠⎟ dado por el vector director kj y un punto cualquiera del mismo
x y
pj . Estos se obtienen como resultado de desplazar el vector k j y
La expresión de q3 se puede obtener también de (31), igua- el punto p j que definı́an el eje de la articulación en la posición
lando el cociente de los elementos (3,1) y (2,1), dando por re- cero del robot, mediante el movimiento de los grados de libertad
sultado: anteriores (q1 , . . . q j−1 ) a la posición considerada. Su expresión
⎛ ⎞ se podrá obtener a partir de las matrices de Desplazamiento Di
⎜⎜⎜ n xC1 + ny S 1 S 2 − nzC2 ⎟⎟⎟ como:
q3 = arctg ⎜⎜⎝ ⎜ ⎟⎟⎟
n x C 1 − ny S 1 ⎠
kj = R1 .R2 . . . R j−1 .k j (35)
pj p
5. Modelo Diferencial = D1 .D2 . . . D j−1 . j (36)
1 1
EL modelo Diferencial es de gran interés para el control del Donde se debe tener en cuenta que los vectores directores
robot. Se va mostrar a continuación como es posible obtener el kj son vectores libres, por lo que solo se ven afectados de las
Modelo Diferencial a partir de las MD, poniéndolo en práctica rotaciones Ri incluidas en los desplazamientos Di , que quedan
sobre el robot de la Figura 1. definidos por las correspondientes matrices de rotación Ri (3x3)
de la matriz de desplazamiento (ecuación (16)). Por su parte, los
5.1. Obtención del modelo diferencial mediante MD vectores de posición pj sı́ se ven afectados del desplazamiento
El modelo diferencial permite relacionar las velocidades (q̇1 , completo (rotación y traslación) por lo que debe emplearse la
q̇2 , ..., q̇n o momentos en las articulaciones (τ1 , τ2 , . . . , τn ), con matriz de desplazamiento Di y utilizar su expresión en coorde-
las velocidades de traslación y rotación en el extremo (v x , vy , nadas homogéneas.
vz , w x , wy , wz ) o fuerzas y momentos en el extremo del robot Se representan también los vectores j pe y 0 pe que corres-
(F x , Fy , Fz , M x , My , Mz ). Dicha relación viene dada por la ma- ponden respectivamente a los vectores que unen un punto del
triz Jacobiana (J) según las correspondientes relaciones: eje de la articulación j y el origen del sistema asociado a la
⎡ ⎤ base con el extremo del robot.
⎢⎢⎢ v x ⎥⎥⎥ ⎡ ⎤ Establecidos el vector director k j y un punto p j que define
⎢⎢ ⎥⎥ ⎢⎢⎢q̇1 ⎥⎥⎥
⎢⎢⎢⎢ vy ⎥⎥⎥⎥ ⎢⎢⎢q̇ ⎥⎥⎥ el eje de la articulación j, las velocidades lineal y angular origi-
v ⎢⎢ v ⎥⎥ ⎢⎢ 2 ⎥⎥
V= = ⎢⎢⎢⎢⎢ z ⎥⎥⎥⎥⎥ = J ⎢⎢⎢⎢⎢ . ⎥⎥⎥⎥⎥ (33) nadas en el extremo como consecuencia del movimiento de q j
w ⎢⎢⎢w x ⎥⎥⎥ ⎢⎢⎢ . ⎥⎥⎥ pueden obtenerse como:
⎢⎢⎢w ⎥⎥⎥ ⎢⎣ ⎥⎦
⎢⎣ y ⎥⎦ q̇n
wz Caso de grado de libertad de rotación:
Las columnas de la matriz Jacobiana se pueden obtener a
v = k j × j pe .q̇ j (37)
partir de las matrices de Desplazamiento, de un modo equiva-
lente al utilizado con las matrices Denavit Hartenberg. = k j .q̇ j
w (38)
Para ello, debe considerarse que los 6 elementos de la co-
lumna j de la matriz Jacobiana están formados por la aportación Caso de grado de libertad de traslación.
de la velocidad de la articulación, a la velocidad V del extremo.
v = k j .q̇ j (39)
Documento descargado de http://www.elsevier.es el 21/08/2015. Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382 379
=0
w (40) ⎡ ⎤ ⎡ ⎤
⎢⎢⎢0⎥⎥⎥ ⎢⎢⎢0⎥⎥⎥
donde el vectores k j está definido por (35) y el vector j pe se k1 = ⎢⎢⎢⎢0⎥⎥⎥⎥ ⎢ ⎥
p1 = ⎢⎢⎢⎢0⎥⎥⎥⎥
⎢⎣ ⎥⎦ ⎣ ⎦
puede obtener como (Figura 4): 1 0
⎡ ⎤ ⎡ ⎤
⎢⎢⎢ S 1 ⎥⎥⎥ ⎢⎢⎢L2C1 ⎥⎥⎥
⎢
k2 = ⎢⎢⎢−C1 ⎥⎥⎥⎥ ⎢⎢⎢ ⎥
p2 = ⎢⎢ L2 S 1 ⎥⎥⎥⎥
qj ⎢⎣ ⎥⎦ ⎣ ⎦
1 L1
v
⎡ ⎤ ⎡ ⎤
⎢⎢⎢C1C2 ⎥⎥⎥ ⎢⎢⎢−L2C1 (C2 − 1)⎥⎥⎥
z
On
k3 = ⎢⎢⎢S 1C2 ⎥⎥⎥⎥
⎢ ⎢⎢⎢ ⎥
p3 = ⎢⎢−L2 S 1 (C2 − 1)⎥⎥⎥⎥
y
0
pe
z0 ⎢⎣ ⎥⎦ ⎣ ⎦
x
O0 j
w C2 L1 − L2 S 2
pe
y0 ⎡ ⎤
x0 pj ⎢⎢⎢C1 (L2 + L3C2 )⎥⎥⎥
⎢ ⎥
1
pe = ⎢⎢⎢⎢S 1 (L2 + L3C2 )⎥⎥⎥⎥
kj ⎣ ⎦
L2 + L3 S 2
⎡ ⎤
⎢⎢⎢L3C1C2 ⎥⎥⎥
Figura 4: Efecto de la velocidad articular sobre el extremo del robot ⎢⎢⎢ ⎥
2
pe = ⎢⎢ L3 S 1C2 ⎥⎥⎥⎥
⎣ ⎦
L3 S 2
j
pe =0 pe − p j (41) ⎡ ⎤
⎢⎢⎢(L2 + L3 )C1C2 ⎥⎥⎥
⎢ ⎥
p j quedó definido en (36) y pe es el vector de posición pe = ⎢⎢⎢⎢(L2 + L3 )S 1C2 ⎥⎥⎥⎥
j 3
⎣ ⎦
del extremo del robot cuando se han movido los n grados de (L2 + L3 )S 2
libertad por lo que tendrá como expresión la dada en la columna
Y aplicando la expresión (43) se obtiene la Jacobiana geomé-
4 de la matriz del Modelo Cinemático Directo (27):
trica del robot:
0
p j = T n (1 : 3, 4) (42) ⎡ ⎤
⎢⎢⎢−S 1 (L2 + L3C2 ) −L3C1 S 2 0 ⎥⎥
⎥
⎢⎢⎢ C (L + L C ) −L3 S 1 S 2 0 ⎥⎥⎥⎥⎥
Por lo tanto la columna j de la matriz Jacobiana se ob- ⎢⎢⎢ 1 2 3 2
tendrá como: ⎢⎢⎢
⎢ 0 L3C2 0 ⎥⎥⎥⎥⎥
Ji = ⎢⎢⎢ ⎥
⎢⎢⎢ 0 S1 C1C2 ⎥⎥⎥⎥
⎢⎢⎢ ⎥
⎧ ⎡ ⎤ ⎢⎣ 0 −C1 S 1C2 ⎥⎥⎥⎥
⎪ ⎢⎢⎢k j × j pe ⎥⎥⎥ ⎦
⎪
⎪
⎪ ⎢⎣ ⎥⎦ grado de libertad de rotación 1 0 S2
⎪
⎪
⎨
Ji = ⎪
⎪ k j (43)
⎪
⎪
⎪ k j
⎪
⎩ grado de libertad de traslación 6. Ejemplos de Aplicación
0
Se va a aplicar a continuación el algoritmo descrito para la
con k j , p j , j p,0 pe definidos en (35), (36), (41), (42). obtención del MCD a 2 robots. En primer lugar, se aplicará a
un robot industrial de 7 grados de libertad ampliamente difun-
5.2. Ejemplo de obtención del modelo diferencial mediante dido, el Mitsubishi PA-10. Por último se aplicará el método a un
MD robot multicadena, para el caso particular de un robot humanoi-
Se va a aplicar este procedimiento de obtención del Modelo de formado por 13 grados de libertad. Para este último caso se
Diferencial (Matriz Jacobiana) al robot de 3 GDL del que se ob- presentan las consideraciones necesarias para abordar diferen-
tuvo el Modelo Cinemático Directo e Inverso en los apartados tes tipos de cadenas ramificadas, que suponen gran utilidad para
2 y 4 respectivamente. Se trata de un robot de 3 GDL de rota- modelar mecanismos bı́pedos, cuadrúpedos, hexápodos, etc.
ción, cuya geometrı́a se muestra en la Figura 1. En el apartado En los 2 casos, se muestran tanto los sistemas de coordena-
2 se obtuvo la matriz de transformación homogénea T 4 (4) que das y parámetros de DH, como los ejes de cada articulación con
resuelve el MCD. La cuarta columna de la misma, proporciona sus correspondientes vectores directores y puntos. Con éstos,
las coordenadas del extremo del robot, siendo estas: haciendo uso del código Matlab © incluido en el apartado 2, se
⎡ ⎤ obtiene la matriz T n que define el modelo cinemático directo.
⎢⎢⎢C1 . (L2 + L3 .C2 )⎥⎥⎥
⎢⎢⎢ ⎥
0
pe = ⎢⎢S 1 . (L2 + L3 .C2 )⎥⎥⎥⎥ 6.1. Robot PA-10 de 7 grados de libertad
⎣ ⎦
L1 + L3 .S 2
En esta sección se presenta el ejemplo de un brazo indus-
Aplicando las expresiones (35), (36) y (41) a los vectores trial redundante, Mitsubishi PA-10 de 7 grados de libertad. La
k1 , k2 , k3 , p1 , p2 , p3 , con las matrices D1 , D2 , D3 , asociadas al información referente a la disposción mecánica de los grados
robot del ejemplo de la Figura 1, y cuyo valor se obtuvo en el de libertad de este robot, ası́ como sus dimensiones fueron to-
apartado 2, expresiones (1,2,3), se obtiene: madas del manual de programación del mismo (MITSUBISHI,
Documento descargado de http://www.elsevier.es el 21/08/2015. Copia para uso personal, se prohíbe la transmisión de este documento por cualquier medio o formato.
380 A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382
2003). A continuación se presentan cada uno de los pasos del Tabla 4: Parámetros MD del robot PA-10
algoritmo presentado en la Tabla 1, aplicado al robot mencio-
nado. Eje Vector director ki Punto cualquiera del eje pi
1 [0, 0, 1] [0, 0, 0]
2 [0, 1, 0] [0, 0, L1 ]
zn 3 [0, 0, 1] [0, 0, 0]
z7 xn On
x7 On 4 [0, 1, 0] [0, 0, L1 + L2 ]
yn
y7 q7 5 [0, 0, 1] [0, 0, 0]
L4
k7 6 [0, 1, 0] [0, 0, L1 + L2 + L3 ]
L4
z6
x5,x6 p6 7 [0, 0, 1] [0, 0, 0]
z5 q6
q5
Tabla 5: Parámetros DH del robot PA-10
k6
k5
L3
L3
Link θi di ai αi
1 q1 L1 0 − pi2
z4 pi
x3,x4 p4 2 q2 0 0 2
z3 q4
q3 3 q3 L2 0 − pi2
pi
k4
k3 4 q4 0 0 2
5 q5 L3 0 − pi2
L2
L2
pi
6 q6 0 0 2
7 q7 L4 0 0
z2
x1,x2 p2
z1 q2
q1 cuerpos rı́gidos serialmente acoplados. Otros mecanismos, co-
L1
L1
k2
A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382 381
L1
L1
Siguiendo esta numeración, se tendrá siempre un nodo z1 L2 z8 L2
padre λ(i) que cumple que λ(i) < i para todo i. Para el x1 x8
L3
L3
en la Figura 6. Los parámetros MD resultantes se pueden z2 x2 z9 x9 p3 p9
L4
k3 k9
L4
x3 x10
apreciar en la Tabla 6. z3 z10
k4 k10
p4 p10
L5
L5
x4 x11
z4 k5 k11
z11
Tabla 6: Parámetros MD del robot bı́pedo p5 p11
λ(i) Eje ki pi
L6
L6
0 1 [0, 0, 1] [0, 0, 0] x5 x12
[0, −L2 , 0]
z5 k6 k12
1 2 [0, 0, 1] z12
p6 p12
L7
L7
2 3 [1, 0, 0] [0, x6 x13
p7 p13
0, 0, − L1 + 4i=3 (Li )
x14
L8
L8
z6 z13 xn1 3 xn2
x7 k7 k1
3 4 [0, 1, 0]
z7 z14
yn1 On1
zn1
yn2 On2
zn2
4 5 [0, 1, 0] 0, 0, − L1 + 5i=3 (Li )
(a) Parámetros DH (b) Parámetros MD
5 6 [0, 1, 0] 0, 0, − L1 + 6i=3 (Li )
6 7 [1, 0, 0] 0, −L2 , − L1 + 7i=3 (Li ) Figura 6: Descripción de los parámetros cinemáticos del robot bı́pedo
de 13 GDL.
1 8 [0, 0, 1] [0, L2 , 0]
8 9 [1, 0, 0] L2 , −L
[0, 1−L
3]
9 10 [0, 1, 0] 0, 0, − L1 + 4i=3 (Li )
10 11 [0, 1, 0] 0, 0, − L1 + 5i=3 (Li )
11 12 [0, 1, 0] 0, 0, − L1 + 6i=3 (Li )
12 13 [1, 0, 0] 0, L2 , − L1 + 7i=3 (Li )
382 A. Barrientos et al. / Revista Iberoamericana de Automática e Informática industrial 9 (2012) 371–382