En los capítulos anteriores, hemos explorado la cinemática de la posición de manipuladores seriales. Esto implica fundamentalmente relacionar las posiciones de las articulaciones con la posición y orientación del extremo del manipulador. En este capítulo, nos adentraremos en el cálculo de las relaciones entre las velocidades lineales y angulares del extremo del manipulador y las velocidades de las articulaciones.
Comenzaremos por calcular las velocidades lineales y angulares por separado en un manipulador serial. Luego, introduciremos el concepto de matriz jacobiana, que nos permitirá describir de manera unificada la relación entre las velocidades de las articulaciones y las velocidades lineales y angulares del extremo del manipulador.
Lo cual implica que la matriz S definida previamente es una matriz antisimétrica. Si postmultplicamos ambos lados de la ecuación (3) por R, se tiene que:
Esta ecuación nos dice que la derivada de una matriz de rotación es equivalente a la multiplicación matricial de una matriz antisimétrica S por la matriz de rotación R.
La matriz antisimétrica S puede interpretarse como una representación matricial de la velocidad angular ω, es decir, S es la matriz antisimétrica asociada con el vector de velocidad angular:
Lo cual es lo esperable: la velocidad angular únicamente tiene componente en la dirección de rotación x.
5.2Velocidades angulares en un manipulador serial¶
La velocidad angular es una propiedad de cuerpo rígido que indica qué tan rápido está cambiando de orientación un cuerpo rígido, y en qué dirección lo hace. En cursos elementales de mecánica del cuerpo rígido aprendemos que la velocidad angular para un sólido rígido que rota en el plano es un vector cuya magnitud es la derivada con respecto al tiempo de la posición angular, es decir:
Y la dirección de este vector es normal al plano del movimiento. Naturalmente, esto no escalaría de forma adecuada para determinar velocidades angulares en manipuladores seriales, puesto que la orientación no depende de un sólo parámetro. Debido a esto haremos uso de lo que revisamos en la sección previa, abordaremos el análisis de las velocidades angulares mediante la derivación con respecto al tiempo de las matrices de rotación que representan la orientación del cuerpo rígido.
Supongamos que se tiene una matriz R10 que describe la orientación del sistema de referencia {1} que rota con respecto al sistema fijo {0}, y que en el caso general R10 es dependiente del tiempo, es decir R10=R10(t). Entonces, la derivada con respecto al tiempo de R10 se puede escribir como:
Donde S(ω1) es una matriz antisimétrica. El vector ω1=ω1(t) es la velocidad angular del sistema {1} con respecto al {0}.
Bien, ahora continuando con nuestros sistemas de referencia {1} y {0}, supongamos que se agrega un tercer sistema de referencia {2}, cuya orientación también es dependiente del tiempo. La descripción de la orientación de {2} con respecto a {1} está dada por R21=R21(t). Si quisiéramos determinar la orientación de {2} en {0} podríamos hacerlo mediante:
O básicamente, la velocidad angular del sistema de referencia {2} con respecto al sistema {0} se puede determinar sumando las velocidades angulares de {1} con respecto {0} y de {2} con respecto {1}, siempre y cuando estén expresadas en el mismo sistema de referencia.
El procedimiento anterior se puede extender y generalizar para cualquier cantidad de sistemas de referencia. Suponga que tenemos los sistemas de referencia 0, 1, 2, ⋯, i, podemos escribir entonces que:
Así, para nuestros propósitos, podemos interpretar lo anterior como sigue: en un manipulador serial, la velocidad angular ωi de un eslabón i, se puede calcular sumando los vectores de velocidad angular ωj−1,j de los eslabones que le anteceden. Los vectores ωj−1,j corresponden a la velocidad angular de cada eslabón j con respecto al eslabón inmediatamente anterior j−1, descrita en el sistema {0}.
Si consideramos que la descripción de la cinemática directa del manipulador se hace utilizando la metodología de Denavit-Hartenberg, entonces los vectores de velocidad angular de la forma ωj−1,j se pueden determinar de la siguiente manera:
ωj−1,j={q˙jzj−10 si la junta i es revoluta si la junta i es prismaˊtica
Lo anterior implica que una junta prismática no contribuye a la velocidad angular, dado que no produce un cambio en la orientación entre los sistemas {j} y {j−1}.
Ejemplo.Calcule las velocidades angulares de los eslabones 1 y 2 del manipulador RR de la Figura Figure 1.
En la Figura Figure 2 se muestra un cuerpo rígido, al cual se le adhiere un sistema de referencia {1} que se mueve junto este. Se tiene también un sistema de referencia fijo {0}. El cuerpo rígido está en un movimiento general, es decir, experimenta un movimiento compuesto de rotación y traslación. En lo subsiguiente veremos cómo relacionar las velocidades lineales y angulares de este cuerpo rígido, utilizando los dos sistemas de referencia mostrados.
Donde rQ es un vector que describe la posición de Q con respecto al sistema {0}, ro1 es un vector que define la posición del origen del sistema {1} y rQ/o1 es un vector de posición que va desde el origen del sistema {1} hasta el punto Q.
Una relación de velocidad se puede obtener si derivamos con respecto al tiempo cada uno de los términos de la ecuación (41):
Puesto que tanto rQ como ro1 son vectores de posición medidos desde el origen del sistema fijo, entonces la derivada de estos vectores con respecto al tiempo corresponderá a una velocidad absoluta, es decir:
Sin embargo, la derivada de rQ/o1 corresponde a una velocidad relativa, puesto que es un posición de Q medida con respecto a un punto o1 que está en movimiento. Si el punto Q está fijo en el sólido rígido (o lo que es lo mismo: fijo con respecto al sistema {1}), entonces la velocidad de Q con respecto al punto o1, vista desde el sistema inercial, está dada únicamente por el cambio de la orientación del vector rQ/o1, lo cual puede determinarse mediante:
Si el punto Q se mueve con respecto al sistema {1}, entonces a lo anterior habría que sumarle un término que represente el cambio del vector rQ/o1 visto desde el sistema {1}, es decir:
Consideremos un manipulador serial conformado por juntas prismática y de revoluta, tal como se muestra en la figura Figure 3. Asumiendo, además, que cada sistema de referencia está colocado de acuerdo con la metodología de Denavit-Hartenberg, entonces cada eje zi−1 define la dirección de rotación o deslizamiento de la junta i.
Las velocidades angulares ω1,ω2,⋯,ωn corresponden a las velocidades angulares de cada eslabón con respecto al sistema de referencia de la base. Las velocidades angulares ω0,10,ω1,20,⋯,ωn−1,n0 corresponden a las velocidades angulares de cada eslabón i con respecto al eslabón i−1 que le precede. Observe que si usamos la misma notación podríamos expresar que ωi=ω0,i0. De acuerdo con lo visto en la sección Section 5.2 sabemos que:
Donde voi−1 denota la velocidad lineal del origen de coordenadas del sistema de referencia {i−1}, ωi es la velocidad angular del eslabón i, roi/oi−1 es un vector de posición del origen de coordenadas del sistema {i} con respecto al origen de coordenadas del sistema {i−1} y el término (voi/oi−1)i−1 corresponde al cambio de la magnitud del vector que describe la posición del origen del sistema {i} en el sistema {i−1}.
Así pues, las velocidades lineales de cada origen de los sistemas de referencia se pueden expresar como:
Si el sistema de la base es un sistema fijo (caso típico, salvo que el manipulador estuviera montado sobre un dispositivo que le agregara movimiento), entonces vo0=0, lo cual implica que:
En el caso particular de que la i-ésima junta sea una revoluta, el término (voi/oi−1)i−1 se hace cero, puesto que la distancia entre los orígenes de {i} y {i−1} permanece invariable.
En esta sección derivaremos expresiones para determinar las velocidades lineales en un manipulador serial. Comenzaremos recordando que aquí únicamente analizaremos manipuladores seriales conformados por juntas prismáticas y de revoluta.
Comenzaremos determinando la velocidad del origen de coordenadas del sistema i cuando la junta i es de tipo revoluta. En la Figura Figure 4 puedes observar el esquema que representa este caso, observa que el eslabón i está unido al eslabón i−1 mediante la junta i, además, el eje zi−1 apunta en la dirección de accionamiento de la junta i.
Figure 4:Velocidad del origen del sistema i cuando la junta i es revoluta.
Formularemos una expresión de velocidad para el origen del sistema {i} asumiendo que conocemos la velocidad del origen de coordenadas del sistema {i−1}. Es sencillo observar que:
Ejemplo. Calcule la velocidad lineal del extremo del manipulador RR mostrado en la Figura Figure 1.
Dado que la distancia entre los orígenes de los sistemas {1} y {0} no cambia, entonces (vo1/o0)0=0. Algo similar ocurre con los orígenes de {2} y {1}, así pues (vo2/o1)1=0. \
Las velocidades angulares ω1 y ω2 para este manipulador están dadas por:
Si conocemos la posición del extremo del manipulador (ron) en función de las variables articulares de posición (q1, q2, ..., qn), es posible determinar la velocidad lineal mediante derivación con respecto al tiempo, es decir:
El vector ron se puede obtener de la matriz de cinemática directa Tn0; recordando que la cuarta columna de esta matriz corresponde a la posición del origen de coordenadas del sistema de referencia {n}, el cual se coloca usualmente en el extremo del manipulador, es decir:
El vector de velocidad lineal von nos quedará usualmente en términos de las velocidades articulares (q˙1, q˙2, ..., q˙n). Al efectuar la derivada con respecto al tiempo se debe considerar que las variables articulares de posición (q1, q2, …, qn) son funciones que dependen del tiempo, es decir qi=qi(t). Naturalmente, el resto de parámetros constantes del manipulador, se deben tratar como tal al momento de realizar las derivadas correspondientes.
Ejemplo.Utilice derivadas para determinar la velocidad lineal del extremo del manipulador RR mostrado en la Figura Figure 1.
Solución:
Recordar que la cinemática directa de este manipulador está dada por:
Lo visto previamente para la velocidad del extremo del manipulador, se puede generalizar para cualquier punto en el manipulador. Supongamos que se tiene un punto P, ubicado en el eslabón i, es sencillo ver que su velocidad lineal se puede determinar mediante:
Si el punto P está fijo en el eslabón i (caso típico), entonces su velocidad relativa vP/oi se debe únicamente a la rotación del eslabón i, es decir:
En el caso de que el punto P no esté fijo en el eslabón i, entonces, adicionalmente debería considerarse el cambio en la magnitud del vector rP/oi visto desde el sistema {i}, es decir:
Ejemplo.Calcule la velocidad de los puntos A y B, ubicados en los eslabones 1 y 2, respectivamente, del manipulador RR mostrado en la figura. Se sabe que:
La velocidad lineal de un punto P cualquiera, ubicado en el eslabón i del manipulador serial, se puede determinar también derivando con respecto al tiempo un vector rP que describa su posición en el sistema de la base, en términos de las posiciones articulares [1], es decir:
Habitualmente, el vector rP se formará de manera más simple si primero lo describimos en el sistema de referencia adherido al eslabón i, y luego aplicamos una transformación de coordenadas para describirlo en el sistema de la base. De acuerdo con lo anterior, se tendría que:
Donde Ti0 es una matriz de transformación homogénea que describe al sistema del eslabón {i} con respecto al de la base, y rPi es un vector que describe la posición del punto P en el sistema {i}. Si el punto P está fijo en el eslabón i, entonces el vector rPi tendrá componentes constantes.
En las secciones Section 5.2 y Section 5.5 vimos cómo determinar las velocidades angulares y la velocidad lineal del extremo del manipulador, de manera respectiva. En este apartado veremos que hay una manera conveniente de representar de manera conjunta tanto la velocidad lineal como la velocidad angular del elemento terminal (o de cualquier ubicación del manipulador). Comenzaremos recordando que la velocidad lineal del extremo está dada por la ecuación (54):
Ahora, vamos a reescribir el primer término de esta ecuación en función de las velocidades angulares entre eslabones consecutivos ωi−1,i0, para esto podemos desarrollar algunos términos de la ecuación:
La propiedad distributiva del producto cruz establece que se cumple: a×(b1+b2+⋯+bn)=a×b1+a×b2+⋯+a×bn. Considerando esto, podemos reescribir lo anterior como:
Esta ecuación tiene la particularidad de utilizar las velocidades angulares entre eslabones sucesivos, en lugar de las velocidades angulares de cada eslabón con respecto a la base. Esto tiene cierta ventaja al momento de efectuar el cálculo, puesto que en el caso de que la i-ésima junta sea de tipo prismática, entonces ωi−1,i0=0, y el primer término de (100) se anula. En el caso de que la i-ésima junta sea de tipo revoluta, entonces el segundo término se hace cero, es decir, únicamente se sumaría uno de los términos dependiendo el tipo de articulación.
De acuerdo con lo visto en la sección \ref{sec:angular_velocity}, la velocidad angular ωi−1,i0 se puede escribir como:
ωi−1,i0=Ri−10ωi−1,ii−1={q˙izi−10si la i-eˊsima junta es revolutasi la i-eˊsima junta es prismaˊtica
Se puede observar que la ecuación (106) es posible escribirla como una multiplicación de una matriz Jv (cuyas columnas son los vectores Jvi) por un vector q˙, es decir:
A la matriz Jv se le denomina matriz jacobiana de velocidad lineal o bien simplemente jacobiano de velocidad lineal. Observe que esta matriz nos proporciona una relación entre las velocidades articulares y las velocidades lineales del extremo del manipulador en el espacio cartesiano.
La velocidad angular del elemento terminal (eslabón n) también se puede escribir en forma de una multiplicación matricial. Para esto comenzaremos recordando que la velocidad angular del eslabón n está dada por la suma de las velocidades angulares ωi−1,i0 de los eslabones que le preceden:
La ecuación (113) se puede escribir también como una multiplicación de una matriz Jω (cuyas columnas son los vectores Jωi) por un vector q˙, es decir:
A la matriz Jω se le denomina matriz jacobiana de velocidad angular o bien simplemente jacobiano de velocidad angular. Observe que esta matriz nos proporciona una relación entre las velocidades articulares y la velocidad angular del elemento terminal en el espacio cartesiano.
Las ecuaciones (108) y (115) se pueden expresar de manera conjunta como:
A la matriz J se le denomina matriz jacobiana, jacobiano o de manera un poco más específica jacobiano geométrico. La matriz jacobiana se calcula para una ubicación específica del manipulador, en este caso particular se ha obtenido para el elemento términal, no obstante, se puede formular para cualquier punto en el manipulador. Es sencillo verificar que la matriz jacobiana asociada a un manipulador de n grados de libertad, es una matriz de 6×n.
Ahora, con todo lo anterior, estamos en posibilidad de formular (bueno, en este punto realmente sería resumir) un procedimiento para determinar la matriz jacobiana asociada con el elemento terminal (eslabón n) de un manipulador serial de n grados de libertad.
Ejemplo.Para el manipulador planar RR de la Figura rr_robot_dh, calcule la velocidad lineal y angular de su extremo, para un instante en el cual q1=45° y q2=30°, siendo q˙1=1.5 rad/s y q˙2=3 rad/s. Considere que l1=l2=280 mm.
Solución:
Tomamos como punto de partida la matriz jacobiana calculada en el Ejemplo anterior, sustituimos los valores correspondientes, de lo cual se tiene:
Para obtener el vector de velocidades del extremo del manipulador, debemos multiplicar la matriz jacobiana J por el vector de velocidades articulares q˙, mismo que está dado por:
Lo cual resulta en el vector de velocidades lineales y angulares del extremo del manipulador.
Ejemplo.Para el manipulador RPP mostrado en la Figura \ref{fig:rpp_robot_cdif} calcule las velocidades del extremo, para un instante en el cual q1=90°, q2=200 mm y q3=100 mm, además, se sabe que las velocidades articulares son q˙1=−2.5 rad/s, q˙2=30 mm/s, q˙3=45 mm/s. Considere que a=200 mm y b=70 mm.
Recuerde que tanto la segunda como tercera articulación son prismáticas, lo cual facilita en gran medida el cálculo de la matriz jacobiana. Identificando cada término implicado:
5.6.2La matriz jacobiana de un punto del manipulador}¶
En la sección previa vimos cómo formar la matriz jacobiana del extremo del manipulador, sin embargo, en muchas ocasiones es necesario conocer las velocidades lineales y angulares en algún otro punto del manipulador, por ejemplo, cuando se analiza la dinámica del robot es necesario determinar las velocidades del centro de masa de cada eslabón. En esta sección veremos cómo formar la matriz jacobiana para una ubicación específica del manipulador.
Antes de comenzar con el análisis, lo primero que debemos comprender es que, en un manipulador serial, si accionamos la i−ésima articulación y mantenemos fijas todas las otras, entonces esta articulación producirá un movimiento sobre los eslabones i, i+1, ⋯, n. Por ejemplo, refiriéndonos al manipulador RRR de la Figura Figure 8, si accionamos la junta número (3) el único eslabón que se movería sería el 3, si accionamos la junta (2) entonces afectaría tanto al eslabón 2 como al 3.
Así pues, suponiendo que se tiene un punto A ubicado en el eslabón 1, entonces podríamos inferir que el accionamiento de las juntas 2 y 3 no le afecta, lo cual nos lleva a pensar que la matriz jacobiana asociada con este punto A debería contener ceros en las columnas 2 y 3 que corresponden a estas juntas, para que al efectuar la multiplicación por el vector de velocidades articulares se corresponda con una contribución nula de estas velocidades articulares a la velocidad lineal del punto A.
Lo descrito previamente se puede generalizar para un punto ubicado en cualquier eslabón de un manipulador serial. Supongamos que se tiene un punto Q ubicado en el eslabón m de un manipulador serial, entonces la matriz jacobiana correspondiente al punto Q es una matriz de 6×n:
En las ecuaciones anteriores, rQ es un vector que describe la posición del punto Q en el sistema de referencia de la base.
Ejemplo.Calcule la matriz jacobiana de los puntos A y B, ubicados en los eslabones 1 y 2, respectivamente, del manipulador RR mostrado en la Figura example_rr_robot_point_velocity_jacobian. Se sabe que:
Puesto que el punto A está ubicado en el eslabón 1 (m=1), entonces tanto (Jv2)A como (Jω2)A son cero, dado que en esta segunda columna (i=2) se cumple que i>m. Calculamos ahora los términos de la primera columna, debido a que la junta 1 es una revoluta, entonces:
Puesto que el punto B está ubicado en el eslabón 2 (m=2), para ambas columnas de JB (i=1,i=2) se cumple que i≤m. Dado que tanto la junta 1 como la junta 2 son revoluta, entonces:
Para el manipulador RR mostrado en la Figura Figure 10 calcule la velocidad lineal y angular del extremo para un instante en el que:
q1=30°
q˙1=−0.75 rad/s
q2=45°
q˙2=1.65 rad/s
Para el manipulador RR de la Figura Figure 10, se sabe que el centro de masa del eslabón 2 está ubicado de acuerdo con el siguiente vector de posición: rG22=[−110,0,0]T. Calcule la velocidad del centro de masa G2 con respecto al sistema de referencia de la base, para un instante en el cual las posiciones y velocidades articulares son las que se listan enseguida.
q1=90°
q˙1=0.25 rad/s
q2=60°
q˙2=1.5 rad/s
En la figura Figure 11 se muestra un manipulador RR. Para un instante en el que:
q1=90°
q˙1=0.5 rad/s
q2=30°
q˙2=1.5 rad/s
Realiza lo siguiente:
Determina la velocidad lineal del extremo del manipulador.
Calcula la velocidad angular de cada uno de los eslabones.
Calcula la matriz jacobiana del extremo del manipulador.
Calcula la velocidad de un punto A cuyas coordenadas en el sistema {2} están dadas por rA2=[−100200]T
Calcule la velocidad lineal y angular del extremo del robot ABB IRB 140, para un instante en el que:
q1=0°
q˙1=0.75 rad/s
q2=0°
q˙2=1.25 rad/s
q3=0°
q˙3=0.5 rad/s
q4=0°
q˙4=0 rad/s
q5=0°
q˙5=2 rad/s
q6=0°
q˙6=0.5 rad/s
5.11Problemas para resolver utilizando la computadora¶
Desarrolla una función denominada calcular_jacobiano, la cual deberá calcular la matriz jacobiana geométrica asociada con un manipulador serial. Los argumentos de entradas deberán ser tuplas que contengan los parámetros de Denavit-Hartenberg y el tipo de articulación, es decir: (ai, αi, di, θi, ta), siendo ta el tipo de articulación. Naturalmente, se deberán pasar tantas tuplas como grados de libertad tenga el manipulador. Utiliza SymPy para formar la matriz, de tal manera que los elementos puedan ser tanto variables simbólicas como valores numéricos.