Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

5 Cinemática diferencial

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.

5.1Derivada de una matriz de rotación

Suponga que se tiene una matriz de rotación RR que depende del tiempo tt, es decir R=R(t)R=R(t); dado que RR es ortogonal se cumple que:

RRT=IR R^T = I

Derivando ambos lados de la ecuación con respecto a tt se tiene que:

R˙RT+RR˙T=0\dot{R} R^T + R \dot{R}^T = 0

Ahora, si definimos a una matriz SS como sigue:

S=R˙RTS = \dot{R} R^T

Se puede verificar que:

ST=(R˙RT)T=RR˙TS^T = \rbr{ \dot{R} R^T }^T = R \dot{R}^T

Entonces, de la ecuación (2) se puede verificar que:

S+ST=0S + S^T = 0

Lo cual implica que la matriz SS definida previamente es una matriz antisimétrica. Si postmultplicamos ambos lados de la ecuación (3) por RR, se tiene que:

R˙=S R\dot{R} = S \,R

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 SS por la matriz de rotación RR.

La matriz antisimétrica SS puede interpretarse como una representación matricial de la velocidad angular ω\W, es decir, SS es la matriz antisimétrica asociada con el vector de velocidad angular:

S=S(ω)=[0−ωzωyωz0−ωx−ωyωx0]S = S(\W) = \begin{bmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{bmatrix}

Ejemplo. Calcula S(ω)S(\W) asociada con Rx,θR_{x,\theta}. Considera que θ=θ(t)\theta = \theta(t).

Solución

La matriz Rx,θR_{x,\theta} está dada por:

Rx,θ=[1000cos⁡θ−sin⁡θ0sin⁡θcos⁡θ]R_{x,\theta} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix}

Derivando con respecto al tiempo se tiene que:

R˙x,θ=[0000−θ˙sin⁡θ−θ˙cos⁡θ0θ˙cos⁡θ−θ˙sin⁡θ]\dot{R}_{x,\theta} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & -\dot{\theta} \sin\theta & -\dot{\theta}\cos\theta \\ 0 & \dot{\theta}\cos\theta & -\dot{\theta}\sin\theta \end{bmatrix}

Entonces:

S=R˙x,θRx,θT=[0000−θ˙sin⁡θ−θ˙cos⁡θ0θ˙cos⁡θ−θ˙sin⁡θ][1000cos⁡θsin⁡θ0−sin⁡θcos⁡θ]=[00000−θ˙0θ˙0]S = \dot{R}_{x,\theta} R_{x,\theta}^T = \begin{bmatrix} 0 & 0 & 0 \\ 0 & -\dot{\theta} \sin\theta & -\dot{\theta}\cos\theta \\ 0 & \dot{\theta}\cos\theta & -\dot{\theta}\sin\theta \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & \sin\theta \\ 0 & -\sin\theta & \cos\theta \end{bmatrix} = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -\dot{\theta} \\ 0 & \dot{\theta} & 0 \end{bmatrix}

Es sencillo observar que el vector ω\W asociado con SS es:

ω=[θ˙00]\W = \colvec{\dot{\theta}}{0}{0}

Lo cual es lo esperable: la velocidad angular únicamente tiene componente en la dirección de rotación xx.

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:

ω=dθdt\omega = \frac{d\theta}{dt}

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 R10R_1^0 que describe la orientación del sistema de referencia {1}\{1\} que rota con respecto al sistema fijo {0}\{0\}, y que en el caso general R10R_1^0 es dependiente del tiempo, es decir R10=R10(t)R_1^0=R_1^0(t). Entonces, la derivada con respecto al tiempo de R10R_1^0 se puede escribir como:

R˙10=S(ω1)R10\dot{R}_1^0 = S(\W_1) R_1^0

Donde S(ω1)S(\W_1) es una matriz antisimétrica. El vector ω1=ω1(t)\W_1 = \W_1(t) es la velocidad angular del sistema {1}\{1\} con respecto al {0}\{0\}.

Bien, ahora continuando con nuestros sistemas de referencia {1}\{1\} y {0}\{0\}, supongamos que se agrega un tercer sistema de referencia {2}\{2\}, cuya orientación también es dependiente del tiempo. La descripción de la orientación de {2}\{2\} con respecto a {1}\{1\} está dada por R21=R21(t)R_2^1 = R_2^1(t). Si quisiéramos determinar la orientación de {2}\{2\} en {0}\{0\} podríamos hacerlo mediante:

R20=R10R21R_2^0 = R_1^0 R_2^1

Si derivamos esta expresión con respecto al tiempo se tiene:

R˙20=R˙10R21+R10R˙21\dot{R}_2^0 = \dot{R}_1^0 R_2^1 + R_1^0 \dot{R}_2^1

El lado de izquierdo de esta ecuación se puede escribir como:

R˙20=S(ω0,20)R20\dot{R}_2^0 = S( \W_{0,2}^0 ) R_2^0

Para el primer término del lado derecho:

R˙10R21=S(ω0,10)R10R21=S(ω0,10)R20\dot{R}_1^0 R_2^1 = S( \W_{0,1}^0 ) R_1^0 R_2^1 = S( \W_{0,1}^0 ) R_2^0

Para el segundo término del lado derecho:

R10R˙21=R10S(ω1,21)R21R_1^0 \dot{R}_2^1 = R_1^0 S( \W_{1,2}^1 ) R_2^1

Si múltiplicamos lo anterior por (R10)TR10(R_1^0)^T R_1^0 (este producto es igual a II, es decir, no alteramos la expresión), se tiene:

R10R˙21=R10S(ω1,21)(R10)TR10R21R_1^0 \dot{R}_2^1 = R_1^0 S( \W_{1,2}^1 ) \rbr{R_1^0}^T R_1^0 R_2^1

Observe que R10S(ω1,21)(R10)T R_1^0 S( \W_{1,2}^1 ) \rbr{R_1^0}^T es una transformación de similitud de S(ω1,21)S( \W_{1,2}^1 ), entonces de acuerdo con la ecuación (16):

R10S(ω1,21)(R10)T=S(R10ω1,21)R_1^0 S( \W_{1,2}^1 ) \rbr{R_1^0}^T = S( R_1^0 \W_{1,2}^1 )

Así pues, el segundo término de la ecuación (16) se puede escribir como:

R10R˙21=S(R10ω1,21)R20R_1^0 \dot{R}_2^1 = S( R_1^0 \W_{1,2}^1 ) R_2^0

De tal modo que podemos rescribir la ecuación (16) como:

S(ω0,20)R20=S(ω0,10)R20+S(R10ω1,21)R20S( \W_{0,2}^0 ) R_2^0 = S( \W_{0,1}^0 ) R_2^0 + S( R_1^0 \W_{1,2}^1 ) R_2^0

O bien:

S(ω0,20)R20=[S(ω0,10)+S(R10ω1,21)]R20S( \W_{0,2}^0 ) R_2^0 = \sbr{ S( \W_{0,1}^0 ) + S( R_1^0 \W_{1,2}^1 ) } R_2^0

Lo anterior implica que:

S(ω0,20)=[S(ω0,10)+S(R10ω1,21)]S( \W_{0,2}^0 ) = \sbr{ S( \W_{0,1}^0 ) + S( R_1^0 \W_{1,2}^1 ) }

Por propiedades de las matrices antisimétricas sabemos que S(a)+S(b)=S(a+b) S(\vec{a}) + S(\vec{b}) = S(\vec{a} + \vec{b}) , entonces:

ω0,20=ω0,10+R10ω1,21\W_{0,2}^0 = \W_{0,1}^0 + R_1^0 \W_{1,2}^1

Si efectuamos la transformación de coordenadas de ω1,21 \W_{1,2}^1 :

ω0,20=ω0,10+ω1,20\W_{0,2}^0 = \W_{0,1}^0 + \W_{1,2}^0

O básicamente, la velocidad angular del sistema de referencia {2}\{2\} con respecto al sistema {0}\{0\} se puede determinar sumando las velocidades angulares de {1}\{1\} con respecto {0}\{0\} y de {2}\{2\} con respecto {1}\{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, ⋯\cdots, ii, podemos escribir entonces que:

Ri0=R10R21⋯Rii−1R_i^0 = R_1^0 R_2^1 \cdots R_i^{i-1}

Derivando Ri0R_i^0:

R˙i0=S(ω0,i0)Ri0\dot{R}_i^0 = S( \W_{0,i}^0 ) R_i^0

En donde:

ω0,i0=ω0,10+R10ω1,21+…+Ri−10ωi−1,ii−1\W_{0,i}^0 = \W_{0,1}^0 + R_1^0 \W_{1,2}^1 + \ldots + R_{i-1}^{0} \W_{i-1,i}^{i-1}

O bien:

ω0,i0=ω0,10+ω1,20+…+ωi−1,i0\W_{0,i}^0 = \W_{0,1}^0 + \W_{1,2}^0 + \ldots + \W_{i-1,i}^0

Por simplicidad, y dado que todos los vectores están descritos en el sistema de la base, en esta ecuación podemos prescindir de los superíndices:

ω0,i=ω0,1+ω1,2+…+ωi−1,i\W_{0,i} = \W_{0,1} + \W_{1,2} + \ldots + \W_{i-1,i}

Así, para nuestros propósitos, podemos interpretar lo anterior como sigue: en un manipulador serial, la velocidad angular ωi \W_i de un eslabón ii, se puede calcular sumando los vectores de velocidad angular ωj−1,j \W_{j-1,j} de los eslabones que le anteceden. Los vectores ωj−1,j \W_{j-1,j} corresponden a la velocidad angular de cada eslabón jj con respecto al eslabón inmediatamente anterior j−1j-1, descrita en el sistema {0}\{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 \W_{j-1,j} se pueden determinar de la siguiente manera:

ωj−1,j={q˙j zj−1 si la junta i es revoluta0 si la junta i es prismaˊtica\W_{j-1,j} = \left\{ \begin{matrix} \displaystyle \dot{q}_j \, \vec{z}_{j-1} & \text{ si la junta i es revoluta} \\ \displaystyle \vec{0} & \text{ si la junta i es prismática} \end{matrix} \right.

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}\{j\} y {j−1}\{j-1\}.

Ejemplo. Calcule las velocidades angulares de los eslabones 1 y 2 del manipulador RR de la Figura Figure 1.

Manipulador RR

Figure 1:Manipulador RR

Solución:

La velocidad angular del eslabón 1 se puede determinar como sigue:

ω1=ω0,1\W_1 = \W_{0,1}

Dado que la junta 1 es una revoluta, entonces el vector ω0,1 \W_{0,1} nos quedará de la siguiente manera:

ω1=q˙1z0=q˙1[001]=[00q˙1]\W_1 = \dot{q}_1 \vec{z}_0 = \dot{q}_1 \colvec{0}{0}{1} = \textcolor{green}{ \colvec{0}{0}{\dot{q}_1} }

Para la velocidad angular del eslabón 2 se tiene que:

ω2=ω0,1+ω1,2\W_2 = \W_{0,1} + \W_{1,2}

Dado que la segunda articulación también es una revoluta, entonces:

ω1,2=q˙2z1\W_{1,2} = \dot{q}_2 \vec{z}_1

El vector z1\vec{z}_1 se obtiene de la tercer columna de la matriz R10 R_1^0 (calculada en el procedimiento de cinemática directa):

R10=[c1−s10s1c10001]R_1^0 = \begin{bmatrix} c_{1} & -s_{1} & 0 \\ s_{1} & c_{1} & 0 \\ 0 & 0 & 1 \end{bmatrix}

Entonces:

ω1,2=q˙2[001]=[00q˙2]\W_{1,2} = \dot{q}_2 \colvec{0}{0}{1} = \colvec{0}{0}{\dot{q}_2}

Por lo cual:

ω2=[00q˙1]+[00q˙2]=[00q˙1+q˙2]\textcolor{green}{ \W_2 = \colvec{0}{0}{\dot{q}_1} + \colvec{0}{0}{\dot{q}_2} = \colvec{0}{0}{ \qp{1} + \qp{2} } }

5.3Velocidades lineales en un cuerpo rígido

En la Figura Figure 2 se muestra un cuerpo rígido, al cual se le adhiere un sistema de referencia {1}\{1\} que se mueve junto este. Se tiene también un sistema de referencia fijo {0}\{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.

Un cuerpo rígido

Figure 2:Un cuerpo rígido

En la Figura Figure 2 puede observarse también un punto QQ, del cual es sencillo verificar que se cumple la siguiente ecuación vectorial de posición:

rQ=ro1+rQ/o1\vec{r}_Q = \vec{r}_{o_1} + \vec{r}_{Q/{o_1}}

Donde rQ\vec{r}_Q es un vector que describe la posición de QQ con respecto al sistema {0}\{0\}, ro1\vec{r}_{o_1} es un vector que define la posición del origen del sistema {1}\{1\} y rQ/o1\vec{r}_{Q/{o_1}} es un vector de posición que va desde el origen del sistema {1}\{1\} hasta el punto QQ.

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):

drQdt=dro1dt+drQ/o1dt\frac{d\vec{r}_Q}{dt} = \frac{d\vec{r}_{o_1}}{dt} + \frac{d\vec{r}_{Q/{o_1}}}{dt}

Puesto que tanto rQ\vec{r}_Q como ro1\vec{r}_{o_1} 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:

drQdt=vQ\frac{d\vec{r}_Q}{dt} = \vec{v}_Q
dro1dt=vo1\frac{d\vec{r}_{o_1}}{dt} = \vec{v}_{o_1}

Sin embargo, la derivada de rQ/o1\vec{r}_{Q/{o_1}} corresponde a una velocidad relativa, puesto que es un posición de QQ medida con respecto a un punto o1o_1 que está en movimiento. Si el punto QQ está fijo en el sólido rígido (o lo que es lo mismo: fijo con respecto al sistema {1}\{1\}), entonces la velocidad de QQ con respecto al punto o1o_1, vista desde el sistema inercial, está dada únicamente por el cambio de la orientación del vector rQ/o1\vec{r}_{Q/{o_1}}, lo cual puede determinarse mediante:

drQ/o1dt=ω1×rQ/o1\frac{d\vec{r}_{Q/{o_1}}}{dt} = \W_1 \times \vec{r}_{Q/{o_1}}

Si el punto QQ se mueve con respecto al sistema {1}\{1\}, entonces a lo anterior habría que sumarle un término que represente el cambio del vector rQ/o1\vec{r}_{Q/{o_1}} visto desde el sistema {1}\{1\}, es decir:

drQ/o1dt=ω1×rQ/o1+(drQ/o1dt)S1=ω1×rQ/o1+(vQ/o1)S1\frac{d\vec{r}_{Q/{o_1}}}{dt} = \W_1 \times \vec{r}_{Q/{o_1}} + \rbr{ \frac{d\vec{r}_{Q/{o_1}}}{dt} }_{S_1} = \W_1 \times \vec{r}_{Q/{o_1}} + \rbr{ \vec{v}_{Q/{o_1}} }_{S_1}

Así pues, la velocidad del punto QQ se puede escribir de manera general como:

vQ=vo1+ω1×rQ/o1+(vQ/o1)S1\vec{v}_Q = \vec{v}_{o_1} + \W_1 \times \vec{r}_{Q/{o_1}} + \rbr{ \vec{v}_{Q/{o_1}} }_{S_1}

5.4Velocidades lineales en un manipulador serial

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−1z_{i-1} define la dirección de rotación o deslizamiento de la junta ii.

Velocidades en un manipulador serial

Figure 3:Velocidades en un manipulador serial

Las velocidades angulares ω1,ω2,⋯ ,ωn\W_1, \W_2, \cdots, \W_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 \W_{0,1}^{0}, \W_{1,2}^0, \cdots , \W_{n-1,n}^{0} corresponden a las velocidades angulares de cada eslabón ii con respecto al eslabón i−1i-1 que le precede. Observe que si usamos la misma notación podríamos expresar que ωi=ω0,i0 \W_i = \W_{0,i}^0 . De acuerdo con lo visto en la sección Section 5.2 sabemos que:

ωi=ω0,10+ω1,20+⋯+ωi−1,i0\W_i = \W_{0,1}^0 + \W_{1,2}^0 + \cdots + \W_{i-1,i}^0

Además es importante recordar que en el caso de la i-ésima junta sea prismática, entonces:

ωi−1,i0=0\W_{i-1,i}^0 = \vec{0}

De acuerdo con lo expuesto en la sección Section 5.3 podemos expresar la velocidad del origen de coordenadas del sistema {i}\{i\} de la siguiente manera:

voi=voi−1+ωi×roi/oi−1+(voi/oi−1)i−1\vec{v}_{o_i} = \vec{v}_{o_{i-1}} + \W_i \times \vec{r}_{o_i/o_{i-1}} + \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1}

Donde voi−1 \vec{v}_{o_{i-1}} denota la velocidad lineal del origen de coordenadas del sistema de referencia {i−1}\{i-1\}, ωi \W_i es la velocidad angular del eslabón ii, roi/oi−1\vec{r}_{o_i/o_{i-1}} es un vector de posición del origen de coordenadas del sistema {i}\{i\} con respecto al origen de coordenadas del sistema {i−1}\{i-1\} y el término (voi/oi−1)i−1 \rbr{ v_{o_i/o_{i-1}} }_{i-1} corresponde al cambio de la magnitud del vector que describe la posición del origen del sistema {i}\{i\} en el sistema {i−1}\{i-1\}.

Así pues, las velocidades lineales de cada origen de los sistemas de referencia se pueden expresar como:

vo1=vo0+ω1×ro1/o0+(vo1/o0)0vo2=vo1+ω2×ro2/o1+(vo2/o1)1⋮von=von−1+ωn×ron/on−1+(von/on−1)n−1\begin{matrix} \vec{v}_{o_1} = \vec{v}_{o_0} + \W_1 \times \vec{r}_{o_1/o_{0}} + \rbr{ \vec{v}_{o_1/o_0} }_{0} \\ \vec{v}_{o_2} = \vec{v}_{o_1} + \W_2 \times \vec{r}_{o_2/o_{1}} + \rbr{ \vec{v}_{o_2/o_1} }_{1} \\ \vdots \\ \vec{v}_{o_n} = \vec{v}_{o_{n-1}} + \W_n \times \vec{r}_{o_n/o_{n-1}} + \rbr{ \vec{v}_{o_n/o_{n-1}} }_{n-1} \\ \end{matrix}

De las ecuaciones anteriores es sencillo verificar que la velocidad lineal del extremo del manipulador se puede escribir como:

von=vo0+ω1×ro1/o0+(vo1/o0)0+ω2×ro2/o1+(vo2/o1)1+⋯+ωn×ron/on−1+(von/on−1)n−1\vec{v}_{o_n} = \vec{v}_{o_0} + \W_1 \times \vec{r}_{o_1/o_{0}} + \rbr{ \vec{v}_{o_1/o_0} }_{0} + \W_2 \times \vec{r}_{o_2/o_{1}} + \rbr{ \vec{v}_{o_2/o_1} }_{1} + \cdots + \W_n \times \vec{r}_{o_n/o_{n-1}} + \rbr{ \vec{v}_{o_n/o_{n-1}} }_{n-1}

O en su forma equivalente como:

von=vo0+∑i=1n[ωi×roi/oi−1+(voi/oi−1)i−1]\vec{v}_{o_n} = \vec{v}_{o_0} + \sum_{i=1}^n \sbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} + \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} }

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\vec{v}_{o_0} = \vec{0}, lo cual implica que:

von=∑i=1n[ωi×roi/oi−1+(voi/oi−1)i−1]\vec{v}_{o_n} = \sum_{i=1}^n \sbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} + \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} }

Cada una de las velocidades angulares ωi \W_i se determinan utilizando la ecuación (48). Los vectores de posición roi/oi−1 \vec{r}_{o_i/o_{i-1}} se calculan como:

roi/oi−1=roi−roi−1\vec{r}_{o_i/o_{i-1}} = \vec{r}_{o_i} - \vec{r}_{o_{i-1}}

Donde:

roi=[Ti0]1:3,4 ;roi−1=[Ti−10]1:3,4\vec{r}_{o_i} = \sbr{ T_i^0 }_{1:3,4} \, ; \quad \vec{r}_{o_{i-1}} = \sbr{ T_{i-1}^0 }_{1:3,4}

En el caso particular de que la i-ésima junta sea una revoluta, el término (voi/oi−1)i−1 \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} se hace cero, puesto que la distancia entre los orígenes de {i}\{i\} y {i−1}\{i-1\} permanece invariable.

5.5Velocidades lineales en un manipulador serial

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.

5.5.1Velocidad lineal del origen del sistema i{i}

Comenzaremos determinando la velocidad del origen de coordenadas del sistema i{i} cuando la junta ii es de tipo revoluta. En la Figura Figure 4 puedes observar el esquema que representa este caso, observa que el eslabón ii está unido al eslabón i−1i-1 mediante la junta ii, además, el eje zi−1z_{i-1} apunta en la dirección de accionamiento de la junta ii.

Velocidad del origen del sistema i cuando la junta i es revoluta.

Figure 4:Velocidad del origen del sistema ii cuando la junta ii es revoluta.

Formularemos una expresión de velocidad para el origen del sistema {i}\{i\} asumiendo que conocemos la velocidad del origen de coordenadas del sistema {i−1}\{i-1\}. Es sencillo observar que:

Ejemplo. Calcule la velocidad lineal del extremo del manipulador RR mostrado en la Figura Figure 1.

Solución:

La velocidad lineal del extremo está dada por:

vo2=ω1×ro1/o0+(vo1/o0)0+ω2×ro2/o1+(vo2/o1)1\vec{v}_{o_2} = \W_1 \times \vec{r}_{o_1/o_0} + \rbr{ \vec{v}_{o_1/o_0} }_0 + \W_2 \times \vec{r}_{o_2/o_1} + \rbr{ \vec{v}_{o_2/o_1} }_1

Dado que la distancia entre los orígenes de los sistemas {1}\{1\} y {0}\{0\} no cambia, entonces (vo1/o0)0=0\rbr{ \vec{v}_{o_1/o_0} }_0 = \vec{0}. Algo similar ocurre con los orígenes de {2}\{2\} y {1}\{1\}, así pues (vo2/o1)1=0\rbr{ \vec{v}_{o_2/o_1} }_1 = \vec{0}. \

Las velocidades angulares ω1\W_1 y ω2\W_2 para este manipulador están dadas por:

ω1=[00q˙1] ;ω2=[00q˙1+q˙2]\W_1 = \colvec{0}{0}{\qp{1}} \, ; \quad \W_2 = \colvec{0}{0}{\qp{1} + \qp{2}}

Los vectores de posición ro1/o0\vec{r}_{o_1/o_0} y ro2/o1\vec{r}_{o_2/o_1} se pueden formar a partir de las matrices Ti0T_i^0, quedando:

ro1/o0=[l1c1l1s10] ;ro2/o1=[l2c12l2s120]\vec{r}_{o_1/o_0} = \colvec{l_1 c_1}{l_1 s_1}{0} \, ; \quad \vec{r}_{o_2/o_1} = \colvec{l_2 c_{12}}{l_2 s_{12}}{0}

Entonces:

ω1×ro1/o0=[00q˙1]×[l1c1l1s10]=[−q˙1l1s1q˙1l1c10]\W_1 \times \vec{r}_{o_1/o_0} = \colvec{0}{0}{\qp{1}} \times \colvec{l_1 c_1}{l_1 s_1}{0} = \colvec{-\qp{1} l_1 s_1}{\qp{1} l_1 c_1}{0}
ω2×ro2/o1=[00q˙1+q˙2]×[l2c12l2s120]=[−(q˙1+q˙2)l2s12(q˙1+q˙2)l2c120]\W_2 \times \vec{r}_{o_2/o_1} = \colvec{0}{0}{\qp{1} + \qp{2}} \times \colvec{l_2 c_{12}}{l_2 s_{12}}{0} = \colvec{-\rbr{\qp{1} + \qp{2}} l_2 s_{12}}{ \rbr{\qp{1} + \qp{2}} l_2 c_{12} }{0}

Sumando ambos términos:

vo2=[−q˙1l1s1−(q˙1+q˙2)l2s12q˙1l1c1+(q˙1+q˙2)l2c120]\vec{v}_{o_2} = \colvec{-\qp{1} l_1 s_1 -\rbr{\qp{1} + \qp{2}} l_2 s_{12}}{ \qp{1} l_1 c_1 + \rbr{\qp{1} + \qp{2}} l_2 c_{12} }{ 0 }

Si conocemos la posición del extremo del manipulador (ron \vec{r}_{o_n} ) en función de las variables articulares de posición (q1q_1, q2q_2, ..., qnq_n), es posible determinar la velocidad lineal mediante derivación con respecto al tiempo, es decir:

von=drondt\vec{v}_{o_n} = \frac{d\vec{r}_{o_n}}{dt}

El vector ron\vec{r}_{o_n} se puede obtener de la matriz de cinemática directa Tn0T_n^0; recordando que la cuarta columna de esta matriz corresponde a la posición del origen de coordenadas del sistema de referencia {n}\{n\}, el cual se coloca usualmente en el extremo del manipulador, es decir:

ron=[Tn0]1:3,4\vec{r}_{o_n} = \sbr{ T_n^0 }_{1:3,4}

El vector de velocidad lineal von\vec{v}_{o_n} nos quedará usualmente en términos de las velocidades articulares (q˙1\dot{q}_1, q˙2\dot{q}_2, ..., q˙n\dot{q}_n). Al efectuar la derivada con respecto al tiempo se debe considerar que las variables articulares de posición (q1q_1, q2q_2, …\ldots, qnq_n) son funciones que dependen del tiempo, es decir qi=qi(t) q_i = q_i(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:

T20=[c12−s120l1c1+l2c12s12c120l1s1+l2s1200100001]T_2^0 = \begin{bmatrix} c_{12} & -s_{12} & 0 & l_1 c_1 + l_2 c_{12} \\ s_{12} & c_{12} & 0 & l_1 s_1 + l_2 s_{12} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Entonces, el vector de posición ro2 \vec{r}_{o_2} sería:

ro2=[l1c1+l2c12l1s1+l2s120]\vec{r}_{o_2} = \begin{bmatrix} l_1 c_1 + l_2 c_{12} \\ l_1 s_1 + l_2 s_{12} \\ 0 \end{bmatrix}

Por lo cual, al derivar con respecto al tiempo tendríamos:

vo2=[−l1q˙1s1−l2(q˙1+q˙2)s12l1q˙1c1+l2(q˙1+q˙2)c120]\textcolor{green}{ \vec{v}_{o_2} = \left[\begin{matrix} - l_{1} \dot{q}_{1} s_{1} - l_{2} \left(\dot{q}_{1} + \dot{q}_{2}\right) s_{12} \\ l_{1} \dot{q}_{1} c_{1} + l_{2} \left(\dot{q}_{1} + \dot{q}_{2}\right) c_{12} \\ 0\end{matrix}\right] }

Observe que esta solución coincide con la obtenida previamente mediante los productos vectoriales.

Ejemplo. Calcule la velocidad lineal del extremo del manipulador RRP mostrado en la Figura Figure 5, para un instante en el que:

q1=45° ;q2=30° ;q3=200 mmq_1 = 45° \,;\quad q_2 = 30° \,;\quad q_3 = 200 \text{ mm}
q˙1=1.5 rad/s ;q˙2=2.0 rad/s ;q˙3=30 mm/s\dot{q}_1 = 1.5 \text{ rad/s} \,;\quad \dot{q}_2 = 2.0 \text{ rad/s} \,;\quad \dot{q}_3 = 30 \text{ mm/s}
.

Figure 5:.

Solución:

La matriz de cinemática directa para este manipulador está dada por:

T30=[c1c2s1c1s260c1+q3c1s2s1c2−c1s1s260s1+q3s1s2s20−c2−q3c2+2800001]T_3^0 = \begin{bmatrix} c_1 c_2 & s_1 & c_1 s_2 & 60 c_1 + q_3 c_1 s_2 \\ s_1 c_2 & -c_1 & s_1 s_2 & 60 s_1 + q_3 s_1 s_2 \\ s_2 & 0 & -c_2 & -q_3 c_2 + 280 \\ 0 & 0 & 0 & 1 \end{bmatrix}

De lo cual:

ro3=[60c1+q3c1s260s1+q3s1s2−q3c2+280]\vec{r}_{o_3} = \colvec{60 c_1 + q_3 c_1 s_2}{60 s_1 + q_3 s_1 s_2}{-q_3 c_2 + 280}

Derivando con respecto al tiempo se tiene:

vo3=[−60q˙1s1+q˙3c1s2−q3q˙1s1s2+q3q˙2c1c260q˙1c1+q˙3s1s2+q3q˙1c1s2+q3q˙2s1c2−q˙3c2+q3q˙2s2]\vec{v}_{o_3} = \colvec{-60 \qp{1} s_1 + \qp{3} c_1 s_2 - q_3 \qp{1} s_1 s_2 + q_3 \qp{2} c_1 c_2 }{60 \qp{1} c_1 + \qp{3} s_1 s_2 + q_3 \qp{1} c_1 s_2 + q_3 \qp{2} s_1 c_2 }{ -\qp{3} c_2 + q_3 \qp{2} s_2 }

Sustituyendo los valores numéricos:

vo3=[85.85425.3174] mm/s\textcolor{green}{ \vec{v}_{o_3} = \colvec{85.85}{425.3}{174} \text{ mm/s} }

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 PP, ubicado en el eslabón ii, es sencillo ver que su velocidad lineal se puede determinar mediante:

vP=voi+vP/oi\vec{v}_P = \vec{v}_{o_i} + \vec{v}_{P/{o_i}}

Si el punto PP está fijo en el eslabón ii (caso típico), entonces su velocidad relativa vP/oi\vec{v}_{P/{o_i}} se debe únicamente a la rotación del eslabón ii, es decir:

vP=voi+ωi×rP/oi\vec{v}_P = \vec{v}_{o_i} + \W_i \times \vec{r}_{P/{o_i}}

En el caso de que el punto PP no esté fijo en el eslabón ii, entonces, adicionalmente debería considerarse el cambio en la magnitud del vector rP/oi\vec{r}_{P/{o_i}} visto desde el sistema {i}\{i\}, es decir:

vP=voi+ωi×rP/oi+(vP/oi)i\vec{v}_P = \vec{v}_{o_i} + \W_i \times \vec{r}_{P/{o_i}} + \rbr{ \vec{v}_{P/{o_i}} }_i

Ejemplo. Calcule la velocidad de los puntos AA y BB, ubicados en los eslabones 1 y 2, respectivamente, del manipulador RR mostrado en la figura. Se sabe que:

rA1=[−(l1−lc1)00] ;rB2=[−(l2−lc2)00]\vec{r}_A^1 = \colvec{-\rbr{l_1 - l_{c_1}}}{0}{0} \, ; \qquad \vec{r}_B^2 = \colvec{-\rbr{l_2 - l_{c_2}}}{0}{0}
Manipulador RR

Figure 6:Manipulador RR

Solución:

Para calcular vA\vec{v}_A:

vA=vo1+ω1×rA/o1=ω1×ro1/o0+ω1×rA/o1=ω1×(ro1/o0+rA/o1)=ω1×rA/o0\begin{align*} \vec{v}_A & = \vec{v}_{o_1} + \W_1 \times \vec{r}_{A/{o_1}} \\ & = \W_1 \times \vec{r}_{o_1/o_0} + \W_1 \times \vec{r}_{A/o_1} \\ & = \W_1 \times \rbr{ \vec{r}_{o_1/o_0} + \vec{r}_{A/o_1} } \\ & = \W_1 \times \vec{r}_{A/o_0} \end{align*}

La velocidad angular ω1 \W_1 se determina mediante:

ω1=ω0,10=[00q˙1]\W_1 = \W_{0,1}^0 = \colvec{0}{0}{\qp{1}}

Y el vector de posición rA/o0\vec{r}_{A/o_0}:

rA/o0=rA−ro0\vec{r}_{A/o_0} = \vec{r}_A - \vec{r}_{o_0}
rA=T10rA1=[lc1c1lc1s10]\vec{r}_A = T_1^0 \vec{r}_A^1 = \colvec{l_{c_1} c_1}{ l_{c_1} s_1 }{0}

Entonces:

vA=ω1×rA/o0=[00q˙1]×[lc1c1lc1s10]=[−q˙1lc1s1q˙1lc1c10]\vec{v}_A = \W_1 \times \vec{r}_{A/o_0} = \colvec{0}{0}{\qp{1}} \times \colvec{l_{c_1} c_1}{ l_{c_1} s_1 }{0} = \textcolor{green}{ \colvec{ - \qp{1} l_{c_1} s_1 }{ \qp{1} l_{c_1} c_1 }{0} }

Para determinar la velocidad de BB:

vB=vo2+ω2×rB/o2=ω1×ro1/o0+ω2×ro2/o1+ω2×rB/o2=ω1×ro1/o0+ω2×(ro2/o1+rB/o2)=ω1×ro1/o0+ω2×rB/o1\begin{align*} \vec{v}_B & = \vec{v}_{o_2} + \W_2 \times \vec{r}_{B/{o_2}} \\ & = \W_1 \times \vec{r}_{o_1/o_0} + \W_2 \times \vec{r}_{o_2/o_1} + \W_2 \times \vec{r}_{B/o_2} \\ & = \W_1 \times \vec{r}_{o_1/o_0} + \W_2 \times \rbr{ \vec{r}_{o_2/o_1} + \vec{r}_{B/o_2} } \\ & = \W_1 \times \vec{r}_{o_1/o_0} + \W_2 \times \vec{r}_{B/o_1} \end{align*}

Donde:

ω2=ω0,10+R10ω1,21=[00q˙1+q˙2]\W_2 = \W_{0,1}^0 + R_1^0 \W_{1,2}^1 = \colvec{0}{0}{\qp{1} + \qp{2}}
ro1/o0=ro1−ro0=[l1c1l1s10]\vec{r}_{o_1/o_0} = \vec{r}_{o_1} - \vec{r}_{o_0} = \colvec{l_1 c_1}{l_1 s_1}{0}
rB/o1=rB−ro1=[l1c1+lc2c12l1s1+lc2s120]−[l1c1l1s10]=[lc2c12lc2s120]\vec{r}_{B/o_1} = \vec{r}_B - \vec{r}_{o_1} = \colvec{l_1 c_1 + l_{c_2} c_{12} }{ l_1 s_1 + l_{c_2} s_{12} }{0} - \colvec{l_1 c_1}{l_1 s_1}{0} = \colvec{l_{c_2} c_{12}}{ l_{c_2} s_{12} }{0}

Calculando los productos vectoriales:

ω1×ro1/o0=[00q˙1]×[l1c1l1s10]=[−q˙1l1s1q˙1l1c10]\W_1 \times \vec{r}_{o_1/o_0} = \colvec{0}{0}{\qp{1}} \times \colvec{l_1 c_1}{l_1 s_1}{0} = \colvec{ -\qp{1} l_1 s_1 }{ \qp{1} l_1 c_1 }{0}
ω2×rB/o1=[00q˙1+q˙2]×[lc2c12lc2s120]=[−(q˙1+q˙2)lc2s12(q˙1+q˙2)lc2c120]\W_2 \times \vec{r}_{B/o_1} = \colvec{0}{0}{\qp{1} + \qp{2}} \times \colvec{l_{c_2} c_{12}}{ l_{c_2} s_{12} }{0} = \colvec{ -\rbr{\qp{1} + \qp{2}} l_{c_2} s_{12} }{ \rbr{\qp{1} + \qp{2}} l_{c_2} c_{12} }{0}

Entonces:

vB=[−q˙1l1s1−(q˙1+q˙2)lc2s12q˙1l1c1+(q˙1+q˙2)lc2c120]\textcolor{green}{ \vec{v}_B = \colvec{ -\qp{1} l_1 s_1 -\rbr{\qp{1} + \qp{2}} l_{c_2} s_{12} } { \qp{1} l_1 c_1 + \rbr{\qp{1} + \qp{2}} l_{c_2} c_{12} }{0} }

La velocidad lineal de un punto PP cualquiera, ubicado en el eslabón ii del manipulador serial, se puede determinar también derivando con respecto al tiempo un vector rP\vec{r}_P que describa su posición en el sistema de la base, en términos de las posiciones articulares [1], es decir:

vP=drPdt\vec{v}_P = \frac{d \vec{r}_P}{dt}

Habitualmente, el vector rP \vec{r}_P se formará de manera más simple si primero lo describimos en el sistema de referencia adherido al eslabón ii, 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:

rP=Ti0rPi\vec{r}_P = T_i^0 \vec{r}_P^i

Donde Ti0 T_i^0 es una matriz de transformación homogénea que describe al sistema del eslabón {i}\{i\} con respecto al de la base, y rPi\vec{r}_P^i es un vector que describe la posición del punto PP en el sistema {i}\{i\}. Si el punto PP está fijo en el eslabón ii, entonces el vector rPi\vec{r}_P^i tendrá componentes constantes.

5.6La matriz jacobiana

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):

von=∑i=1n[ωi×roi/oi−1+(voi/oi−1)i−1]=∑i=1n(ωi×roi/oi−1)+∑i=1n(voi/oi−1)i−1\vec{v}_{o_n} = \sum_{i=1}^n \sbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} + \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} } = \sum_{i=1}^n \rbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} }+ \sum_{i=1}^n \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1}

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 \W_{i-1,i}^0 , para esto podemos desarrollar algunos términos de la ecuación:

∑i=1n(ωi×roi/oi−1)=ω1×ro1/o0+ω2×ro2/o1+⋯+ωn×ron/on−1\sum_{i=1}^n \rbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} } = \W_1 \times \vec{r}_{o_1/o_0} + \W_2 \times \vec{r}_{o_2/o_1} + \cdots + \W_n \times \vec{r}_{o_n/o_{n-1}}

Donde:

ω1×ro1/o0=ω0,10×ro1/o0ω2×ro2/o1=[ω0,10+ω1,20]×ro2/o1=ω0,10×ro2/o1+ω1,20×ro2/o1ωn×ron/on−1=[ω0,10+ω1,20+⋯+ωn−1,n0]×ron/on−1=ω0,10×ron/on−1+ω1,20×ron/on−1+⋯+ωn−1,n0×ron/on−1\begin{align*} \W_1 \times \vec{r}_{o_1/o_0} & = \W_{0,1}^0 \times \vec{r}_{o_1/o_0} \\ \W_2 \times \vec{r}_{o_2/o_1} & = \sbr{ \W_{0,1}^0 + \W_{1,2}^0 } \times \vec{r}_{o_2/o_1} \\ & = \W_{0,1}^0 \times \vec{r}_{o_2/o_1} + \W_{1,2}^0 \times \vec{r}_{o_2/o_1} \\ \W_n \times \vec{r}_{o_n/o_{n-1}} & = \sbr{ \W_{0,1}^0 + \W_{1,2}^0 + \cdots + \W_{n-1,n}^0} \times \vec{r}_{o_n/o_{n-1}} \\ & = \W_{0,1}^0 \times \vec{r}_{o_n/o_{n-1}} + \W_{1,2}^0 \times \vec{r}_{o_n/o_{n-1}} + \cdots + \W_{n-1,n}^0 \times \vec{r}_{o_n/o_{n-1}} \end{align*}

Así pues:

∑i=1n(ωi×roi/oi−1)=[ω0,10×ro1/o0+ω0,10×ro2/o1+⋯+ω0,10×ron/on−1]++[ω1,20×ro2/o1+⋯+ω1,20×ron/on−1]++⋯+[ωn−1,n0×ron/on−1]\begin{align*} \sum_{i=1}^n \rbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} } = & \sbr{ \W_{0,1}^0 \times \vec{r}_{o_1/o_0} + \W_{0,1}^0 \times \vec{r}_{o_2/o_1} + \cdots + \W_{0,1}^0 \times \vec{r}_{o_n/o_{n-1}} } + \\ + & \sbr{ \W_{1,2}^0 \times \vec{r}_{o_2/o_1} + \cdots + \W_{1,2}^0 \times \vec{r}_{o_n/o_{n-1}} } + \\ + & \cdots + \sbr{ \W_{n-1,n}^0 \times \vec{r}_{o_n/o_{n-1}} } \end{align*}

La propiedad distributiva del producto cruz establece que se cumple: a×(b1+b2+⋯+bn)=a×b1+a×b2+⋯+a×bn\vec{a} \times \rbr{\vec{b}_1 + \vec{b}_2 + \cdots + \vec{b}_n } = \vec{a} \times \vec{b}_1 + \vec{a} \times \vec{b}_2 + \cdots + \vec{a} \times \vec{b}_n . Considerando esto, podemos reescribir lo anterior como:

∑i=1n(ωi×roi/oi−1)=ω0,10×[ro1/o0+ro2/o1+⋯+ron/on−1]++ω1,20×[ro2/o1+⋯+ron/on−1]+⋯+ωn−1,n0×ron/on−1\begin{align*} \sum_{i=1}^n \rbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} } = & \W_{0,1}^0 \times \sbr{ \vec{r}_{o_1/o_0} + \vec{r}_{o_2/o_1} + \cdots + \vec{r}_{o_n/o_{n-1}} } + \\ + & \W_{1,2}^0 \times \sbr{ \vec{r}_{o_2/o_1} + \cdots + \vec{r}_{o_n/o_{n-1}} } \\ + & \cdots + \W_{n-1,n}^0 \times \vec{r}_{o_n/o_{n-1}} \end{align*}

Pero, dado que:

[ro1/o0+ro2/o1+⋯+ron/on−1]=ron/o0\sbr{ \vec{r}_{o_1/o_0} + \vec{r}_{o_2/o_1} + \cdots + \vec{r}_{o_n/o_{n-1}} } = \vec{r}_{o_n/o_{0}}
[ro2/o1+⋯+ron/on−1]=ron/o1\sbr{ \vec{r}_{o_2/o_1} + \cdots + \vec{r}_{o_n/o_{n-1}} } = \vec{r}_{o_n/o_1}

Entonces:

∑i=1n(ωi×roi/oi−1)=ω0,10×ron/o0+ω1,20×ron/o1+⋯+ωn−1,n0×ron/on−1=∑i=1n[ωi−1,i0×ron/oi−1]\sum_{i=1}^n \rbr{ \W_i \times \vec{r}_{o_i/o_{i-1}} } = \W_{0,1}^0 \times \vec{r}_{o_n/o_0} + \W_{1,2}^0 \times \vec{r}_{o_n/o_1} + \cdots + \W_{n-1,n}^0 \times \vec{r}_{o_n/o_{n-1}} = \sum_{i=1}^n \sbr{ \W_{i-1,i}^0 \times \vec{r}_{o_n/o_{i-1}} }

Con lo anterior, podemos reescribir la ecuación (54) como:

von=∑i=1n[ωi−1,i0×ron/oi−1+(voi/oi−1)i−1]\vec{v}_{o_n} = \sum_{i=1}^n \sbr{ \W_{i-1,i}^0 \times \vec{r}_{o_n/o_{i-1}} + \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} }

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\W_{i-1,i}^0 = 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\W_{i-1,i}^0 se puede escribir como:

ωi−1,i0=Ri−10ωi−1,ii−1={q˙izi−1si la i-eˊsima junta es revoluta0si la i-eˊsima junta es prismaˊtica\W_{i-1,i}^0 = R_{i-1}^0 \W_{i-1,i}^{i-1} = \left\{ \begin{matrix} \dot{q}_i \vec{z}_{i-1} & \text{si la i-ésima junta es revoluta} \\ \vec{0} & \text{si la i-ésima junta es prismática} \end{matrix} \right.

La velocidad (voi/oi−1)i−1\rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} se puede escribir como:

(voi/oi−1)i−1=Ri−10(voi/oi−1)i−1i−1\rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} = R_{i-1}^0 \rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1}^{i-1}

Donde:

(voi/oi−1)i−1i−1=[00q˙i]\rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1}^{i-1} = \colvec{0}{0}{\qp{i}}

Siempre y cuando la i-ésima junta sea de tipo prismática; en el caso de que sea revoluta (voi/oi−1)i−1i−1=0\rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1}^{i-1} = \vec{0}. Así pues:

(voi/oi−1)i−1={0 si la i-eˊsima junta es revolutaq˙izi−1 si la i-eˊsima junta es prismaˊtica\rbr{ \vec{v}_{o_i/o_{i-1}} }_{i-1} = \left\{ \begin{matrix} \vec{0} & \text{ si la i-ésima junta es revoluta} \\ \dot{q}_i \vec{z}_{i-1} & \text{ si la i-ésima junta es prismática} \\ \end{matrix} \right.

Considerando lo anterior, la ecuación \ref{eq:linear_velocity_end_modified} puede reescribirse como:

von=∑i=1n{q˙i zi−1×ron/oi−1 si la i-eˊsima junta es revolutaq˙i zi−1 si la i-eˊsima junta es prismaˊtica\vec{v}_{o_n} = \sum_{i=1}^n \left\{ \begin{matrix} \dot{q}_i \, \vec{z}_{i-1} \times \vec{r}_{o_n/o_{i-1}} & \text{ si la i-ésima junta es revoluta} \\ \dot{q}_i \, \vec{z}_{i-1} & \text{ si la i-ésima junta es prismática} \end{matrix}\right.

O bien, en forma un poco más compacta como:

von=∑i=1n q˙i Jvi\vec{v}_{o_n} = \sum_{i=1}^n \, \dot{q}_i \, \vec{J}_{v_i}

Donde Jvi\vec{J}_{v_i} podemos definirlo de la siguiente manera:

Jvi={zi−1×ron/oi−1 si la i-eˊsima junta es revoluta.zi−1 si la i-eˊsima junta es prismaˊtica.\vec{J}_{v_i} = \left\{ \begin{matrix} \vec{z}_{i-1} \times \vec{r}_{o_n/o_{i-1}} & \text{ si la i-ésima junta es revoluta.} \\ \vec{z}_{i-1} & \text{ si la i-ésima junta es prismática.} \end{matrix} \right.

Se puede observar que la ecuación (106) es posible escribirla como una multiplicación de una matriz JvJ_v (cuyas columnas son los vectores Jvi\vec{J}_{v_i}) por un vector q˙\dot{\vec{q}}, es decir:

von=Jv q˙\vec{v}_{o_n} = J_v \, \dot{\vec{q}}

Donde:

Jv=[Jv1Jv2⋯Jvn] ;q˙=[q˙1q˙2⋮q˙n]J_v = \begin{bmatrix} \vec{J}_{v_1} & \vec{J}_{v_2} & \cdots & \vec{J}_{v_n} \end{bmatrix} \, \quad ; \quad \dot{ \vec{q} } = \begin{bmatrix} \dot{q}_1 \\ \dot{q}_2 \\ \vdots \\ \dot{q}_n \end{bmatrix}

A la matriz JvJ_v 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 nn) también se puede escribir en forma de una multiplicación matricial. Para esto comenzaremos recordando que la velocidad angular del eslabón nn está dada por la suma de las velocidades angulares ωi−1,i0 \W_{i-1,i}^0 de los eslabones que le preceden:

ωn=ω0,10+ω1,20+⋯+ωn−1,n0=∑i=1n ωi−1,i0\W_n = \W_{0,1}^0 + \W_{1,2}^0 + \cdots + \W_{n-1,n}^0 = \sum_{i=1}^n \, \W_{i-1,i}^0

Sabemos además que:

ωi−1,i0=Ri−10ωi−1,ii−1={q˙izi−1si la i-eˊsima junta es revoluta0si la i-eˊsima junta es prismaˊtica\W_{i-1,i}^0 = R_{i-1}^0 \W_{i-1,i}^{i-1} = \left\{ \begin{matrix} \dot{q}_i \vec{z}_{i-1} & \text{si la i-ésima junta es revoluta} \\ \vec{0} & \text{si la i-ésima junta es prismática} \end{matrix} \right.

Entonces, podemos reescribir la suma de velocidades angulares como:

ωn=∑i=1n{q˙izi−1si la i-eˊsima junta es revoluta0si la i-eˊsima junta es prismaˊtica\W_n = \sum_{i=1}^n \left\{ \begin{matrix} \dot{q}_i \vec{z}_{i-1} & \text{si la i-ésima junta es revoluta} \\ \vec{0} & \text{si la i-ésima junta es prismática} \end{matrix} \right.

O en forma equivalente como:

ωn=∑i=1n q˙i Jωi\W_n = \sum_{i=1}^n \, \dot{q}_i \, \vec{J}_{\omega_i}

Donde:

Jωi={zi−1si la i-eˊsima junta es revoluta0si la i-eˊsima junta es prismaˊtica\vec{J}_{\omega_i} = \left\{ \begin{matrix} \vec{z}_{i-1} & \text{si la i-ésima junta es revoluta} \\ \vec{0} & \text{si la i-ésima junta es prismática} \end{matrix} \right.

La ecuación (113) se puede escribir también como una multiplicación de una matriz JωJ_{\omega} (cuyas columnas son los vectores Jωi\vec{J}_{\omega_i}) por un vector q˙\dot{\vec{q}}, es decir:

ωn=Jω q˙\W_n = J_{\omega} \, \dot{\vec{q}}

Donde:

Jω=[Jω1Jω2⋯Jωn] ;q˙=[q˙1q˙2⋮q˙n]J_{\omega} = \begin{bmatrix} \vec{J}_{\omega_1} & \vec{J}_{\omega_2} & \cdots & \vec{J}_{\omega_n} \end{bmatrix} \, \quad ; \quad \dot{ \vec{q} } = \begin{bmatrix} \dot{q}_1 \\ \dot{q}_2 \\ \vdots \\ \dot{q}_n \end{bmatrix}

A la matriz JωJ_{\omega} 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:

v=Jq˙\vec{v} = J \dot{ \vec{q} }

Donde:

v=[vonωn] ;J=[JvJω] ;q˙=[q˙1q˙2⋮q˙n]\vec{v} = \begin{bmatrix} \vec{v}_{o_n} \\ \W_n \end{bmatrix} \, ; \qquad J = \begin{bmatrix} J_v \\ J_{\omega} \end{bmatrix} \, ; \qquad \dot{ \vec{q} } = \begin{bmatrix} \dot{q}_1 \\ \dot{q}_2 \\ \vdots \\ \dot{q}_n \end{bmatrix}

A la matriz JJ 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 nn grados de libertad, es una matriz de 6×n6 \times 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 nn) de un manipulador serial de nn grados de libertad.

5.6.1¿Cómo formar la matriz jacobiana?

La matriz jacobiana asociada con el extremo de un manipulador serial está conformada de la siguiente manera:

J=[Jv1Jv2⋯JvnJω1Jω2⋯Jωn]J = \begin{bmatrix} \vec{J}_{v_1} & \vec{J}_{v_2} & \cdots & \vec{J}_{v_n} \\ \vec{J}_{\omega_1} & \vec{J}_{\omega_2} & \cdots & \vec{J}_{\omega_n} \\ \end{bmatrix}

Donde:

Jvi={zi−1×(ron−roi−1) si la i-eˊsima junta es revoluta.zi−1 si la i-eˊsima junta es prismaˊtica.\vec{J}_{v_i} = \left\{ \begin{matrix} \vec{z}_{i-1} \times \rbr{ \vec{r}_{o_n} - \vec{r}_{o_{i-1}} } & \text{ si la i-ésima junta es revoluta.} \\ \vec{z}_{i-1} & \text{ si la i-ésima junta es prismática.} \end{matrix} \right.
Jωi={zi−1si la i-eˊsima junta es revoluta0si la i-eˊsima junta es prismaˊtica\vec{J}_{\omega_i} = \left\{ \begin{matrix} \vec{z}_{i-1} & \text{si la i-ésima junta es revoluta} \\ \vec{0} & \text{si la i-ésima junta es prismática} \end{matrix} \right.

Además, se debe considerar que cada uno de los vectores implicados se pueden determinar de la siguiente manera:

zi−1=[Ti−10]1:3,3\vec{z}_{i-1} = \sbr{ T_{i-1}^0 }_{1:3,3}
ron=[Tn0]1:3,4\vec{r}_{o_n} = \sbr{ T_n^0 }_{1:3,4}
roi−1=[Ti−10]1:3,4\vec{r}_{o_{i-1}} = \sbr{ T_{i-1}^0 }_{1:3,4}

De manera particular, los vectores ro0\vec{r}_{o_0} y z0\vec{z}_0 siempre tendrán la siguiente forma:

ro0=[000] ;z0=[001]\vec{r}_{o_0} = \colvec{0}{0}{0} \, ; \qquad \vec{z}_{0} = \colvec{0}{0}{1}

Ejemplo. Calcule la matriz jacobiana del manipulador planar RR mostrado en la Figura rr_robot_dh).

Solución:

De la cinemática directa se sabe que:

T10=[c1−s10l1c1s1c10l1s100100001];T20=[c12−s120l1c1+l2c12s12c120l1s1+l2s1200100001]T_1^0 = \begin{bmatrix} c_1 & -s_1 & 0 & l_1 c_1 \\ s_1 & c_1 & 0 & l_1 s_1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \qquad ; \qquad T_2^0 = \begin{bmatrix} c_{12} & -s_{12} & 0 & l_1 c_1 + l_2 c_{12} \\ s_{12} & c_{12} & 0 & l_1 s_1 + l_2 s_{12} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

Dado que ambas articulaciones son revolutas, la matriz jacobiana quedará de la forma:

J=[Jv1Jv2Jω1Jω2]=[z0×(ro2−ro0)z1×(ro2−ro1)z0z1]J = \begin{bmatrix} \vec{J}_{v_1} & \vec{J}_{v_2} \\ \vec{J}_{\omega_1} & \vec{J}_{\omega_2} \end{bmatrix} = \begin{bmatrix} \vec{z}_0 \times \left( \vec{r}_{o_2} - \vec{r}_{o_0} \right) & \vec{z}_1 \times \left( \vec{r}_{o_2} - \vec{r}_{o_1} \right) \\ \vec{z}_0 & \vec{z}_1 \end{bmatrix}

Donde:

z0=[001];ro0=[000];z1=[001];ro1=[l1c1l1s10];ro2=[l1c1+l2c12l1s1+l2s120]\vec{z}_0 = \colvec{0}{0}{1} \quad ; \quad \vec{r}_{o_0} = \colvec{0}{0}{0} \quad ; \quad \vec{z}_1 = \colvec{0}{0}{1} \quad ; \quad \vec{r}_{o_1} = \colvec{l_1 c_1}{l_1 s_1}{0} \quad ; \quad \vec{r}_{o_2} = \colvec{l_1 c_1 + l_2 c_{12}}{l_1 s_1 + l_2 s_{12}}{0}

Realizando los productos vectoriales correspondientes se tiene:

Jv1=z0×(ro2−ro0)=[001]×[l1c1+l2c12l1s1+l2s120]=[−l1s1−l2s12l1c1+l2c120]\vec{J}_{v_1} = \vec{z}_0 \times \left( \vec{r}_{o_2} - \vec{r}_{o_0} \right) = \colvec{0}{0}{1} \times \colvec{l_1 c_1 + l_2 c_{12}}{l_1 s_1 + l_2 s_{12}}{0} = \colvec{-l_1 s_1 - l_2 s_{12}}{l_1 c_1 + l_2 c_{12}}{0}
Jv2=z1×(ro2−ro1)=[001]×[l2c12l2s120]=[−l2s12l2c120]\vec{J}_{v_2} = \vec{z}_1 \times \left( \vec{r}_{o_2} - \vec{r}_{o_1} \right) = \colvec{0}{0}{1} \times \colvec{l_2 c_{12}}{l_2 s_{12}}{0} = \colvec{-l_2 s_{12}}{l_2 c_{12}}{0}

Dado que ambas articulaciones son revolutas, tanto Jω1 \vec{J}_{\omega_1} como Jω2 \vec{J}_{\omega_2} están dadas por:

Jω1=z0=[001];Jω1=z1=[001]\vec{J}_{\omega_1} = \vec{z}_0 = \colvec{0}{0}{1} \qquad ; \qquad \vec{J}_{\omega_1} = \vec{z}_1 = \colvec{0}{0}{1}

Entonces, acomodando los términos calculados, se tiene:

J=[−l1s1−l2s12−l2s12l1c1+l2c12l2c1200000011]\textcolor{green}{ J = \begin{bmatrix} -l_1 s_1 - l_2 s_{12} & -l_2 s_{12} \\ l_1 c_1 + l_2 c_{12} & l_2 c_{12} \\ 0 & 0 \\ 0 & 0 \\ 0 & 0 \\ 1 & 1 \end{bmatrix} }

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° q_1 = 45° y q2=30° q_2 = 30° , siendo q˙1=1.5 \dot{q}_1 = 1.5 rad/s y q˙2=3 \dot{q}_2 = 3 rad/s. Considere que l1=l2=280 l_1 = l_2 = 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:

J=[−468.449−270.459270.45972.46930000001.01.0]J = \left[\begin{matrix}-468.449 & -270.459\\270.459 & 72.4693\\0 & 0\\0 & 0\\0 & 0\\1.0 & 1.0\end{matrix}\right]

Para obtener el vector de velocidades del extremo del manipulador, debemos multiplicar la matriz jacobiana JJ por el vector de velocidades articulares q˙\vec{\dot{q}}, mismo que está dado por:

q˙=[q1˙q2˙]=[1.53]\dot{ \vec{q} } = \begin{bmatrix} \dot{q_1} \\ \dot{q_2} \end{bmatrix} = \begin{bmatrix} 1.5 \\ 3 \end{bmatrix}

Realizando la multiplicación, tenemos:

V=Jq˙=[−468.449−270.459270.45972.46930000001.01.0][1.53]=[−1514.05623.0970004.5]\vec{V} = J \dot{ \vec{q} } = \begin{bmatrix} -468.449 & -270.459\\270.459 & 72.4693\\0 & 0\\0 & 0\\0 & 0\\1.0 & 1.0 \end{bmatrix} \begin{bmatrix} 1.5 \\ 3 \end{bmatrix} = \textcolor{green}{ \left[\begin{matrix}-1514.05\\623.097\\0\\0\\0\\4.5\end{matrix}\right] }

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° q_1 = 90° , q2=200 q_2 = 200 mm y q3=100 q_3 = 100 mm, además, se sabe que las velocidades articulares son q˙1=−2.5 \dot{q}_1 = -2.5 rad/s, q˙2=30 \dot{q}_2 = 30 mm/s, q˙3=45 \dot{q}_3 = 45 mm/s. Considere que a=200 a = 200 mm y b=70 b = 70 mm.

Manipulador RPP

Figure 7:Manipulador RPP

Solución:

Calculando la cinemática directa, se tiene:

T10=[cos⁡(q1)−sin⁡(q1)0bcos⁡(q1)sin⁡(q1)cos⁡(q1)0bsin⁡(q1)001a0001]T_1^0 = \displaystyle \left[\begin{matrix}\cos{\left(q_{1} \right)} & - \sin{\left(q_{1} \right)} & 0 & b \cos{\left(q_{1} \right)}\\\sin{\left(q_{1} \right)} & \cos{\left(q_{1} \right)} & 0 & b \sin{\left(q_{1} \right)}\\0 & 0 & 1 & a\\0 & 0 & 0 & 1\end{matrix}\right]
T20=[−sin⁡(q1)0cos⁡(q1)bcos⁡(q1)cos⁡(q1)0sin⁡(q1)bsin⁡(q1)010a+q20001]T_2^0 = \displaystyle \left[\begin{matrix}- \sin{\left(q_{1} \right)} & 0 & \cos{\left(q_{1} \right)} & b \cos{\left(q_{1} \right)}\\\cos{\left(q_{1} \right)} & 0 & \sin{\left(q_{1} \right)} & b \sin{\left(q_{1} \right)}\\0 & 1 & 0 & a + q_{2}\\0 & 0 & 0 & 1\end{matrix}\right]
T30=[−sin⁡(q1)0cos⁡(q1)(b+q3)cos⁡(q1)cos⁡(q1)0sin⁡(q1)(b+q3)sin⁡(q1)010a+q20001]T_3^0 = \displaystyle \left[\begin{matrix}- \sin{\left(q_{1} \right)} & 0 & \cos{\left(q_{1} \right)} & \left(b + q_{3}\right) \cos{\left(q_{1} \right)}\\\cos{\left(q_{1} \right)} & 0 & \sin{\left(q_{1} \right)} & \left(b + q_{3}\right) \sin{\left(q_{1} \right)}\\0 & 1 & 0 & a + q_{2}\\0 & 0 & 0 & 1\end{matrix}\right]

Dado que estamos trabajando con un manipulador RPP, la matriz jacobiana tendrá la forma:

J=[Jv1Jv2Jv3Jω1Jω2Jω3]=[z0×(ro3−ro0)z1z2z000]J = \begin{bmatrix} \vec{J}_{v_1} & \vec{J}_{v_2} & \vec{J}_{v_3} \\ \vec{J}_{\omega_1} & \vec{J}_{\omega_2} & \vec{J}_{\omega_3} \end{bmatrix} = \begin{bmatrix} \vec{z}_0 \times \left( \vec{r}_{o_3} - \vec{r}_{o_0} \right) & \vec{z}_1 & \vec{z}_2 \\ \vec{z}_0 & \vec{0} & \vec{0} \end{bmatrix}

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:

z0=[001] ;z1=[001] ;z2=[cos⁡q1sin⁡q10] ;ro0=[000] ;ro3=[(b+q3)cos⁡(q1)(b+q3)sin⁡(q1)a+q2]\vec{z}_0 = \colvec{0}{0}{1} \,; \quad \vec{z}_1 = \colvec{0}{0}{1} \, ; \quad \vec{z}_2 = \colvec{\cos q_1}{\sin q_1}{0} \, ; \quad \vec{r}_{o_0} = \colvec{0}{0}{0} \, ;\quad \vec{r}_{o_3} = \displaystyle \left[\begin{matrix}\left(b + q_{3}\right) \cos{\left(q_{1} \right)}\\\left(b + q_{3}\right) \sin{\left(q_{1} \right)}\\a + q_{2}\end{matrix}\right]

Efectuando el producto vectorial para calcular Jv1 \vec{J}_{v_1} :

Jv1=z0×(ro3−ro0)=[−(b+q3)sin⁡(q1)(b+q3)cos⁡(q1)0]\vec{J}_{v_1} = \vec{z}_0 \times \left( \vec{r}_{o_3} - \vec{r}_{o_0} \right) = \left[\begin{matrix}- \left(b + q_{3}\right) \sin{\left(q_{1} \right)}\\\left(b + q_{3}\right) \cos{\left(q_{1} \right)}\\0\end{matrix}\right]

Acomodando los términos como corresponde, formamos la matriz jacobiana:

J=[−(b+q3)sin⁡(q1)0cos⁡(q1)(b+q3)cos⁡(q1)0sin⁡(q1)010000000100]J = \left[\begin{matrix}- \left(b + q_{3}\right) \sin{\left(q_{1} \right)} & 0 & \cos{\left(q_{1} \right)}\\\left(b + q_{3}\right) \cos{\left(q_{1} \right)} & 0 & \sin{\left(q_{1} \right)}\\0 & 1 & 0\\0 & 0 & 0\\0 & 0 & 0\\1 & 0 & 0\end{matrix}\right]

Sustituyendo los valores numéricos, se tiene:

J=[−17000001010000000100]J = \left[\begin{matrix}-170 & 0 & 0\\0 & 0 & 1\\0 & 1 & 0\\0 & 0 & 0\\0 & 0 & 0\\1 & 0 & 0\end{matrix}\right]

Luego, el vector de velocidades articulares podemos definirlo como:

q˙=[−2.53045]\dot{ \vec{q} } = \colvec{-2.5}{30}{45}

Para calcular las velocidades del extremo, efectuamos el producto de J y q˙ \dot{ \vec{q} } :

V=Jq˙=[−17000001010000000100][−2.53045]=[425.0453000−2.5]\vec{V} = J \dot{ \vec{q} } = \left[\begin{matrix}-170 & 0 & 0\\0 & 0 & 1\\0 & 1 & 0\\0 & 0 & 0\\0 & 0 & 0\\1 & 0 & 0\end{matrix}\right] \colvec{-2.5}{30}{45} = \left[\begin{matrix}425.0\\45\\30\\0\\0\\-2.5\end{matrix}\right]

Por lo tanto:

vo3=[4254530] mm/s\vec{v}_{o_3} = \colvec{425}{45}{30} \text{ mm/s}
ω3=[00−2.5] rad/s\W_{3} = \colvec{0}{0}{-2.5} \text{ rad/s}

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−i-ésima articulación y mantenemos fijas todas las otras, entonces esta articulación producirá un movimiento sobre los eslabones ii, i+1i+1, ⋯\cdots, nn. Por ejemplo, refiriéndonos al manipulador RRR de la Figura Figure 8, si accionamos la junta número (3)(3) el único eslabón que se movería sería el 3, si accionamos la junta (2)(2) entonces afectaría tanto al eslabón 2 como al 3.

Manipulador RRR

Figure 8:Manipulador RRR

Así pues, suponiendo que se tiene un punto AA 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 AA 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 AA.

Lo descrito previamente se puede generalizar para un punto ubicado en cualquier eslabón de un manipulador serial. Supongamos que se tiene un punto QQ ubicado en el eslabón mm de un manipulador serial, entonces la matriz jacobiana correspondiente al punto QQ es una matriz de 6×n6\times n:

JQ=[(Jv1)Q(Jv2)Q⋯(Jvn)Q(Jω1)Q(Jω2)Q⋯(Jωn)Q]J_Q = \begin{bmatrix} \rbr{\vec{J}_{v_1}}_Q & \rbr{\vec{J}_{v_2}}_Q & \cdots & \rbr{\vec{J}_{v_n}}_Q \\ \rbr{\vec{J}_{\w{1}}}_Q & \rbr{\vec{J}_{\w{2}}}_Q & \cdots & \rbr{\vec{J}_{\w{n}}}_Q \end{bmatrix}

Para cuando i≤mi \leq m , las columnas de JQJ_Q se determinan de la siguiente manera:

(Jvi)Q={zi−1×(rQ−roi−1) si la junta i es revolutazi−1 si la junta i es prismaˊtica\rbr{\vec{J}_{v_i}}_Q = \left\{\begin{matrix} \vec{z}_{i-1} \times \rbr{\vec{r}_Q - \vec{r}_{o_{i-1}}} & \text{ si la junta i es revoluta} \\ \vec{z}_{i-1} & \text{ si la junta i es prismática} \\ \end{matrix}\right.
(Jωi)Q={zi−1 si la junta i es revoluta0 si la junta i es prismaˊtica\rbr{\vec{J}_{\w{i}}}_Q = \left\{\begin{matrix} \vec{z}_{i-1} & \text{ si la junta i es revoluta} \\ \vec{0} & \text{ si la junta i es prismática} \end{matrix}\right.

En el caso de que i>mi > m, entonces:

(Jvi)Q=0(Jωi)Q=0\begin{matrix} \rbr{\vec{J}_{v_i}}_Q = \vec{0} \\ \rbr{\vec{J}_{\w{i}}}_Q = \vec{0} \end{matrix}

En las ecuaciones anteriores, rQ\vec{r}_Q es un vector que describe la posición del punto QQ en el sistema de referencia de la base.

Ejemplo. Calcule la matriz jacobiana de los puntos AA y BB, ubicados en los eslabones 1 y 2, respectivamente, del manipulador RR mostrado en la Figura example_rr_robot_point_velocity_jacobian. Se sabe que:

rA1=[−(l1−lc1)00] ;rB2=[−(l2−lc2)00]\vec{r}_A^1 = \colvec{-\rbr{l_1 - l_{c_1}}}{0}{0} \, ; \qquad \vec{r}_B^2 = \colvec{-\rbr{l_2 - l_{c_2}}}{0}{0}
Manipulador RR

Figure 9:Manipulador RR

Solución:

Matriz jacobiana del punto AA

La matriz jacobiana del punto AA está conformada de la siguiente manera:

JA=[(Jv1)A(Jv2)A(Jω1)A(Jω2)A]J_A = \begin{bmatrix} \rbr{ \vec{J}_{v_1} }_A & \rbr{ \vec{J}_{v_2} }_A \\ \rbr{ \vec{J}_{\w{1}} }_A & \rbr{ \vec{J}_{\w{2}} }_A \\ \end{bmatrix}

Puesto que el punto AA está ubicado en el eslabón 1 (m=1m=1), entonces tanto (Jv2)A \rbr{ \vec{J}_{v_2} }_A como (Jω2)A\rbr{ \vec{J}_{\w{2}} }_A son cero, dado que en esta segunda columna (i=2i=2) se cumple que i>mi > m. Calculamos ahora los términos de la primera columna, debido a que la junta 1 es una revoluta, entonces:

(Jv1)A=z0×(rA−ro0)\rbr{ \vec{J}_{v_1} }_A = \vec{z}_0 \times \rbr{ \vec{r}_A - \vec{r}_{o_0} }
(Jω1)A=z0\rbr{ \vec{J}_{\w{1}} }_A = \vec{z}_0

El vector rA\vec{r}_A podemos determinarlo si aplicamos una transformación a rA1\vec{r}_A^1 para describirlo en el sistema de la base:

rA=T10rA1=[c1−s10l1c1s1c10l1s100100001][−(l1−lc1)001]=[−(l1−lc1)c1+l1c1−(l1−lc1)s1+l1s101]\vec{r}_A = T_1^0 \vec{r}_A^1 = \begin{bmatrix} c_1 & -s_1 & 0 & l_1 c_1 \\ s_1 & c_1 & 0 & l_1 s_1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \colvech{-\rbr{l_1 - l_{c_1}}}{0}{0}{1} = \colvech{-\rbr{l_1 - l_{c_1}} c_1 + l_1 c_1 }{ -\rbr{l_1 - l_{c_1}} s_1 + l_1 s_1 }{0}{1}
rA=[lc1c1lc1s10]\vec{r}_A = \colvec{ l_{c_1} c_1 }{ l_{c_1} s_1 }{0}

Además, sabemos que z0=[001]T\vec{z}_0 = \rowvec{0}{0}{1}^T y que ro0=[000]T \vec{r}_{o_0} = \rowvec{0}{0}{0}^T . Sustituyendo y realizando las operaciones:

(Jv1)A=[001]×[lc1c1lc1s10]=[−lc1s1lc1c10]\rbr{ \vec{J}_{v_1} }_A = \colvec{0}{0}{1} \times \colvec{ l_{c_1} c_1 }{ l_{c_1} s_1 }{0} = \colvec{ -l_{c_1} s_1 }{ l_{c_1} c_1 }{0}
(Jω1)A=[001]\rbr{ \vec{J}_{\w{1}} }_A = \colvec{0}{0}{1}

Entonces, la matriz JAJ_A nos queda de la siguiente manera:

JA=[−lc1s10lc1c1000000010]\textcolor{green}{ J_A = \begin{bmatrix} -l_{c_1} s_1 & 0 \\ l_{c_1} c_1 & 0 \\ 0 & 0 \\ 0 & 0 \\ 0 & 0 \\ 1 & 0 \\ \end{bmatrix} }

Matriz jacobiana del punto BB

La matriz jacobiana del punto BB está conformada de la siguiente manera:

JB=[(Jv1)B(Jv2)B(Jω1)B(Jω2)B]J_B = \begin{bmatrix} \rbr{ \vec{J}_{v_1} }_B & \rbr{ \vec{J}_{v_2} }_B \\ \rbr{ \vec{J}_{\w{1}} }_B & \rbr{ \vec{J}_{\w{2}} }_B \\ \end{bmatrix}

Puesto que el punto BB está ubicado en el eslabón 2 (m=2m=2), para ambas columnas de JBJ_B (i=1,i=2i=1, i=2) se cumple que i≤mi \leq m. Dado que tanto la junta 1 como la junta 2 son revoluta, entonces:

(Jv1)B=z0×(rB−ro0) ;(Jv2)B=z1×(rB−ro1)\rbr{ \vec{J}_{v_1} }_B = \vec{z}_0 \times \rbr{ \vec{r}_B - \vec{r}_{o_0} } \, ; \qquad \rbr{ \vec{J}_{v_2} }_B = \vec{z}_1 \times \rbr{ \vec{r}_B - \vec{r}_{o_1} }
(Jω1)B=z0 ;(Jω2)B=z1\rbr{ \vec{J}_{\w{1}} }_B = \vec{z}_0 \, ; \qquad \rbr{ \vec{J}_{\w{2}} }_B = \vec{z}_1

El vector rB\vec{r}_B lo calculamos aplicando la transformación correspondiente a rB2\vec{r}_B^2:

rB=T20rB2=[c12−s120l1c1+l2c12s12c120l1s1+l2s1200100001][−(l2−lc2)001]=[−(l2−lc2)c12+l1c1+l2c12−(l2−lc2)s12+l1s1+l2s1201]\vec{r}_B = T_2^0 \vec{r}_B^2 = \begin{bmatrix} c_{12} & -s_{12} & 0 & l_1 c_1 + l_2 c_{12} \\ s_{12} & c_{12} & 0 & l_1 s_1 + l_2 s_{12} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \colvech{-\rbr{l_2 - l_{c_2}}}{0}{0}{1} = \colvech{-\rbr{l_2 - l_{c_2}} c_{12} + l_1 c_1 + l_2 c_{12} }{ -\rbr{l_2 - l_{c_2}} s_{12} + l_1 s_1 + l_2 s_{12} }{0}{1}
rB=[l1c1+lc2c12l1s1+lc2s120]\vec{r}_B = \colvec{ l_1 c_1 + l_{c_2} c_{12} }{ l_1 s_1 + l_{c_2} s_{12} }{0}

Tanto z1\vec{z}_1 como ro1\vec{r}_{o_1} se obtienen de la matriz T10T_1^0:

z1=[T10]1:3,3=[001] ;ro1=[T10]1:3,4=[l1c1l1s10]\vec{z}_1 = \sbr{T_1^0}_{1:3,3} = \colvec{0}{0}{1} \,; \qquad \vec{r}_{o_1} = \sbr{T_1^0}_{1:3,4} = \colvec{l_1 c_1}{l_1 s_1}{0}

Sustituyendo y realizando las operaciones:

(Jv1)B=[001]×[l1c1+lc2c12l1s1+lc2s120]=[−l1s1−lc2s12l1c1+lc2c120]\rbr{ \vec{J}_{v_1} }_B = \colvec{0}{0}{1} \times \colvec{ l_1 c_1 + l_{c_2} c_{12} }{ l_1 s_1 + l_{c_2} s_{12} }{0} = \colvec{ - l_1 s_1 - l_{c_2} s_{12} }{ l_1 c_1 + l_{c_2} c_{12} }{0}
(Jω1)B=[001]\rbr{ \vec{J}_{\w{1}} }_B = \colvec{0}{0}{1}
(Jv2)B=[001]×[lc2c12lc2s120]=[−lc2s12lc2c120]\rbr{ \vec{J}_{v_2} }_B = \colvec{0}{0}{1} \times \colvec{ l_{c_2} c_{12} }{ l_{c_2} s_{12} }{0} = \colvec{ - l_{c_2} s_{12} }{ l_{c_2} c_{12} }{0}
(Jω2)B=[001]\rbr{ \vec{J}_{\w{2}} }_B = \colvec{0}{0}{1}

Finalmente, organizando los términos, la matriz JBJ_B nos queda de la siguiente forma:

JB=[−l1s1−lc2s12−lc2s12l1c1+lc2c12lc2c1200000011]\textcolor{green}{ J_B = \begin{bmatrix} - l_1 s_1 - l_{c_2} s_{12} & - l_{c_2} s_{12} \\ l_1 c_1 + l_{c_2} c_{12} & l_{c_2} c_{12} \\ 0 & 0 \\ 0 & 0 \\ 0 & 0 \\ 1 & 1 \\ \end{bmatrix} }

5.7El jacobiano analítico

5.8Singularidades

5.9Cinemática diferencial inversa

5.10Problemas


Calcule la matriz jacobiana del manipulador RR mostrado en la Figura Figure 10.

Manipulador RR

Figure 10:Manipulador RR


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 = 30°q˙1=−0.75\dot{q}_1 = -0.75 rad/s
q2=45°q_2 = 45°q˙2=1.65\dot{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 \vec{r}_{G_2}^2 = [-110,0,0]^T . Calcule la velocidad del centro de masa G2 G_2 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 = 90°q˙1=0.25\dot{q}_1 = 0.25 rad/s
q2=60°q_2 = 60°q˙2=1.5\dot{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 = 90°q˙1=0.5\dot{q}_1 = 0.5 rad/s
q2=30°q_2 = 30°q˙2=1.5\dot{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 AA cuyas coordenadas en el sistema {2}\{2\} están dadas por rA2=[−100200]T\vec{r}_A^2 = \rowvec{-100}{20}{0}^T

Manipulador RR

Figure 11:Manipulador RR


Calcule la matriz jacobiana para el manipulador RRR mostrado en la Figura Figure 12.

Manipulador RRR

Figure 12:Manipulador RRR


Para el manipulador RRR mostrado en la Figura Figure 12 calcule la velocidad lineal del extremo del manipulador para un instante en el que:

q1=30°q_1 = 30°q˙1=1.5\dot{q}_1 = 1.5 rad/s
q2=90°q_2 = 90°q˙2=2\dot{q}_2 = 2 rad/s
q3=135°q_3 = 135°q˙3=1.25\dot{q}_3 = 1.25 rad/s

Considere que las longitudes de los eslabones son l1=l2=300 l_1 = l_2 = 300 mm y l3=200 l_3 = 200 mm.


En la Figura Figure 13 se muestra un manipulador PPR, calcule la matriz jacobiana.

Manipulador PPR

Figure 13:Manipulador PPR


En la Figura Figure 14 se muestra un manipulador RRP. Para un instante en el que:

q1=90° q_1 = 90° q˙1=0.25 rad/s \dot{q}_1 = 0.25 \text{ rad/s}
q2=30° q_2 = 30° q˙2=1.75 rad/s \dot{q}_2 = 1.75 \text{ rad/s}
q3=200 mm q_3 = 200 \text{ mm} q˙3=35 mm/s \dot{q}_3 = 35 \text{ mm/s}

Realiza lo siguiente:

  • Calcula la velocidad lineal del extremo del manipulador.

  • Calcula la velocidad angular de los eslabones 1, 2, y 3.

  • Se tiene un punto QQ ubicado en el eslabón 2, su posición con respecto al sistema {2}\{2\} está dada por: rQ2=[0,35,0]T \vec{r}_Q^2 = [0,35,0]^T mm. Calcula vQ\vec{v}_Q.

  • Calcula la matriz jacobiana del extremo del manipulador.

Manipulador RRP

Figure 14:Manipulador RRP


Calcule la velocidad lineal y angular del extremo del robot ABB IRB 140, para un instante en el que:

q1=0°q_1 = 0°q˙1=0.75\dot{q}_1 = 0.75 rad/s
q2=0°q_2 = 0°q˙2=1.25\dot{q}_2 = 1.25 rad/s
q3=0°q_3 = 0°q˙3=0.5\dot{q}_3 = 0.5 rad/s
q4=0°q_4 = 0°q˙4=0\dot{q}_4 = 0 rad/s
q5=0°q_5 = 0°q˙5=2\dot{q}_5 = 2 rad/s
q6=0°q_6 = 0°q˙6=0.5\dot{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: (aia_i, αi\alpha_i, did_i, θi\theta_i, tat_a), siendo tat_a 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.

Plantilla de función sugerida:

def calcular_jacobiano(*dh_params):
	# realizar cálculos aquí
	return J

Ejemplo de invocación a la función:

import sympy as sp
q1,q2 = sp.symbols('q_1,q_2')
calcular_jacobiano((100,0,0,q1,'r'), (150,0,0,q2,'r'))

Para el manipulador planar RRR de la Figura Figure 12 se sabe que las posiciones articulares están dadas por:

q1=cos⁡tq2=sin⁡tq3=tq_1 = \cos t \qquad q_2 = \sin t \qquad q_3 = t

Grafique las componentes de velocidad lineal (vx,vy,vzv_x, v_y, v_z) del extremo del manipulador en el intervalo 0≤t≤50 \leq t \leq 5. Considere que l1=l2=l3=250 l_1 = l_2 = l_3 = 250 mm.

Footnotes
  1. Realmente podría ser en términos de cualquier conjunto de coordenadas generalizadas que describan su posición.