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.

2 Posición, orientación y transformaciones homogéneas

Un manipulador serial es un conjunto de eslabones rígidos unidos mediante pares cinemáticos. En el estudio de la cinemática usualmente lo que haremos es colocar sistemas de referencias adheridos a cada uno de los eslabones y posteriormente encontrar las relaciones entre estos sistemas para poder realizar una descripción de la cinemática del manipulador. Para lograr lo anterior, necesitamos conocer los conceptos y herramientas matemáticas fundamentales para la representación de la posición y orientación de un cuerpo rígido, y eso es justamente el objetivo de este capítulo.

2.1Representación de la posición

En mecánica, la posición de un punto se describe en un sistema de referencia mediante vectores de posición. En la Figura Figure 1 se muestran dos puntos PP y QQ, cuyas posiciones están dadas por:

rP=[630];rQ=[250]\vec{r}_P = \colvec{6}{3}{0} \qquad ; \qquad \vec{r}_Q = \colvec{2}{5}{0}

Naturalmente ambos vectores están descritos en el sistema de referencia xyzxyz que se muestra, y dado que únicamente se tiene dicho sistema de referencia, no hay necesidad de especificar con respecto a qué sistema se están midiendo las coordenadas de posición representadas.

Representación de la posición.

Figure 1:Representación de la posición.

En la Figura Figure 2 se muestra un punto PP y dos sistemas de referencia {0}\{0\} y {1}\framei{1}. Donde el sistema {1}\framei{1} se obtiene mediante una traslación a partir de {0}\framei{0}. La descripción de PP en cada uno de los sistemas de referencia está dada por:

rP0=[520];rP1=[2−30]\vec{r}_P^0 = \colvec{5}{2}{0} \qquad ; \qquad \vec{r}_P^1 = \colvec{2}{-3}{0}

Es más, notará que tal como se muestra en la Figura Figure 3 las posiciones descritas en ambos sistemas están relacionadas mediante:

rP0=ro10+rP1\vec{r}_P^{0} = \vec{r}_{o_1}^0 + \vec{r}_P^{1}

Donde ro10 \vec{r}_{o_1}^0 describe la posición del origen de coordenadas del sistema {1}\framei{1} con respecto al sistema {0}\framei{0}. Se debe tener cuidado con la ecuación (3), puesto que únicamente se cumple cuando los dos sistemas de referencia involucrados son paralelos entre sí, en cualquier otra situación una expresión como esa no será válida.

Representación de la posición.

Figure 2:Representación de la posición.

Representación de la posición.

Figure 3:Representación de la posición.

2.2Representación de la orientación mediante matrices de rotación

La orientación de un cuerpo rígido en el espacio puede definirse mediante al menos tres parámetros, de su curso de física o estática elemental recordará que habitualmente se hace uso de los cosenos directores para dicha tarea. En cinemática de robots, además de los cosenos directores (agrupados en las matrices de rotación) se hace uso de otros métodos de representación como los ángulos de Euler, los cuaterniones y los pares de rotación.

Para hacer la descripción de la orientación de un sólido rígido, es necesario adherir un sistema de referencia solidario al mismo, el cual nos servirá para realizar la representación de orientación con respecto a otros sistemas de referencia. Así pues, tome en cuenta que en esta sección estudiaremos relaciones de orientación entre sistemas de referencia, pero no pierda de vista que, en última instancia, los eslabones o cuerpos rígidos subyacen a estos sistemas.

2.2.1Construcción de matrices de rotación

En la Figura Figure 4 se muestra un sistema {1} \{1\} que ha sido obtenido a partir de {0} \{0\} mediante una rotación θ\theta alrededor del eje zz. Una manera de representar dicha rotación sería simplemente con el parámetro de rotación θ\theta, pero evidentemente esto no escalaría de manera adecuada para un caso de representación tridimensional.

Un sistema  \{1\}  obtenido por rotación a partir de  \{0\}

Figure 4:Un sistema {1} \{1\} obtenido por rotación a partir de {0} \{0\}

Otra opción es describir las componentes de los ejes del sistema de referencia {1} \{1\} en el sistema {0} \{0\} , es decir, x10 \vec{x}_1^0 y y10 \vec{y}_1^0 . En el caso particular del ejemplo de la figura Figure 4 se puede observar que dichos vectores estarán dados por:

x10=[cos⁡θsin⁡θ];y10=[−sin⁡θcos⁡θ]\vec{x}_1^0 = \begin{bmatrix}\cos\theta\\\sin\theta\end{bmatrix} \qquad ; \qquad \vec{y}_1^0 = \begin{bmatrix}-\sin\theta\\\cos\theta\end{bmatrix}

Si estos vectores se acomodan de tal manera que:

R10=[x10y10]=[cos⁡θ−sin⁡θsin⁡θcos⁡θ]R_1^0 = \begin{bmatrix} \vec{x}_1^0 & \vec{y}_1^0 \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}

Se obtiene un arreglo conocido como matriz de rotación, la cual presenta algunas propiedades particulares que se describirán posteriormente. La matriz R10 R_1^0 contiene la información necesaria para describir la orientación del sistema {1} \{1\} con respecto a {0}\{0\}.

Un resultado similar se puede obtener si la descripción del sistema {1} \{1\} en {0} \{0\} se hace mediante la proyección escalar de cada uno de los ejes, por ejemplo, x10 \vec{x}_1^0 y y10 \vec{y}_1^0 se pueden expresar como:

x10=[x1⋅x0x1⋅y0]=[cos⁡θcos⁡(90°−θ)]=[cos⁡θsin⁡θ]\vec{x}_1^0 = \begin{bmatrix}\vec{x}_1\cdot\vec{x}_0\\\vec{x}_1\cdot\vec{y}_0\end{bmatrix} = \begin{bmatrix}\cos\theta\\\cos(90°-\theta)\end{bmatrix} = \begin{bmatrix}\cos\theta\\\sin\theta\end{bmatrix}
y10=[y1⋅x0y1⋅y0]=[cos⁡(90°+θ)cos⁡θ]=[−sin⁡θcos⁡θ]\vec{y}_1^0 = \begin{bmatrix}\vec{y}_1\cdot\vec{x}_0\\\vec{y}_1\cdot\vec{y}_0\end{bmatrix} = \begin{bmatrix}\cos(90°+\theta)\\\cos\theta\end{bmatrix} = \begin{bmatrix}-\sin\theta\\\cos\theta\end{bmatrix}

Recordar que en el caso de vectores unitarios la proyección escalar de un vector sobre el otro resulta simplemente en el coseno del ángulo θ\theta que forman entre ellos.

La descripción de los tres ejes coordenados se puede completar considerando que el eje z1z_1 permanece invariable, apuntando en la misma dirección que el eje z0z_0, tal como se puede observar en la Figura Figure 5. Así, es posible ampliar la matriz de la ecuación (5) considerando ahora las componentes en la dirección de zz, es decir:

R10=[x10y10z10]=[x1⋅x0y1⋅x0z1⋅x0x1⋅y0y1⋅y0z1⋅y0x1⋅z0y1⋅z0z1⋅z0]=[cos⁡θcos⁡(90°+θ)cos⁡90°cos⁡(90°−θ)cos⁡θcos⁡90°cos⁡90°cos⁡90°cos⁡0°]R_1^0 = \begin{bmatrix} \vec{x}_1^0 & \vec{y}_1^0 & \vec{z}_1^0 \end{bmatrix} = \begin{bmatrix} \vec{x}_1 \cdot \vec{x}_0 & \vec{y}_1 \cdot \vec{x}_0 & \vec{z}_1 \cdot \vec{x}_0 \\ \vec{x}_1 \cdot \vec{y}_0 & \vec{y}_1 \cdot \vec{y}_0 & \vec{z}_1 \cdot \vec{y}_0 \\ \vec{x}_1 \cdot \vec{z}_0 & \vec{y}_1 \cdot \vec{z}_0 & \vec{z}_1 \cdot \vec{z}_0 \\ \end{bmatrix} = \begin{bmatrix} \cos\theta & \cos(90°+\theta) & \cos 90° \\ \cos(90°-\theta) & \cos\theta & \cos 90° \\ \cos 90° & \cos 90° & \cos 0° \end{bmatrix}
R10=[cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001]R_1^0 = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}
Un sistema  \{1\}  obtenido por una rotación alrededor de z a partir de  \{0\}

Figure 5:Un sistema {1} \{1\} obtenido por una rotación alrededor de zz a partir de {0} \{0\}

De manera general, la matriz de rotación anterior nos permite describir la orientación de un sistema con respecto a otro cuando se ha efectuado una rotación θ\theta alrededor del eje zz. Se puede proceder de una manera muy similar para obtener las matrices de rotación correspondientes a rotaciones alrededor de los ejes yy y xx. Las siguientes tres matrices, que denominaremos como matrices de rotación básicas, las utilizaremos para representar las operaciones de rotación con respecto a los tres ejes cartesianos:

Rz(θ)=[cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001]R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}
Ry(θ)=[cos⁡θ0sin⁡θ010−sin⁡θ0cos⁡θ]R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \\ \end{bmatrix}
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}

Ejemplo. Un sistema de referencia {1}\{1\} se obtiene a partir de un sistema {0}\{0\}, mediante una rotación de 90° alrededor del eje zz. Determine R10R_1^0.

Solución

La matriz de rotación R10R_1^0 se calcula sustituyendo θ=90°\theta = 90° en la matriz de rotación básica para zz, es decir:

Rz(90°)=[cos⁡(90°)−sin⁡(90°)0sin⁡(90°)cos⁡(90°)0001]=[0−10100001]R_z(90°) = \begin{bmatrix} \cos(90°) & -\sin(90°) & 0 \\ \sin(90°) & \cos(90°) & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix}

Bueno, hasta ahora hemos abordado la manera de realizar la descripción de la orientación del sistema {1}\{1\} en el sistema {0}\{0\}, pero ¿qué pasa si en su lugar nos interesara la descripción del sistema {0}\{0\} en el {1}\{1\}? Naturalmente, podríamos proceder de una manera similar, determinando la proyección de cada uno de los ejes de {0}\{0\} en {1}\{1\}, y arreglándolos en una matriz de rotación que denominaremos R01R_0^1, tal como se muestra enseguida:

R01=[x01y01z01]=[x0⋅x1y0⋅x1z0⋅x1x0⋅y1y0⋅y1z0⋅y1x0⋅z1y0⋅z1z0⋅z1]=[cos⁡θcos⁡(90°−θ)cos⁡90°cos⁡(90°+θ)cos⁡θcos⁡90°cos⁡90°cos⁡90°cos⁡0°]R_0^1 = \begin{bmatrix} \vec{x}_0^1 & \vec{y}_0^1 & \vec{z}_0^1 \end{bmatrix} = \begin{bmatrix} \vec{x}_0 \cdot \vec{x}_1 & \vec{y}_0 \cdot \vec{x}_1 & \vec{z}_0 \cdot \vec{x}_1 \\ \vec{x}_0 \cdot \vec{y}_1 & \vec{y}_0 \cdot \vec{y}_1 & \vec{z}_0 \cdot \vec{y}_1 \\ \vec{x}_0 \cdot \vec{z}_1 & \vec{y}_0 \cdot \vec{z}_1 & \vec{z}_0 \cdot \vec{z}_1 \\ \end{bmatrix} = \begin{bmatrix} \cos\theta & \cos(90°-\theta) & \cos 90° \\ \cos(90°+\theta) & \cos\theta & \cos 90° \\ \cos 90° & \cos 90° & \cos 0° \end{bmatrix}
R01=[cos⁡θsin⁡θ0−sin⁡θcos⁡θ0001]R_0^1 = \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}

Algo que podrá notar con facilidad es que la matriz R01R_0^1 no es más que la transpuesta de la matriz R10R_1^0. De hecho, R01R_0^1 es la matriz inversa de R10R_1^0, pero como veremos posteriormente las matrices de rotación son un tipo especial de matrices que presentan algunas propiedades particulares, como que su inversa es igual a la transpuesta. Veamos un poco más, por ejemplo, refiriéndonos a la Figura Figure 5, la matriz R10R_1^0 nos describe cómo ha sido obtenido el sistema {1}\{1\} a partir del sistema {0}\{0\}, es decir, mediante una rotación θ\theta positiva alrededor del eje zz. Ahora, pensemos en la relación inversa R01R_0^1, ¿cómo ha sido obtenido el sistema {0}\{0\} partir del {1}\{1\}? La rotación seguiría siendo alrededor del eje zz pero una cantidad θ\theta negativa. Podemos verificar que si tomamos la matriz de rotación básica Rz(θ)R_z(\theta) y sustituimos un ángulo −θ-\theta, obtendríamos la matriz R01R_0^1 calculada previamente.

Este resultado lo podemos generalizar. Sean {M}\{M\} y {N}\{N\} dos sistemas de referencia que difieren por una rotación (o secuencia de rotaciones), entonces las matrices de rotación que los describen están relacionadas de la siguiente manera:

RNM=(RMN)−1=(RMN)TR_N^M = (R_M^N)^{-1} = (R_M^N)^{T}

2.2.1.1Propiedades de las matrices de rotación

Se puede verificar que las filas y columnas de una matriz de rotación son unitarias y mutuamente ortogonales, una matriz con estas características se denomina matriz ortogonal. Una matriz de rotación propia satisface además det⁡(R)=+1\det(R)=+1; las matrices ortogonales de determinante -1 invierten la orientación. Sea RR una matriz de rotación, entonces:

  • R−1=RT R^{-1} = R^T

  • det(R)=1det(R) = 1

  • Las columnas (y filas) de RR son mutuamente ortogonales.

  • Cada columna (y fila) de RR es un vector unitario.

Ejemplo. A continuación se muestra una matriz de rotación RR, compruebe que sus columnas son mutuamente ortogonales.

R=Rx(45°)=[100022−2202222]R = R_x(45°) = \begin{bmatrix}1 & 0 & 0\\0 & \frac{\sqrt{2}}{2} & - \frac{\sqrt{2}}{2}\\0 & \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\end{bmatrix}

Solución:

Recordar que dos vectores son ortogonales si el producto escalar es cero. Verificando la primera y segunda columna, se tiene:

c1⋅c2=(1)(0)+(0)(22)+(0)(22)=0\vec{c}_1 \cdot \vec{c}_2 = (1)(0) + (0)(\frac{\sqrt{2}}{2}) + (0)(\frac{\sqrt{2}}{2}) = 0

Para la primera y tercera:

c1⋅c3=(1)(0)+(0)(−22)+(0)(22)=0\vec{c}_1 \cdot \vec{c}_3 = (1)(0) + (0)(-\frac{\sqrt{2}}{2}) + (0)(\frac{\sqrt{2}}{2}) = 0

Para la segunda y tercera:

c2⋅c3=(0)(0)+(22)(−22)+(22)(22)=−12+12=0\vec{c}_2 \cdot \vec{c}_3 = (0)(0) + (\frac{\sqrt{2}}{2})(-\frac{\sqrt{2}}{2}) + (\frac{\sqrt{2}}{2})(\frac{\sqrt{2}}{2}) = -\frac{1}{2} + \frac{1}{2} = 0

Se verifica entonces que las columnas de R son mutuamente ortogonales.

Ejemplo. Para la matriz de rotación Rx(θ)R_x(\theta) muestre que el determinante es 1 y que todas sus filas y columnas son vectores unitarios.

Solución:

La matriz de rotación 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}

Para calcular el determinante podemos utilizar la expansión por cofactores en la primera fila, es decir:

det(Rx(θ))=∣1000cos⁡θ−sin⁡θ0sin⁡θcos⁡θ∣=1∣cos⁡θ−sin⁡θsin⁡θcos⁡θ∣−0∣0−sin⁡θ0cos⁡θ∣+0∣0cos⁡θ0sin⁡θ∣=det\left(R_x(\theta)\right) = \begin{vmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \\ \end{vmatrix} = 1 \begin{vmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{vmatrix} - 0 \begin{vmatrix} 0 & -\sin\theta \\ 0 & \cos\theta \end{vmatrix} + 0 \begin{vmatrix} 0 & \cos\theta \\ 0 & \sin\theta \end{vmatrix} =
det(Rx(θ))=cos⁡2θ+sin⁡2θ=1det\left(R_x(\theta)\right) = \cos^2 \theta + \sin^2 \theta = 1

Calculamos ahora la magnitud de las columnas de la matriz:

∣c2∣=02+(cos⁡θ)2+(sin⁡θ)2=1=1|\vec{c}_2| = \sqrt{0^2 + \rbr{\cos\theta}^2 + \rbr{\sin\theta}^2} = \sqrt{1} = 1
∣c3∣=02+(−sin⁡θ)2+(cos⁡θ)2=1=1|\vec{c}_3| = \sqrt{0^2 + \rbr{-\sin\theta}^2 + \rbr{\cos\theta}^2} = \sqrt{1} = 1

En el caso de la fila y columna 1 es evidente que son vectores unitarios. Para las filas 2 y 3 se puede observar que tendremos cálculos similares a los mostrados para las columnas.

2.2.1.2Transformaciones de rotación

En la Figura Figure 6 se observa un sólido rígido con forma de prisma rectangular, al cual se le ha adherido un sistema de referencia {1} \{1\} , además, {1} \{1\} está rotado un ángulo θ\theta alrededor de zz con respecto a un sistema base {0} \{0\} . Asumiendo que las dimensiones del prisma son aa, bb y cc en las direcciones de x1x_1, y1y_1 y z1z_1, respectivamente, entonces las coordenadas del vértice PP descritas en el sistema {1} \{1\} están dadas por:

rP1=[abc]=ax1+by1+cz1\vec{r}_P^1 = \colvec{a}{b}{c} = a \vec{x}_1 + b \vec{y}_1 + c \vec{z}_1
Transformaciones de rotación

Figure 6:Transformaciones de rotación

Las coordenadas de PP en el sistema {0} \{0\} se pueden obtener mediante la proyección de dicho vector en este sistema, es decir:

rP0=[rP1⋅x0rP1⋅y0rP1⋅z0]=[(ax1+by1+cz1)⋅x0(ax1+by1+cz1)⋅y0(ax1+by1+cz1)⋅z0]=[ax1⋅x0+by1⋅x0+cz1⋅x0ax1⋅y0+by1⋅y0+cz1⋅y0ax1⋅z0+by1⋅z0+cz1⋅z0]\vec{r}_P^0 = \begin{bmatrix} \vec{r}_P^1 \cdot \vec{x}_0 \\ \vec{r}_P^1 \cdot \vec{y}_0 \\ \vec{r}_P^1 \cdot \vec{z}_0 \\ \end{bmatrix} = \begin{bmatrix} \left( a \vec{x}_1 + b \vec{y}_1 + c \vec{z}_1 \right) \cdot \vec{x_0} \\ \left( a \vec{x}_1 + b \vec{y}_1 + c \vec{z}_1 \right) \cdot \vec{y_0} \\ \left( a \vec{x}_1 + b \vec{y}_1 + c \vec{z}_1 \right) \cdot \vec{z_0} \\ \end{bmatrix} = \begin{bmatrix} a \vec{x}_1 \cdot \vec{x}_0 + b \vec{y}_1 \cdot \vec{x}_0 + c \vec{z}_1 \cdot \vec{x}_0 \\ a \vec{x}_1 \cdot \vec{y}_0 + b \vec{y}_1 \cdot \vec{y}_0 + c \vec{z}_1 \cdot \vec{y}_0 \\ a \vec{x}_1 \cdot \vec{z}_0 + b \vec{y}_1 \cdot \vec{z}_0 + c \vec{z}_1 \cdot \vec{z}_0 \end{bmatrix}
rP0=[x1⋅x0y1⋅x0z1⋅x0x1⋅y0y1⋅y0z1⋅y0x1⋅z0y1⋅z0z1⋅z0][abc]\vec{r}_P^0 = \begin{bmatrix} \vec{x}_1 \cdot \vec{x}_0 & \vec{y}_1 \cdot \vec{x}_0 & \vec{z}_1 \cdot \vec{x}_0 \\ \vec{x}_1 \cdot \vec{y}_0 & \vec{y}_1 \cdot \vec{y}_0 & \vec{z}_1 \cdot \vec{y}_0 \\ \vec{x}_1 \cdot \vec{z}_0 & \vec{y}_1 \cdot \vec{z}_0 & \vec{z}_1 \cdot \vec{z}_0 \end{bmatrix} \colvec{a}{b}{c}

Note que la matriz que multiplica al vector [a,b,c]T[a,b,c]^T es justamente R10 R_1^0 , entonces:

rP0=R10rP1\vec{r}_P^0 = R_1^0 \vec{r}_P^1

Lo cual implica que la matriz de rotación R10 R_1^0 además de describir la orientación del sistema {1} \{1\} con respecto al sistema {0} \{0\} , sirve también para realizar transformaciones de coordenadas de un sistema a otro.

Ejemplo. El sistema {1} \{1\} está rotado 90° alrededor del eje zz con respecto a {0} \{0\} , se sabe que las coordenadas del punto QQ dadas en el sistema {1} \{1\} son rQ1=[10,5,0]T \vec{r}_Q^1 = [10,5,0]^T , calcule las coordenadas del punto QQ en el sistema {0} \{0\} .

Cambio de coordenadas de un punto mediante una rotación de 90°.

Figure 7:Cambio de coordenadas de un punto mediante una rotación de 90°.

Solución:

La matriz de rotación R10 R_1^0 que describe la orientación del sistema {1} \{1\} respecto a {0} \{0\} está dada por:

R10=Rz(90°)=[0−10100001]R_1^0 = R_z(90°) = \begin{bmatrix}0 & -1 & 0 \\1 & 0 & 0 \\0 & 0 & 1 \end{bmatrix}

Entonces:

rQ0=R10rQ1=[0−10100001][1050]=[−5100]\vec{r}_Q^0 = R_1^0 \vec{r}_Q^1 = \begin{bmatrix}0 & -1 & 0 \\1 & 0 & 0 \\0 & 0 & 1 \end{bmatrix} \colvec{10}{5}{0} = \colvec{-5}{10}{0}

En este caso en particular se puede determinar la validez de lo anterior mediante inspección.

2.2.2Interpretación geométrica de las rotaciones

Conviene distinguir entre cambiar las coordenadas de un vector y rotar el propio vector. Si un vector geométrico permanece fijo y solo cambiamos el sistema de referencia empleado para describirlo, utilizamos una transformación pasiva (cambio de coordenadas):

v 0=R10v 1\vec v^{\,0}=R_1^0\vec v^{\,1}

La matriz R10R_1^0 expresa los ejes de {1}\{1\} mediante sus componentes en {0}\{0\}: sus columnas son los vectores unitarios de {1}\{1\} escritos en {0}\{0\}.

En una transformación activa mantenemos fijo el sistema de coordenadas y rotamos geométricamente el vector. Para una rotación activa representada por QQ:

vnuevo 0=Q vinicial 0\vec v_{\mathrm{nuevo}}^{\,0}=Q\,\vec v_{\mathrm{inicial}}^{\,0}

Aunque ambas expresiones emplean matrices de rotación, describen operaciones diferentes. Para la misma orientación relativa entre dos sistemas, el cambio de coordenadas en sentido inverso utiliza la transpuesta: R01=(R10)TR_0^1=(R_1^0)^T. Por ello es indispensable indicar qué representan los índices y respecto de qué sistema están expresados los vectores.

2.2.3Composición de las rotaciones

Consideremos que se tienen tres sistemas de referencia {0}\{0\}, {1}\{1\} y {2}\{2\} (ver Figura Figure 8), y sabiendo que el sistema {1}\{1\} ha sido obtenido mediante una rotación θ\theta a partir del sistema {0}\{0\}, y que {2}\{2\} ha sido obtenido mediante una rotación ϕ\phi a partir de {1}\{1\}.

Composición de rotaciones

Figure 8:Composición de rotaciones

De acuerdo con lo que sabemos de transformaciones de coordenadas, se pueden escribir las siguientes expresiones para la posición del punto PP:

rP0=R10rP1\vec{r}_P^0 = R_1^0 \vec{r}_P^1
rP1=R21rP2\vec{r}_P^1 = R_2^1 \vec{r}_P^2
rP0=R20rP2\vec{r}_P^0 = R_2^0 \vec{r}_P^2

Si sustituimos la ecuación (35) en (34) resulta que:

rP0=R10R21rP2\vec{r}_P^0 = R_1^0 R_2^1 \vec{r}_P^2

De las ecuaciones (36) y (37) es sencillo notar que necesariamente:

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

La ecuación (38) describe la ley de composición para transformaciones de rotación. Se puede entender de la siguiente manera: si queremos describir las coordenadas del punto PP en el sistema de referencia {0}\framei{0} a partir de su representación en {2}\framei{2}, entonces primero podemos describirlo en el sistema {1}\framei{1} utilizando la matriz R21R_2^1 y luego transformarlo al sistema {0}\framei{0} utilizando la matriz R10R_1^0.

Note que la segunda rotación de la Figura Figure 8 ha sido realizada con respecto a un sistema {1}\{1\} previamente obtenido mediante otra rotación a partir de un sistema {0}\{0\}. Este tipo de transformación se dice que se ha efectuado con respecto a un sistema móvil (o típicamente también se denominan rotaciones con respecto al sistema actual, o rotaciones intrínsecas). Cuando las rotaciones sean efectuadas de esta manera, las matrices de rotación que representan las rotaciones se deben postmultiplicar en el orden en que son realizadas. Si las rotaciones se realizan con respecto a un sistema fijo, el orden de composición descrito anteriormente ya no funciona, ahora el orden debe invertirse, es decir, si las transformaciones de rotación se realizan con respecto a un sistema fijo entonces las matrices de rotación correspondientes deberán premultiplicarse.

En la Figura Figure 9 se puede observar un sólido en forma cúbica al cual se le ha adherido un sistema de referencia {1}\{1\} que se mueve junto con este. Inicialmente suponemos que el sistema {1}\{1\} coincide con un sistema fijo {0}\{0\}. Como se indica, se realizan dos rotaciones con respecto a los ejes del sistema móvil, es decir, el sistema cuya orientación cambia después de haber efectuado la rotación. Así, la matriz R10R_1^0 que describe la orientación del sistema {1}\{1\} con respecto al sistema {0}\{0\}, después de haber efectuado ambas rotaciones está dada por:

R10=Rz(90°)Rx(90°)=[001100010]R_1^0 = R_z(90°) R_x(90°) = \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix}

Note que en este caso las matrices de rotación se multiplican en el orden en que son realizadas las transformaciones, escribiéndolas de izquierda a derecha (postmultiplicando).

Composición de rotaciones

Figure 9:Composición de rotaciones

Ahora, en la Figura Figure 10 puede observar una situación similar en cuanto a los ejes con respecto a los cuáles se efectúan las rotaciones, salvo que en este caso son con respecto al sistema fijo {0}\{0\}. Aquí, la descripción R10R_1^0, después de haber efectuado ambas rotaciones, se calcula premultiplicando las matrices de rotación involucradas, escribiéndolas de derecha a izquierda, es decir:

R10=Rx(90°)Rz(90°)=[0−1000−1100]R_1^0 = R_x(90°) R_z(90°) = \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{bmatrix}
Composición de rotaciones

Figure 10:Composición de rotaciones

La validez de ambas composiciones se puede verificar en este caso directamente por inspección de los esquemas mostrados.

Ejemplo. Un sistema {1}\{1\} se obtiene a partir de un sistema {0}\{0\} mediante la siguiente secuencia de rotaciones con respecto al sistema móvil: una rotación de 45° con respecto al eje yy, seguida de una rotación alrededor del eje zz de 60°. Determine R10R_1^0.

Solución:

Dado que las rotaciones son efectuadas con respecto al sistema móvil, entonces las matrices se postmultiplican, es decir:

R10=Ry(45°)Rz(60°)=[22022010−22022][12−32032120001]=[24−642232120−246422]R_1^0 = R_y(45°) R_z(60°) = \displaystyle \left[\begin{matrix}\frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2}\\0 & 1 & 0\\- \frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2}\end{matrix}\right] \displaystyle \left[\begin{matrix}\frac{1}{2} & - \frac{\sqrt{3}}{2} & 0\\\frac{\sqrt{3}}{2} & \frac{1}{2} & 0\\0 & 0 & 1\end{matrix}\right] = \displaystyle \left[\begin{matrix}\frac{\sqrt{2}}{4} & - \frac{\sqrt{6}}{4} & \frac{\sqrt{2}}{2}\\\frac{\sqrt{3}}{2} & \frac{1}{2} & 0\\- \frac{\sqrt{2}}{4} & \frac{\sqrt{6}}{4} & \frac{\sqrt{2}}{2}\end{matrix}\right]

Todo este razonamiento previo de composición de rotaciones con respecto a un sistema móvil se puede extender a cualquier cantidad de sistemas de referencia, por ejemplo, suponga que se tienen los sistemas de referencia {0}\framei{0}, {1}\framei{1}, {2}\framei{2}, ⋯\cdots, {n}\framei{n}, que difieren únicamente por rotaciones, se puede verificar de forma muy simple que las siguientes expresiones son válidas:

R20=R10R21R30=R20R32R40=R30R43⋮Rn0=Rn−10Rnn−1\begin{matrix} R_2^0 = R_1^0 R_2^1 \\[1mm] R_3^0 = R_2^0 R_3^2 \\[1mm] R_4^0 = R_3^0 R_4^3 \\[1mm] \vdots \\[1mm] R_n^0 = R_{n-1}^0 R_{n}^{n-1} \end{matrix}

O bien:

Rn0=R10R21R32⋯Rnn−1R_n^0 = R_1^0 R_2^1 R_3^2 \cdots R_{n}^{n-1}

Esta ecuación muestra que la orientación de un sistema {n}\framei{n} la podemos expresar en un sistema {0}\framei{0} mediante la composición de transformaciones de rotación intermedias, algo que nos será muy útil para la cinemática de manipuladores, puesto que lo que haremos será colocar sistemas de referencia a cada uno de los eslabones y luego realizar las descripciones de posición y orientación entre eslabones consecutivos.

Ejemplo. Se tienen cuatro sistemas de referencia {0}\framei{0}, {1}\framei{1}, {2}\framei{2} y {3}\framei{3}, y se conocen las siguientes matrices de rotación:

R10=[10000−1010];R21=[0.5−0.86600.8660.50001.0];R32=[0.707100.707101.00−0.707100.7071]R_1^0 = \begin{bmatrix}1 & 0 & 0\\0 & 0 & -1\\0 & 1 & 0\end{bmatrix} ; \quad R_2^1 = \begin{bmatrix}0.5 & -0.866 & 0\\0.866 & 0.5 & 0\\0 & 0 & 1.0\end{bmatrix}; \quad R_3^2 = \begin{bmatrix}0.7071 & 0 & 0.7071\\0 & 1.0 & 0\\-0.7071 & 0 & 0.7071\end{bmatrix}

Calcule R20R_2^0 y R30R_3^0.

Solución:

La matriz R20R_2^0 se puede obtener multiplicando R10R_1^0 por R21R_2^1, es decir:

R20=R10R21=[10000−1010][0.5−0.86600.8660.50001.0]R_2^0 = R_1^0 R_2^1 = \begin{bmatrix}1 & 0 & 0\\0 & 0 & -1\\0 & 1 & 0\end{bmatrix} \begin{bmatrix}0.5 & -0.866 & 0\\0.866 & 0.5 & 0\\0 & 0 & 1.0\end{bmatrix}
R20=[0.5−0.866000−1.00.8660.50]R_2^0 = \begin{bmatrix}0.5 & -0.866 & 0\\0 & 0 & -1.0\\0.866 & 0.5 & 0\end{bmatrix}

Para R30R_3^0 podemos multiplicar la R20R_2^0 obtenida previamente por R32R_3^2, es decir:

R30=R20R32=[0.5−0.866000−1.00.8660.50][0.707100.707101.00−0.707100.7071]R_3^0 = R_2^0 R_3^2 = \begin{bmatrix}0.5 & -0.866 & 0\\0 & 0 & -1.0\\0.866 & 0.5 & 0\end{bmatrix} \begin{bmatrix}0.7071 & 0 & 0.7071\\0 & 1.0 & 0\\-0.7071 & 0 & 0.7071\end{bmatrix}
R30=[0.3536−0.8660.35360.70710−0.70710.61240.50.6124]R_3^0 = \begin{bmatrix}0.3536 & -0.866 & 0.3536\\0.7071 & 0 & -0.7071\\0.6124 & 0.5 & 0.6124\end{bmatrix}

La regla de composición puede entenderse de manera incremental. Si RR representa la orientación actual del sistema móvil con respecto al fijo y se aplica una nueva rotación QQ respecto de los ejes fijos, la orientación resultante se calcula como:

Rnuevo=QRR_{\mathrm{nuevo}}=Q R

En cambio, si la rotación adicional QQ está descrita respecto de los ejes móviles, entonces:

Rnuevo=RQR_{\mathrm{nuevo}}=R Q

En el segundo caso, la matriz RR convierte a coordenadas del sistema fijo los ejes alrededor de los cuales se aplica QQ. De ahí proviene la postmultiplicación. Este razonamiento también explica por qué cambiar el orden de rotaciones sobre ejes diferentes produce, en general, otra orientación.

2.2.4Transformaciones de similitud

Un sistema de referencia está definido por un conjunto de vectores base, por ejemplo, vectores unitarios a lo largo de los tres ejes de coordenadas. Esto significa que una matriz de rotación como transformación de coordenadas también puede considerarse como la definición de un cambio de base de un sistema a otro. La representación matricial de una transformación lineal general se transforma de un sistema a otro mediante la denominada transformación de similitud. Por ejemplo, sea AA la matriz que representa una transformación lineal en el sistema {0}\{0\}, y sea BB la representación matricial de la misma transformación lineal pero en el sistema {1}\{1\}, entonces AA y BB están relacionadas de la siguiente manera:

A=R10B(R10)−1A = R_1^0 B \rbr{R_1^0}^{-1}

Como R10R_1^0 es una matriz de rotación, (R10)−1=(R10)T(R_1^0)^{-1}=(R_1^0)^T. La expresión anterior se obtiene escribiendo un mismo operador lineal en ambas bases: si v 0=R10v 1\vec v^{\,0}=R_1^0\vec v^{\,1} y w 1=Bv 1\vec w^{\,1}=B\vec v^{\,1}, entonces w 0=R10B(R10)Tv 0\vec w^{\,0}=R_1^0 B (R_1^0)^T\vec v^{\,0}. En consecuencia, A=R10B(R10)TA=R_1^0 B(R_1^0)^T. En particular, si BB es una rotación, entonces también lo es AA y, por lo tanto, el uso de transformaciones de similitud nos permite expresar la misma rotación fácilmente con respecto a diferentes sistemas de referencia.

2.2.4.1Ejemplo de transformación de un tensor

Considere una matriz simétrica B=diag⁡(2,1,3)B=\operatorname{diag}(2,1,3), expresada en {1}\{1\}. Si la orientación relativa de los sistemas corresponde a una rotación de 90∘90^\circ alrededor de zz, entonces:

R10=[0−10100001],A=R10B(R10)T=[100020003]R_1^0=\begin{bmatrix}0&-1&0\\1&0&0\\0&0&1\end{bmatrix}, \qquad A=R_1^0 B(R_1^0)^T =\begin{bmatrix}1&0&0\\0&2&0\\0&0&3\end{bmatrix}

Los valores asociados a las direcciones principales no cambian: lo que cambia es su representación respecto de los ejes elegidos. Más adelante aplicaremos esta misma transformación al tensor de inercia de masa de un eslabón. Es importante distinguir un cambio de orientación de coordenadas de un cambio del punto respecto del cual se calcula la inercia; este último requiere otras relaciones, como el teorema de ejes paralelos.

2.3Transformaciones homogéneas

En las secciones anteriores se ha visto cómo representar la posición y orientación, de forma separada; en esta sección conoceremos una herramienta matemática que nos permite representar de manera conjunta la posición y la orientación de un cuerpo rígido.

En la figura Figure 11 podemos observar un sistema de referencia móvil {1}\framei{1} adherido a un sólido rígido y un sistema de referencia {0}\framei{0} fijo, es sencillo identificar que además de la orientación hay también una variación en la posición de los sistemas de referencia. Un punto PP adherido al sólido rígido se puede describir en el sistema de referencia {1}\framei{1} mediante el vector de posición rP/o11 \vec{r}_{P/o_1}^1 mostrado, además, la posición del origen del sistema de referencia {1} \framei{1} se puede describir en {0}\framei{0} mediante el vector ro10 \vec{r}_{o_1}^0 , si quisiéramos determinar la posición de PP en {0}\framei{0} entonces podríamos hacerlo de la siguiente manera:

rP0=R10rP/o11+ro10\vec{r}_P^0 = R_1^0 \vec{r}_{P/o_1}^1 + \vec{r}_{o_1}^0
Movimiento de sólido rígido

Figure 11:Movimiento de sólido rígido

Lo cual podríamos verlo como una suma de vectores, sin embargo, es importante recordar que no es posible sumar directamente dos vectores que están definidos con respecto a sistemas de referencia con diferente orientación. De tal modo que se debe expresar primeramente a rP/o11\vec{r}_{P/o_1}^1 en el sistema {0}\{0\}, lo cual se logra con la multiplicación correspondiente por la matriz de rotación: R10rP/o11R_1^0 \vec{r}_{P/o_1}^1, para poder sumarlo a ro10\vec{r}_{o_1}^0 . Aquí, R10R_1^0 corresponde a la matriz de rotación que describe la orientación del sistema {1}\framei{1} con respecto a {0}.\framei{0}.

La ecuación (53) se puede expresar de manera más compacta si introducimos una matriz de transformación que opere directamente sobre un vector y transforme sus coordenadas de un sistema a otro, una matriz de este tipo se denomina matriz de transformación homogénea y tiene la forma que a continuación se muestra:

T=[Rr0T1]T = \begin{bmatrix} R & \vec{r} \\ \vec{0}^T & 1 \\ \end{bmatrix}

Donde RR es una matriz de rotación de 3×33 \times 3, r\vec{r} es un vector columna de tres elementos y 0=[0,0,0]\vec{0} = \sbr{0, 0, 0} . Lo anterior implica que TT es una matriz de 4×44 \times 4 y por lo tanto no puede multiplicarse directamente por un vector de posición de tres componentes, así pues, para poder efectuar la transformación de coordenadas es necesario agregar una coordenada adicional a cada vector, usualmente se agrega un uno, de tal forma que dado un vector rP\vec{r}_P:

rP=[PxPyPz]\vec{r}_P = \colvec{P_x}{P_y}{P_z}

Al agregarle la coordenada adicional quedaría como:

r~P=[PxPyPz1]\vec{\tilde{r}}_P = \colvech{P_x}{P_y}{P_z}{1}

Esta es la representación homogénea de un punto. En contraste, un vector libre, como una dirección, tiene cuarta componente igual a cero; así una transformación homogénea lo rota sin trasladarlo. No debe añadirse un uno indiscriminadamente a cualquier vector.

Siguiendo con nuestro análisis, la matriz de transformación homogénea que transforma rP/o11\vec{r}_{P/o_1}^1 en rP0\vec{r}_P^0 está dada por:

T10=[R10ro100T1]T_1^0 = \begin{bmatrix} R_1^0 & \vec{r}_{o_1}^0 \\ \vec{0}^T & 1 \\ \end{bmatrix}

Así pues, la ecuación (53) se puede escribir de forma matricial de la siguiente manera:

[rP01]=[R10ro100T1][rP/o111]\begin{bmatrix}\vec{r}_P^0\\1\end{bmatrix} = \begin{bmatrix} R_1^0 & \vec{r}_{o_1}^0 \\ \vec{0}^T & 1 \\ \end{bmatrix} \begin{bmatrix}\vec{r}_{P/o_1}^1\\1\end{bmatrix}
r~P0=T10r~P/o11\vec{ \tilde{r} }_P^0 = T_1^0 \vec{ \tilde{r} }_{P/o_1}^1

Es sencillo notar la equivalencia entre ambas ecuaciones. Aquí utilizamos la tilde para distinguir a un vector en coordenadas homogéneas, sin embargo, por legibilidad, en adelante podremos prescindir de ella: cuando una matriz homogénea opere sobre la posición de un punto, se entenderá que se utiliza su representación de cuatro componentes, con la última igual a uno. Para las operaciones vectoriales ordinarias se utilizarán tres componentes, salvo indicación contraria. Esta convención abreviada no hace idénticos los objetos de tres y cuatro componentes. Además, por comodidad muchas veces se utilizará la notación rP1\vec{r}_P^1 para denotar a rP/o11\vec{r}_{P/o_1}^1, en el entendido que en general mediremos la posición de un punto con respecto al origen del sistema de referencia que usamos para describirlo; así pues, una versión simplificada de (59) se escribirá usualmente como:

rP0=T10rP1\vec{ r }_P^0 = T_1^0 \vec{ r }_{P}^1

2.3.1Interpretación de una transformación homogénea

Una matriz de transformación homogénea describe la pose de un sistema respecto de otro:

T10=[R10ro100T1]T_1^0=\begin{bmatrix}R_1^0&\vec{r}_{o_1}^0\\\vec 0^T&1\end{bmatrix}

Las tres columnas de R10R_1^0 contienen las direcciones de los ejes de {1}\{1\} expresadas en {0}\{0\}; el vector ro10\vec{r}_{o_1}^0 contiene la posición del origen de {1}\{1\} respecto de {0}\{0\}. Al transformar las coordenadas homogéneas de un punto se aplican tanto la rotación como la traslación. En cambio, cuando la cuarta componente es cero, la traslación no afecta a un vector libre.

2.3.2Transformaciones homogéneas básicas

Como ya sabemos, un cuerpo rígido que se mueve en el espacio experimenta traslación y rotación, por lo cual sus movimientos y su localización se puede definir completamente mediante tres operaciones básicas de traslación y tres de rotación, cada una en la dirección de los ejes de un sistema de referencia.

Para las operaciones elementales sobre los ejes coordenados e∈{x,y,z}e\in\{x,y,z\}, distinguimos Re(θ)R_e(\theta), la matriz de rotación de 3×33\times3, de Rot⁡e(θ)\operatorname{Rot}_e(\theta), su extensión homogénea de 4×44\times4. De forma análoga, Trans⁡e(a)\operatorname{Trans}_e(a) representa una traslación de magnitud con signo aa a lo largo del eje indicado por el subíndice. En estas expresiones, el subíndice identifica el eje y el argumento entre paréntesis indica el ángulo o desplazamiento.

Las definiciones de las operaciones homogéneas elementales son:

Rot⁡e(θ)=[Re(θ)00T1],Trans⁡e(a)=[I3ae^0T1]\operatorname{Rot}_e(\theta)= \begin{bmatrix} R_e(\theta)&\vec 0\\ \vec 0^T&1 \end{bmatrix}, \qquad \operatorname{Trans}_e(a)= \begin{bmatrix} I_3&a\hat{\vec e}\\ \vec 0^T&1 \end{bmatrix}

Aquí, e^\hat{\vec e} es el vector unitario del eje coordenado correspondiente. Cuando compongamos transformaciones indicaremos si se aplican respecto de los ejes del sistema fijo o del sistema móvil. Más adelante, para una rotación alrededor de un eje unitario arbitrario u^\hat{\vec u}, utilizaremos R(u^,θ)R(\hat{\vec u},\theta), consistente con Rx(θ)=R(e^x,θ)R_x(\theta)=R(\hat{\vec e}_x,\theta) y sus análogas para los otros ejes.

Para abreviar las expresiones siguientes escribimos cα=cos⁡αc_\alpha=\cos\alpha y sα=sin⁡αs_\alpha=\sin\alpha. Las seis transformaciones homogéneas elementales sobre los ejes xx, yy y zz son:

Trans⁡x(a)=[100a010000100001];Trans⁡y(b)=[1000010b00100001];Trans⁡z(c)=[10000100001c0001]\operatorname{Trans}_x(a) = \begin{bmatrix} 1 & 0 & 0 & a \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad;\quad \operatorname{Trans}_y(b) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & b \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad;\quad \operatorname{Trans}_z(c) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & c \\ 0 & 0 & 0 & 1 \end{bmatrix}
Rot⁡x(α)=[10000cα−sα00sαcα00001];Rot⁡y(β)=[cβ0sβ00100−sβ0cβ00001];Rot⁡z(γ)=[cγ−sγ00sγcγ0000100001]\operatorname{Rot}_x(\alpha) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & c_{\alpha} & -s_{\alpha} & 0 \\ 0 & s_{\alpha} & c_{\alpha} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad;\quad \operatorname{Rot}_y(\beta) = \begin{bmatrix} c_{\beta} & 0 & s_{\beta} & 0 \\ 0 & 1 & 0 & 0 \\ -s_{\beta} & 0 & c_{\beta} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad;\quad \operatorname{Rot}_z(\gamma) = \begin{bmatrix} c_{\gamma} & -s_{\gamma} & 0 & 0 \\ s_{\gamma} & c_{\gamma} & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

2.3.3Composición de transformaciones homogéneas

Supongamos ahora que tenemos tres sistemas de referencia: {0}\framei{0}, {1}\framei{1} y {2}\framei{2}, que difieren por rotaciones y traslaciones. Consideremos, además, que se tiene un punto PP tal como se muestra en la Figura Figure 12; es sencillo observar que las coordenadas de PP descritas en el sistema {1}\framei{1} están dadas por:

rP/o11=R21rP/o22+ro2/o11\vec{r}_{P/o_1}^1 = R_2^1 \vec{r}_{P/o_2}^2 + \vec{r}_{o_2/o_1}^1
Movimiento de sólido rígido

Figure 12:Movimiento de sólido rígido

De la Figura Figure 12 podemos observar también que la descripción de las coordenadas de PP en el sistema {0} \framei{0} está dada por:

rP0=R10rP/o11+ro10\vec{r}_P^0 = R_1^0 \vec{r}_{P/o_1}^1 + \vec{r}_{o_1}^0

Si sustituimos la ecuación (65) en la (66) se tiene que:

rP0=R10(R21rP/o22+ro2/o11)+ro10\vec{r}_P^0 = R_1^0 \left( R_2^1 \vec{r}_{P/o_2}^2 + \vec{r}_{o_2/o_1}^1 \right) + \vec{r}_{o_1}^0
rP0=R10R21rP/o22+R10ro2/o11+ro10\vec{r}_P^0 = R_1^0 R_2^1 \vec{r}_{P/o_2}^2 + R_1^0 \vec{r}_{o_2/o_1}^1 + \vec{r}_{o_1}^0

Observe que esta ecuación transforma las coordenadas de PP del sistema {2}\framei{2} al sistema {0}\framei{0}. Esta ecuación se puede escribir también utilizando la forma matricial. De acuerdo con lo visto previamente sabemos que:

T10=[R10ro100T1]T_1^0 = \begin{bmatrix} R_1^0 & \vec{r}_{o_1}^0\\ \vec{0}^T & 1 \end{bmatrix}
T21=[R21ro2/o110T1]T_2^1 = \begin{bmatrix} R_2^1 & \vec{r}_{o_2/o_1}^1 \\ \vec{0}^T & 1 \end{bmatrix}

Se puede verificar además que:

T10T21=[R10R21R10ro2/o11+ro100T1]T_1^0 T_2^1 = \begin{bmatrix} R_1^0 R_2^1 & R_1^0 \vec{r}_{o_2/o_1}^1 + \vec{r}_{o_1}^0 \\ \vec{0}^T & 1 \end{bmatrix}

Observe que si multiplicamos esta matriz resultante por el vector rP2\vec{r}_P^2 en coordenadas homogéneas, tendremos a rP0\vec{r}_P^0, tal como lo describe la ecuación (68):

[rP01]=[R10R21R10ro2/o11+ro100T1][rP/o221]\begin{bmatrix}\vec{r}_P^0\\1\end{bmatrix} = \begin{bmatrix} R_1^0 R_2^1 & R_1^0 \vec{r}_{o_2/o_1}^1 + \vec{r}_{o_1}^0 \\ \vec{0}^T & 1 \end{bmatrix} \begin{bmatrix}\vec{r}_{P/o_2}^2\\1\end{bmatrix}

Así pues, podemos denotar a esta matriz de transformación homogénea como T20T_2^0, esto implica que:

T20=T10T21T_2^0 = T_1^0 T_2^1

Esta es nuestra regla de composición básica para movimientos de rotación y traslación representados mediante matrices de transformación homogénea, y realizados con respecto a un sistema móvil. Observe que esta regla de composición es análoga a la de las matrices de rotación, de hecho, para transformaciones realizadas con respecto a un sistema fijo las matrices de transformación también se premultiplican.

Cuando las transformaciones son sólo traslaciones, en el resultado final no influye el orden de las mismas, y consecuentemente el orden de acomodo de las matrices no es restrictivo, naturalmente se prefiere escribirlas en el orden que son dadas de acuerdo con si son realizadas con respecto a un sistema fijo o móvil. Por ejemplo suponga que un sistema {B} \{B\} se obtiene del sistema {A} \{A\} mediante una traslación aa en xx, seguida de una traslación bb en yy, y finalmente una traslación cc en zz, la matriz de transformación homogénea que representa dichas operaciones está dada por:

TBA=[100a010000100001][1000010b00100001][10000100001c0001]=[100a010b001c0001]T_B^A = \begin{bmatrix}1 & 0 & 0 & a\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & b\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & c\\0 & 0 & 0 & 1\end{bmatrix} = \begin{bmatrix}1 & 0 & 0 & a\\0 & 1 & 0 & b\\0 & 0 & 1 & c\\0 & 0 & 0 & 1\end{bmatrix}

Se obtendría el mismo resultado si cualquiera de las matrices se coloca en otra posición.

2.3.4Transformación homogénea inversa

La transformación T10T_1^0 describe el sistema {1}\{1\} respecto de {0}\{0\}. Para describir el sistema {0}\{0\} respecto de {1}\{1\} utilizamos la transformación inversa:

T01=(T10)−1=[(R10)T−(R10)Tro100T1]T_0^1=(T_1^0)^{-1} =\begin{bmatrix} (R_1^0)^T&-(R_1^0)^T\vec{r}_{o_1}^0\\ \vec 0^T&1 \end{bmatrix}

La expresión se obtiene imponiendo T10T01=I4T_1^0T_0^1=I_4 y utilizando (R10)−1=(R10)T(R_1^0)^{-1}=(R_1^0)^T. La parte de posición de la transformación inversa se obtiene como:

ro01=−(R10)Tro10\vec{r}_{o_0}^1=-(R_1^0)^T\vec{r}_{o_1}^0

Por tanto, podemos escribir T01T_0^1 con la misma estructura de orientación y posición del sistema inverso. Obsérvese que no basta con cambiar el signo de la traslación: también debe expresarse en el sistema de referencia inverso.

Por ejemplo, si R10=Rz(90∘)R_1^0=R_z(90^\circ) y ro10=[2,0,0]T\vec{r}_{o_1}^0=[2,0,0]^T, entonces:

T10=[0−102100000100001],T01=[0100−100200100001]T_1^0=\begin{bmatrix} 0&-1&0&2\\ 1&0&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}, \qquad T_0^1=\begin{bmatrix} 0&1&0&0\\ -1&0&0&2\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}

La multiplicación de ambas matrices, en cualquiera de los dos órdenes, produce I4I_4. Esta inversión y la composición T20=T10T21T_2^0=T_1^0T_2^1 serán herramientas fundamentales para encadenar sistemas de referencia en la cinemática directa.

Ejemplo. Calcule la matriz de transformación homogénea T10 T_1^0 .

Sistemas de referencia relacionados por una traslación.

Figure 13:Sistemas de referencia relacionados por una traslación.

Solución:

De la Figura Figure 13 se observa que el sistema {1}\{1\} puede ser obtenido a partir de {0}\{0\} mediante una traslación de 3 unidades en xx y 5 unidades en yy. Así, la matriz de transformación homogénea que representa la descripción de dicho sistema está dada por:

T10=Trans⁡x(3) Trans⁡y(5)=[1003010500100001]T_1^0 = \operatorname{Trans}_x(3) \, \operatorname{Trans}_y(5) = \begin{bmatrix} 1 & 0 & 0 & 3\\ 0 & 1 & 0 & 5\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix}

Ejemplo. Calcule la matriz de transformación homogénea T10 T_1^0 .

Sistemas de referencia relacionados por una rotación alrededor de z.

Figure 14:Sistemas de referencia relacionados por una rotación alrededor de zz.

Solución:

El esquema de la figura Figure 14 muestra un sistema {1}\{1\} obtenido de {0}\{0\} mediante una rotación alrededor de zz de 30°. La transformación homogénea correspondiente es Rot⁡z(30∘)\operatorname{Rot}_z(30^\circ), cuya parte de rotación es Rz(30∘)R_z(30^\circ):

T10=Rot⁡z(30°)=[32−120012320000100001]T_1^0 = \operatorname{Rot}_z(30°) = \begin{bmatrix}\frac{\sqrt{3}}{2} & - \frac{1}{2} & 0 & 0\\\frac{1}{2} & \frac{\sqrt{3}}{2} & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

Ejemplo. Calcula la matriz de transformación homogénea T10T_1^0.

Sistemas de referencia relacionados por traslaciones y una rotación.

Figure 15:Sistemas de referencia relacionados por traslaciones y una rotación.

Solución:

En la figura Figure 15 se observa un sistema {1}\{1\} que puede obtenerse de {0}\{0\} mediante una serie de traslaciones y rotaciones. De manera específica, utilizando los ejes móviles, se pueden trasladar 4 unidades en xx y en yy, y posteriormente una rotación alrededor de zz de 45°, estas transformaciones se pueden expresar en forma de un producto matricial como sigue:

T10=Trans⁡x(4)Trans⁡y(4)Rot⁡z(45°)=[1004010000100001][1000010400100001][0.7071−0.7071000.70710.707100001.000001.0]=T_1^0 = \operatorname{Trans}_x(4) \operatorname{Trans}_y(4) \operatorname{Rot}_z(45°) = \begin{bmatrix}1 & 0 & 0 & 4\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 4\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}0.7071 & -0.7071 & 0 & 0\\0.7071 & 0.7071 & 0 & 0\\0 & 0 & 1.0 & 0\\0 & 0 & 0 & 1.0\end{bmatrix} =
∴T10=[0.7071−0.707104.00.70710.707104.0001.000001.0]\therefore T_1^0 = \begin{bmatrix}0.7071 & -0.7071 & 0 & 4.0\\0.7071 & 0.7071 & 0 & 4.0\\0 & 0 & 1.0 & 0\\0 & 0 & 0 & 1.0\end{bmatrix}

Ejemplo. En la Figura Figure 16 se observa una barra en rotación pura, la cual tiene adherido en su extremo un sistema móvil {1}\{1\} y un sistema fijo {0}\{0\} en su base. El sistema {1}\{1\} está definido de tal manera que el eje x1 x_1 apunta en la dirección de la línea que va desde el centro de rotación hasta su extremo. Calcule la matriz de transformación homogénea que describe la posición y orientación de {1}\framei{1} en {0} \framei{0} .

Barra de longitud L con un sistema móvil en su extremo.

Figure 16:Barra de longitud LL con un sistema móvil en su extremo.

Solución:

Se observa que el sistema {1}\{1\} se puede obtener de {0} \{0\} mediante una serie de traslaciones y rotaciones. Por ejemplo, si los desplazamientos se efectúan sobre los ejes fijos xx y yy, y después se aplica una rotación alrededor de zz, una secuencia posible sería:

  • Traslación en xx de Lcos⁡θL \cos\theta

  • Traslación en yy de Lsin⁡θL \sin\theta

  • Rotación alrededor de zz un ángulo θ\theta

La composición se expresa mediante:

T10=Trans⁡x(Lcos⁡θ) Trans⁡y(Lsin⁡θ) Rot⁡z(θ)=T_1^0 = \operatorname{Trans}_x(L\cos\theta) \, \operatorname{Trans}_y(L\sin\theta) \, \operatorname{Rot}_z(\theta) =
=[100Lcos⁡(θ)010000100001][1000010Lsin⁡(θ)00100001][cos⁡(θ)−sin⁡(θ)00sin⁡(θ)cos⁡(θ)0000100001]== \begin{bmatrix}1 & 0 & 0 & L \cos{\left (\theta \right )}\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & L \sin{\left (\theta \right )}\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}\cos{\left (\theta \right )} & - \sin{\left (\theta \right )} & 0 & 0\\\sin{\left (\theta \right )} & \cos{\left (\theta \right )} & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} =
T10=[cos⁡(θ)−sin⁡(θ)0Lcos⁡(θ)sin⁡(θ)cos⁡(θ)0Lsin⁡(θ)00100001]T_1^0 = \begin{bmatrix}\cos{\left (\theta \right )} & - \sin{\left (\theta \right )} & 0 & L \cos{\left (\theta \right )}\\\sin{\left (\theta \right )} & \cos{\left (\theta \right )} & 0 & L \sin{\left (\theta \right )}\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

Pero claro está que no es la única manera, si se ejecuta la siguiente secuencia alrededor de los ejes móviles:

  • Rotación alrededor de zz un ángulo θ\theta.

  • Traslación en xx de LL.

Se tiene:

T10=Rot⁡z(θ) Trans⁡x(L)=[cos⁡(θ)−sin⁡(θ)00sin⁡(θ)cos⁡(θ)0000100001][100L010000100001]=T_1^0 = \operatorname{Rot}_z(\theta) \, \operatorname{Trans}_x(L) = \begin{bmatrix}\cos{\left (\theta \right )} & - \sin{\left (\theta \right )} & 0 & 0\\\sin{\left (\theta \right )} & \cos{\left (\theta \right )} & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & L\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} =
T10=[cos⁡(θ)−sin⁡(θ)0Lcos⁡(θ)sin⁡(θ)cos⁡(θ)0Lsin⁡(θ)00100001]T_1^0 = \begin{bmatrix}\cos{\left (\theta \right )} & - \sin{\left (\theta \right )} & 0 & L \cos{\left (\theta \right )}\\\sin{\left (\theta \right )} &\cos{\left (\theta \right )} & 0 & L \sin{\left (\theta \right )}\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

Lo cual conduce en efecto a la misma descripción obtenida con anterioridad. De igual manera se pueden establecer transformaciones con respecto a los ejes fijos que produzcan el mismo resultado.

Ejemplo. En la figura Figure 17 se observa una placa plana rectangular de las dimensiones indicadas, en cuyas esquinas se colocan algunos sistemas de referencia. Calcule T10T_1^0, T21 T_2^1 , T20 T_2^0 y T32 T_3^2 .

Una placa plana con múltiples sistemas de referencia

Figure 17:Una placa plana con múltiples sistemas de referencia

Solución:

Descripción de {1}\{1\} con respecto a {0}\{0\}

Como se observa en la figura Figure 17, el sistema {1}\{1\} está trasladado 300 mm en la dirección de xx y 160 mm en la dirección de yy. Por lo tanto, el producto matricial que proporciona la matriz de transformación total está dado por:

T10=Trans⁡x(300)Trans⁡y(160)=[100300010000100001][100001016000100001]=[10030001016000100001]T_1^0 = \operatorname{Trans}_x(300) \operatorname{Trans}_y(160) = \begin{bmatrix}1 & 0 & 0 & 300\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 160\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} = \begin{bmatrix}1 & 0 & 0 & 300\\0 & 1 & 0 & 160\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

Observe que la matriz resultante concuerda con lo esquematizado, T10 T_1^0 indica que el origen de coordenadas del sistema {1}\{1\} está en las coordenadas (300,160) y en la misma orientación con respecto a {0}\{0\}.

Descripción de {2}\{2\} con respecto a {1}\{1\}

De acuerdo a lo mostrado en la figura Figure 17 el sistema {2}\{2\} puede obtenerse a partir de {1}\{1\} mediante una traslación de 300 mm en la dirección negativa de xx y enseguida una rotación de 90° alrededor de zz. Con lo anterior se tiene:

T21=Trans⁡x(−300) Rot⁡z(90°)=[100−300010000100001][0−100100000100001]=[0−10−300100000100001]T_2^1 = \operatorname{Trans}_x(-300) \, \operatorname{Rot}_z(90°) = \begin{bmatrix}1 & 0 & 0 & -300\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}0 & -1 & 0 & 0\\1 & 0 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} = \begin{bmatrix}0 & -1 & 0 & -300\\1 & 0 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

Observe que de acuerdo a T21 T_2^1 el eje X2X_2 apunta en la dirección positiva del eje Y1 Y_1 , y que el eje Y2 Y_2 apunta en la dirección negativa del eje X1 X_1 , lo cual concuerda con el esquema de referencia. Es más, la posición del origen de {2}\{2\} respecto a {1}\{1\} es (-300,0), misma que puede corroborarse en la Figura Figure 17.

Descripción de {2}\{2\} con respecto a {0}\{0\}

Como se observa en la figura Figure 17 el sistema {2}\{2\} puede obtenerse de {0}\{0\} mediante una traslación de 160 mm en la dirección de yy, y una posterior rotación de 90° alrededor de zz.

T20=Trans⁡y(160) Rot⁡z(90∘)=[100001016000100001][0−100100000100001]=[0−10010016000100001]T_2^0 = \operatorname{Trans}_y(160) \, \operatorname{Rot}_z(90^\circ) = \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 160\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}0 & -1 & 0 & 0\\1 & 0 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} = \begin{bmatrix}0 & -1 & 0 & 0\\1 & 0 & 0 & 160\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

La matriz T20 T_2^0 también puede obtenerse mediante la composición de matrices de transformación, bajo la consideración de que previamente se han calculado T10 T_1^0 y T21 T_2^1 , así:

T20=T10 T21=[10030001016000100001][0−10−300100000100001]=[0−10010016000100001]T_2^0 = T_1^0 \, T_2^1 = \begin{bmatrix}1 & 0 & 0 & 300\\0 & 1 & 0 & 160\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}0 & -1 & 0 & -300\\1 & 0 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} = \begin{bmatrix}0 & -1 & 0 & 0\\1 & 0 & 0 & 160\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}

Descripción de {3}\{3\} con respecto a {2}\{2\}

De la figura Figure 17 se puede identificar que {3}\{3\} se puede obtener de {2}\{2\} mediante una rotación horaria de un ángulo α\alpha en la dirección de zz, seguida de una traslación de dr d_r en la dirección negativa de yy, siendo dr d_r la longitud de la diagonal del rectángulo, entonces se tiene:

α=arctan⁡(160300)=28.07°;dr=1602+3002=340 mm\alpha = \arctan\left(\frac{160}{300}\right) = 28.07° \qquad ; \qquad d_r = \sqrt{160^2 + 300^2} = 340 \text{ mm}
T32=Rot⁡z(−α) Trans⁡y(−dr)=[0.88240.470600−0.47060.882400001.000001.0][1000010−34000100001]T_3^2 = \operatorname{Rot}_z(-\alpha) \, \operatorname{Trans}_y(-d_r) = \begin{bmatrix}0.8824 & 0.4706 & 0 & 0\\-0.4706 & 0.8824 & 0 & 0\\0 & 0 & 1.0 & 0\\0 & 0 & 0 & 1.0\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & -340\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix}
T32=[0.88240.47060−160.0−0.47060.88240−300.0001.000001.0]T_3^2 = \begin{bmatrix}0.8824 & 0.4706 & 0 & -160.0\\-0.4706 & 0.8824 & 0 & -300.0\\0 & 0 & 1.0 & 0\\0 & 0 & 0 & 1.0\end{bmatrix}

Como es de suponer, además de las series de transformaciones descritas en los puntos anteriores, existen una cantidad considerable de posibles secuencias de transformaciones. Por lo anterior, usualmente en cinemática de manipuladores se establecen ciertos criterios para el establecimiento de los sistemas de referencia así como de las transformaciones a realizar, esto es algo que se verá en el siguiente capítulo.

2.4Parametrizaciones de la orientación

Las matrices de rotación proporcionan una descripción completa de la orientación, pero utilizan nueve entradas sujetas a restricciones. Existen representaciones alternativas mediante menos parámetros que pueden resultar útiles para especificar una orientación o para describir un movimiento. Estudiaremos las secuencias de Euler ZXZ y ZYZ, los ángulos Roll-Pitch-Yaw, la representación eje-ángulo y una introducción a los cuaterniones unitarios.

2.4.1Ángulos de Euler

Las matrices de rotación proporcionan una descripción redundante de la orientación de un sistema de referencia con respecto a otro, puesto que sus nueve elementos no son independientes entre sí, debido a las restricciones de ortogonalidad entre sus columnas y el hecho de que cada columna es un vector unitario. De esto se desprenden seis restricciones dadas por las ecuaciones (94) y (95).

∑rij2=1;j∈{1,2,3}\sum r_{ij}^2 = 1 \qquad; \qquad j \in \{1,2,3\}
r1ir1j+r2ir2j+r3ir3j=0;i≠jr_{1i} r_{1j} + r_{2i} r_{2j} + r_{3i} r_{3j} = 0 \qquad; \qquad i \neq j

Lo anterior implica que se requieren tres parámetros independientes para representar completamente la orientación de un cuerpo rígido en el espacio. Una representación en términos de tres parámetros independientes se dice que es una representación mínima.

Una orientación también puede describirse mediante tres parámetros angulares (ϕ,θ,ψ)(\phi,\theta,\psi), asociados a una secuencia ordenada de rotaciones. Es importante distinguir dos criterios independientes:

  • Euler propios y Tait-Bryan: las secuencias de Euler propios repiten el primer eje al final (por ejemplo, ZXZ y ZYZ); las secuencias de Tait-Bryan utilizan tres ejes distintos (por ejemplo, XYZ o ZYX).

  • Rotaciones intrínsecas y extrínsecas: las intrínsecas se efectúan con respecto a ejes móviles y las extrínsecas con respecto a ejes fijos. Ambos tipos de secuencia pueden expresarse mediante una u otra convención.

Aunque tres parámetros constituyen una representación mínima local, las parametrizaciones mediante tres ángulos presentan configuraciones singulares y una misma orientación puede admitir diferentes conjuntos de ángulos. En las secciones siguientes utilizaremos secuencias intrínsecas ZXZ y ZYZ.

2.4.1.1Ángulos de Euler ZXZ

En este caso, a partir de un sistema fijo se puede obtener otro sistema de referencia en cualquier orientación mediante tres rotaciones sucesivas alrededor del sistema móvil, a saber:

  • Una rotación de un ángulo ϕ\phi alrededor del eje zz

  • Una rotación de un ángulo θ\theta alrededor del eje xx

  • Una rotación de un ángulo ψ\psi alrededor del eje zz

Emplearemos las abreviaturas cα=cos⁡αc_\alpha=\cos\alpha y sα=sin⁡αs_\alpha=\sin\alpha. La composición conduce a:

RZXZ=[cos⁡(ϕ)−sin⁡(ϕ)0sin⁡(ϕ)cos⁡(ϕ)0001][1000cos⁡(θ)−sin⁡(θ)0sin⁡(θ)cos⁡(θ)][cos⁡(ψ)−sin⁡(ψ)0sin⁡(ψ)cos⁡(ψ)0001]=R_{ZXZ} = \begin{bmatrix}\cos{\left (\phi \right )} & - \sin{\left (\phi \right )} & 0 \\\sin{\left (\phi \right )} & \cos{\left (\phi \right )} & 0 \\0 & 0 & 1 \end{bmatrix} \begin{bmatrix}1 & 0 & 0 \\ 0 & \cos{\left (\theta \right )} & - \sin{\left (\theta \right )} \\0 & \sin{\left (\theta \right )} & \cos{\left (\theta \right )} \end{bmatrix} \begin{bmatrix}\cos{\left (\psi \right )} & - \sin{\left (\psi \right )} & 0 \\\sin{\left (\psi \right )} & \cos{\left (\psi \right )} & 0 \\ 0 & 0 & 1 \end{bmatrix} =
RZXZ=[−sϕsψcθ+cϕcψ−sϕcψcθ−sψcϕsϕsθsϕcψ+sψcϕcθ−sϕsψ+cϕcψcθ−sθcϕsψsθsθcψcθ]R_{ZXZ} = \begin{bmatrix}- s_{\phi} s_{\psi} c_{\theta} + c_{\phi} c_{\psi} & - s_{\phi} c_{\psi} c_{\theta} - s_{\psi} c_{\phi} & s_{\phi} s_{\theta} \\ s_{\phi} c_{\psi} + s_{\psi} c_{\phi} c_{\theta} & - s_{\phi} s_{\psi} + c_{\phi} c_{\psi} c_{\theta} & - s_{\theta} c_{\phi} \\s\psi s_{\theta} & s_{\theta} c_{\psi} & c_{\theta} \end{bmatrix}

Evidentemente, calcular la matriz de rotación correspondiente a un conjunto de ángulos de Euler es una tarea que puede realizarse sin problemas, puesto que implica únicamente multiplicaciones matriciales en el orden indicado. Un problema de naturaleza menos trivial es que a partir de una matriz de rotación RR se obtenga el conjunto de ángulos de Euler ZXZ equivalentes, de tal forma que:

R=RZXZR = R_{ZXZ}

donde:

R=[r11r12r13r21r22r23r31r32r33]R = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix}

Siendo RR, naturalmente, una matriz cuyos valores son todos conocidos. Para resolver este problema se considerarán tres casos.

Caso I

Si r13r_{13} y r23r_{23} no son ambas cero, de acuerdo con (98) implica necesariamente que sθ≠0s_{\theta} \neq 0, y consecuentemente que r13r_{13} y r23r_{23} no son ambas cero. Lo anterior conduce a que r33≠±1r_{33} \neq \pm 1 , entonces cθ=r33c_{\theta} = r_{33} y sθ=±1−r332s_{\theta} = \pm\sqrt{1-r_{33}^2} , lo cual implica dos posibles soluciones para θ\theta:

θ=arctan2(1−r332,r33)\theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right)
θ=arctan2(−1−r332,r33)\theta = \text{arctan2} \left(-\sqrt{1-r_{33}^2},r_{33}\right)

Si se toma la solución para θ\theta dada por (100), entonces:

ϕ=arctan2(r13,−r23)\phi = \text{arctan2} \left( r_{13}, - r_{23} \right)
ψ=arctan2(r31,r32)\psi = \text{arctan2} \left( r_{31}, r_{32} \right)

Si se toma la solución para θ\theta dada por (101), entonces:

ϕ=arctan2(−r13,r23)\phi = \text{arctan2} \left( -r_{13}, r_{23} \right)
ψ=arctan2(−r31,−r32)\psi = \text{arctan2} \left( -r_{31}, -r_{32} \right)

Caso II

Si r13=r23=0r_{13} = r_{23} = 0, dado que RR es ortogonal implica que r33=±1r_{33}=\pm 1 y r31=r32=0r_{31}=r_{32}=0, entonces RR tendrá la forma:

R=[r11r120r21r22000±1]R = \begin{bmatrix} r_{11} & r_{12} & 0 \\ r_{21} & r_{22} & 0 \\ 0 & 0 & \pm 1 \end{bmatrix}

Si r33=1r_{33}=1 entonces, cos⁡θ=1\cos\theta=1 y sin⁡θ=0\sin\theta=0, lo cual permite elegir θ=0°\theta = 0° (módulo 360°360°). De lo anterior se tiene:

RZXZ=[cos⁡(ϕ+ψ)−sin⁡(ϕ+ψ)0sin⁡(ϕ+ψ)cos⁡(ϕ+ψ)0001]R_{ZXZ} = \begin{bmatrix}\cos{\left (\phi + \psi \right )} & - \sin{\left (\phi + \psi \right )} & 0\\\sin{\left (\phi + \psi \right )} & \cos{\left (\phi + \psi \right )} & 0\\0 & 0 & 1\end{bmatrix}
ϕ+ψ=arctan2(r21,r11)\phi + \psi = \text{arctan2} \left( r_{21}, r_{11} \right)

Lo anterior implica una cantidad infinita de soluciones. Por convención se asume ψ=0°\psi = 0° y entonces:

ϕ=arctan2(r21,r11)\phi = \text{arctan2} \left( r_{21}, r_{11} \right)

Caso III

De manera similar al caso anterior, si r33=−1r_{33}=-1 entonces, cos⁡θ=−1\cos\theta=-1 y sin⁡θ=0\sin\theta=0, lo cual permite elegir θ=180°\theta = 180° (módulo 360°360°). De lo anterior se tiene:

RZXZ=[cos⁡(ϕ−ψ)sin⁡(ϕ−ψ)0sin⁡(ϕ−ψ)−cos⁡(ϕ−ψ)000−1]R_{ZXZ} = \begin{bmatrix}\cos{\left (\phi - \psi \right )} & \sin{\left (\phi - \psi \right )} & 0\\\sin{\left (\phi - \psi \right )} & -\cos{\left (\phi - \psi \right )} & 0\\0 & 0 & -1\end{bmatrix}
ϕ−ψ=arctan2(r21,r11)\phi - \psi = \text{arctan2} \left( r_{21}, r_{11} \right)

Lo anterior implica una cantidad infinita de soluciones. Por convención se asume ψ=0°\psi = 0° y entonces:

ϕ=arctan2(r21,r11)\phi = \text{arctan2} \left( r_{21}, r_{11} \right)

Ejemplo. Para la siguiente matriz de rotación, calcule el conjunto de ángulos de Euler ZXZ equivalente.

R=[00132120−12320]R = \left[\begin{matrix}0 & 0 & 1\\\frac{\sqrt{3}}{2} & \frac{1}{2} & 0\\- \frac{1}{2} & \frac{\sqrt{3}}{2} & 0\end{matrix}\right]

Solución:

Dado que r33≠±1r_{33} \neq \pm 1 podemos utilizar el conjunto de ecuaciones para el primer caso, es decir:

θ=arctan2(1−r332,r33)=arctan2(1−02,0)=90°\theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right) = \text{arctan2} \left( \sqrt{1 - 0^2}, 0 \right) = 90°
ϕ=arctan2(r13,−r23)=arctan2(1,0)=90°\phi = \text{arctan2} \left( r_{13}, - r_{23} \right) = \text{arctan2} \left( 1, 0 \right) = 90°
ψ=arctan2(r31,r32)=arctan2(−12,32)=−30°\psi = \text{arctan2} \left( r_{31}, r_{32} \right) = \text{arctan2} \left( -\frac{1}{2}, \frac{\sqrt{3}}{2} \right) = -30°

Por lo tanto:

(ϕ,θ,ψ)=(90°,90°,−30°)\rbr{\phi,\theta,\psi} = \rbr{90°, 90°, -30°}

Ejemplo. Para la siguiente matriz de rotación, calcule el conjunto de ángulos de Euler ZXZ equivalente.

R=[0.9397−0.34200.3420.93970001.0]R = \left[\begin{matrix}0.9397 & -0.342 & 0\\0.342 & 0.9397 & 0\\0 & 0 & 1.0\end{matrix}\right]

Solución:

Dado que r33=1r_{33} = 1 podemos utilizar el conjunto de ecuaciones para el segundo caso. Por convención tomamos ψ=0°\psi=0° para seleccionar una de las infinitas soluciones:

ϕ=arctan2(0.342,0.9397)≈20°\phi = \text{arctan2}(0.342,0.9397) \approx 20°
θ=0°\theta = 0°
ψ=0°\psi = 0°

Entonces, el conjunto de ángulos de Euler ZXZ equivalentes es

(ϕ,θ,ψ)=(20°,0°,0°)\rbr{\phi,\theta,\psi} = \rbr{20°, 0°, 0°}

Ejemplo. Calcule los ángulos de Euler ZXZ que son equivalentes a la matriz de rotación que resulta de la siguiente secuencia de rotaciones alrededor de los ejes móviles: una rotación de 60° alrededor del eje zz seguida de una rotación de 135° alrededor del eje yy.

Solución:

Para resolver este problema lo primero que debemos hacer es calcular la matriz de rotación que resulta de efectuar las dos operaciones indicadas, para ello multiplicamos las matrices de rotación en el orden correspondiente, es decir:

R=Rz(60°)Ry(135°)=[12−32032120001][−22022010−220−22]=[−24−3224−641264−220−22]R = R_z(60°) R_y(135°) = \left[\begin{matrix}\frac{1}{2} & - \frac{\sqrt{3}}{2} & 0\\\frac{\sqrt{3}}{2} & \frac{1}{2} & 0\\0 & 0 & 1\end{matrix}\right] \left[\begin{matrix}- \frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2}\\0 & 1 & 0\\- \frac{\sqrt{2}}{2} & 0 & - \frac{\sqrt{2}}{2}\end{matrix}\right] = \left[\begin{matrix}- \frac{\sqrt{2}}{4} & - \frac{\sqrt{3}}{2} & \frac{\sqrt{2}}{4}\\- \frac{\sqrt{6}}{4} & \frac{1}{2} & \frac{\sqrt{6}}{4}\\- \frac{\sqrt{2}}{2} & 0 & - \frac{\sqrt{2}}{2}\end{matrix}\right]

Dado que r33≠±1r_{33} \neq \pm 1 podemos utilizar el conjunto de ecuaciones para el primer caso, es decir:

θ=arctan2(1−r332,r33)=arctan2(1−(−22)2,−22)=135°\theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right) = \text{arctan2} \rbr{ \sqrt{1 - \left(-\frac{\sqrt{2}}{2} \right)^2}, -\frac{\sqrt{2}}{2} } = 135°
ϕ=arctan2(r13,−r23)=arctan2(24,−64)=150°\phi = \text{arctan2} \left( r_{13}, - r_{23} \right) = \text{arctan2} \rbr{ \frac{ \sqrt{2} }{4} , -\frac{ \sqrt{6} }{4} } = 150°
ψ=arctan2(r31,r32)=arctan2(−22,0)=−90°\psi = \text{arctan2} \left( r_{31}, r_{32} \right) = \text{arctan2} \rbr{ -\frac{\sqrt{2}}{2}, 0 } = -90°

El ángulo −90°-90° es equivalente a 270°270° módulo 360°360°. Por tanto, también puede elegirse esta representación:

(ϕ,θ,ψ)=(150°,135°,270°)\rbr{\phi,\theta,\psi} = \rbr{150°, 135°, 270°}

2.4.1.2Ángulos de Euler ZYZ

Los ángulos de Euler ZYZ nos permiten describir la orientación de un cuerpo rígido mediante tres rotaciones sucesivas alrededor del sistema móvil, en el siguiente orden:

  • Una rotación de un ángulo ϕ\phi alrededor del eje zz

  • Una rotación de un ángulo θ\theta alrededor del eje yy

  • Una rotación de un ángulo ψ\psi alrededor del eje zz

Con las mismas abreviaturas cα=cos⁡αc_\alpha=\cos\alpha y sα=sin⁡αs_\alpha=\sin\alpha, la secuencia conduce a la siguiente matriz equivalente:

Rzyz=[cos⁡(ϕ)−sin⁡(ϕ)0sin⁡(ϕ)cos⁡(ϕ)0001][cos⁡(θ)0sin⁡(θ)010−sin⁡(θ)0cos⁡(θ)][cos⁡(ψ)−sin⁡(ψ)0sin⁡(ψ)cos⁡(ψ)0001]R_{zyz} = \begin{bmatrix}\cos{\left (\phi \right )} & - \sin{\left (\phi \right )} & 0 \\\sin{\left (\phi \right )} & \cos{\left (\phi \right )} & 0 \\0 & 0 & 1 \end{bmatrix} \begin{bmatrix}\cos{\left(\theta \right)} & 0 & \sin{\left(\theta \right)}\\0 & 1 & 0\\- \sin{\left(\theta \right)} & 0 & \cos{\left(\theta \right)}\end{bmatrix} \begin{bmatrix}\cos{\left (\psi \right )} & - \sin{\left (\psi \right )} & 0 \\\sin{\left (\psi \right )} & \cos{\left (\psi \right )} & 0 \\ 0 & 0 & 1 \end{bmatrix}
Rzyz=[cϕcψcθ−sϕsψ−cϕcθsψ−cψsϕcϕsθcϕsψ+cψcθsϕcϕcψ−cθsϕsψsϕsθ−cψsθsψsθcθ]R_{zyz} = \begin{bmatrix} c_{\phi} c_{\psi} c_{\theta} - s_{\phi} s_{\psi} & - c_{\phi} c_{\theta} s_{\psi} - c_{\psi} s_{\phi} & c_{\phi} s_{\theta}\\ c_{\phi} s_{\psi} + c_{\psi} c_{\theta} s_{\phi} & c_{\phi} c_{\psi} - c_{\theta} s_{\phi} s_{\psi} & s_{\phi} s_{\theta}\\ - c_{\psi} s_{\theta} & s_{\psi} s_{\theta} & c_{\theta} \end{bmatrix}

Al igual que con la secuencia ZXZ, podemos determinar a partir de una matriz de rotación RR los ángulos de Euler equivalente resolviendo la ecuación matricial:

R=RzyzR = R_{zyz}

donde:

R=[r11r12r13r21r22r23r31r32r33]R = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix}

Siendo RR, naturalmente, una matriz cuyos valores son todos conocidos. Para resolver este problema se considerarán tres casos.

Caso I

Si r13r_{13} y r23r_{23} no son ambas cero, de acuerdo con (130) implica necesariamente que sθ≠0s_{\theta} \neq 0, y consecuentemente que r13r_{13} y r23r_{23} no son ambas cero. Lo anterior conduce a que r33≠±1r_{33} \neq \pm 1 , entonces cθ=r33c_{\theta} = r_{33} y sθ=±1−r332s_{\theta} = \pm\sqrt{1-r_{33}^2} , lo cual implica dos posibles soluciones para θ\theta:

θ=arctan2(1−r332,r33)\theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right)
θ=arctan2(−1−r332,r33)\theta = \text{arctan2} \left(-\sqrt{1-r_{33}^2},r_{33}\right)

Si se toma la solución para θ\theta dada por (132), entonces:

ϕ=arctan2(r23,r13)\phi = \text{arctan2} \left( r_{23}, r_{13} \right)
ψ=arctan2(r32,−r31)\psi = \text{arctan2} \left( r_{32}, -r_{31} \right)

Si se toma la solución para θ\theta dada por (133), entonces:

ϕ=arctan2(−r23,−r13)\phi = \text{arctan2} \left( - r_{23}, - r_{13} \right)
ψ=arctan2(−r32,r31)\psi = \text{arctan2} \left( - r_{32}, r_{31} \right)

Caso II

Si r13=r23=0r_{13} = r_{23} = 0, dado que RR es ortogonal implica que r33=±1r_{33}=\pm 1 y r31=r32=0r_{31}=r_{32}=0, entonces RR tendrá la forma:

R=[r11r120r21r22000±1]R = \begin{bmatrix} r_{11} & r_{12} & 0 \\ r_{21} & r_{22} & 0 \\ 0 & 0 & \pm 1 \end{bmatrix}

Si r33=1r_{33}=1 entonces, cos⁡θ=1\cos\theta=1 y sin⁡θ=0\sin\theta=0, lo cual permite elegir θ=0°\theta = 0° (módulo 360°360°). De lo anterior se tiene:

Rzyz=[cos⁡(ϕ+ψ)−sin⁡(ϕ+ψ)0sin⁡(ϕ+ψ)cos⁡(ϕ+ψ)0001]R_{zyz} = \begin{bmatrix}\cos{\left (\phi + \psi \right )} & - \sin{\left (\phi + \psi \right )} & 0\\\sin{\left (\phi + \psi \right )} & \cos{\left (\phi + \psi \right )} & 0\\0 & 0 & 1\end{bmatrix}
ϕ+ψ=arctan2(r21,r11)\phi + \psi = \text{arctan2} \left( r_{21}, r_{11} \right)

Lo anterior implica una cantidad infinita de soluciones. Por convención se asume ψ=0°\psi = 0° y entonces:

ϕ=arctan2(r21,r11)\phi = \text{arctan2} \left( r_{21}, r_{11} \right)

Caso III

De manera similar al caso anterior, si r33=−1r_{33}=-1 entonces, cos⁡θ=−1\cos\theta=-1 y sin⁡θ=0\sin\theta=0, lo cual permite elegir θ=180°\theta = 180° (módulo 360°360°). De lo anterior se tiene:

Rzyz=[−cos⁡(ϕ−ψ)−sin⁡(ϕ−ψ)0−sin⁡(ϕ−ψ)cos⁡(ϕ−ψ)000−1]R_{zyz} = \begin{bmatrix}- \cos{\left(\phi - \psi \right)} & - \sin{\left(\phi - \psi \right)} & 0\\ - \sin{\left(\phi - \psi \right)} & \cos{\left(\phi - \psi \right)} & 0\\ 0 & 0 & -1 \end{bmatrix}
ϕ−ψ=arctan2(−r21,−r11)\phi - \psi = \text{arctan2} \left( -r_{21}, -r_{11} \right)

Lo anterior implica una cantidad infinita de soluciones. Por convención se asume ψ=0°\psi = 0° y entonces:

ϕ=arctan2(−r21,−r11)\phi = \text{arctan2} \left( -r_{21}, -r_{11} \right)

2.4.2Ángulos Roll-Pitch-Yaw (RPY)

Una alternativa para describir la orientación mediante tres ángulos consiste en utilizar las rotaciones roll, pitch y yaw. Es indispensable especificar los ejes y el orden de aplicación: diferentes convenciones pueden producir matrices distintas para un mismo conjunto de ángulos.

Aquí utilizaremos la secuencia ZYX intrínseca, equivalente a aplicar rotaciones extrínsecas alrededor de los ejes fijos en el orden X, Y, Z. Denotamos roll por ϕ\phi, pitch por θ\theta y yaw por ψ\psi. La matriz resultante es:

RZYX(ϕ,θ,ψ)=Rz(ψ)Ry(θ)Rx(ϕ)=[cψcθcψsθsϕ−sψcϕcψsθcϕ+sψsϕsψcθsψsθsϕ+cψcϕsψsθcϕ−cψsϕ−sθcθsϕcθcϕ]R_{\mathrm{ZYX}}(\phi,\theta,\psi)=R_z(\psi)R_y(\theta)R_x(\phi) =\begin{bmatrix} c_\psi c_\theta & c_\psi s_\theta s_\phi-s_\psi c_\phi & c_\psi s_\theta c_\phi+s_\psi s_\phi\\ s_\psi c_\theta & s_\psi s_\theta s_\phi+c_\psi c_\phi & s_\psi s_\theta c_\phi-c_\psi s_\phi\\ -s_\theta & c_\theta s_\phi & c_\theta c_\phi \end{bmatrix}

Aquí cα=cos⁡αc_\alpha=\cos\alpha y sα=sin⁡αs_\alpha=\sin\alpha.

Si conocemos R=[rij]R=[r_{ij}] y nos restringimos a la solución principal con −π/2<θ<π/2-\pi/2<\theta<\pi/2, podemos recuperar los ángulos, siempre que cos⁡θ≠0\cos\theta\neq 0, mediante:

θ=atan2⁡(−r31,r112+r212),ϕ=atan2⁡(r32,r33),ψ=atan2⁡(r21,r11)\theta=\operatorname{atan2}\left(-r_{31},\sqrt{r_{11}^2+r_{21}^2}\right),\qquad \phi=\operatorname{atan2}(r_{32},r_{33}),\qquad \psi=\operatorname{atan2}(r_{21},r_{11})

Esta representación es compacta y tiene una interpretación intuitiva, pero no es globalmente única. Cuando θ=±π/2\theta=\pm\pi/2, los ángulos roll y yaw dejan de ser independientes (bloqueo de cardán o gimbal lock): únicamente puede determinarse una combinación de ambos. En ese caso debe adoptarse una convención para obtener una solución particular, por ejemplo fijar ϕ=0\phi=0 y resolver ψ\psi a partir de los elementos de RR.

Ejemplo. Una rotación de 30∘30^\circ alrededor del eje fijo zz, sin roll ni pitch, corresponde a (ϕ,θ,ψ)=(0∘,0∘,30∘)(\phi,\theta,\psi)=(0^\circ,0^\circ,30^\circ) y produce:

R=[3/2−1/201/23/20001]R=\begin{bmatrix} \sqrt{3}/2&-1/2&0\\ 1/2&\sqrt{3}/2&0\\ 0&0&1 \end{bmatrix}

La denominación RPY no determina por sí sola una secuencia universal: al consultar software o documentación técnica siempre debe verificarse la convención adoptada.

2.4.3Representación eje-ángulo

Una rotación propia en el espacio puede describirse mediante un eje unitario u^=[ux,uy,uz]T\hat{\vec u}=[u_x,u_y,u_z]^T y un ángulo θ\theta, siguiendo la regla de la mano derecha. La interpretación geométrica es directa: los puntos del eje permanecen fijos y los demás giran alrededor de él.

Introducimos la matriz antisimétrica asociada a u^\hat{\vec u}:

[u^]×=[0−uzuyuz0−ux−uyux0],[u^]×v=u^×v[\hat{\vec u}]_\times= \begin{bmatrix} 0&-u_z&u_y\\ u_z&0&-u_x\\ -u_y&u_x&0 \end{bmatrix}, \qquad [\hat{\vec u}]_\times\vec v=\hat{\vec u}\times\vec v

La matriz [u^]×[\hat{\vec u}]_\times representa algebraicamente el producto vectorial con el eje. Para construir una rotación alrededor de un eje arbitrario utilizamos la fórmula de Rodrigues:

R(u^,θ)=I3+sin⁡θ [u^]×+(1−cos⁡θ)[u^]×2\boxed{R(\hat{\vec u},\theta) =I_3+\sin\theta\,[\hat{\vec u}]_\times +(1-\cos\theta)[\hat{\vec u}]_\times^2}

Su origen se comprende al descomponer un vector en una componente paralela al eje y otra perpendicular. La componente paralela permanece invariable y la perpendicular gira un ángulo θ\theta en su propio plano.

Como comprobación, para u^=[0,0,1]T\hat{\vec u}=[0,0,1]^T se obtiene la rotación elemental:

R(u^,θ)=[cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001]R(\hat{\vec u},\theta)= \begin{bmatrix} \cos\theta&-\sin\theta&0\\ \sin\theta&\cos\theta&0\\ 0&0&1 \end{bmatrix}

Esta representación no es única: (u^,θ)(\hat{\vec u},\theta) y (−u^,−θ)(-\hat{\vec u},-\theta) describen la misma rotación. También existe una ambigüedad especial en θ=0\theta=0, para la cual cualquier eje unitario representa la identidad.

Para una matriz de rotación conocida, el ángulo principal puede calcularse mediante:

θ=arccos⁡(tr⁡(R)−12),0≤θ≤π\theta=\arccos\left(\frac{\operatorname{tr}(R)-1}{2}\right), \qquad 0\leq\theta\leq\pi

Si 0<θ<π0<\theta<\pi, el eje correspondiente se obtiene de:

u^=12sin⁡θ[r32−r23r13−r31r21−r12]\hat{\vec u}=\frac{1}{2\sin\theta} \begin{bmatrix}r_{32}-r_{23}\\r_{13}-r_{31}\\r_{21}-r_{12}\end{bmatrix}

Esta última expresión no debe utilizarse directamente para θ=0\theta=0 o θ=π\theta=\pi, porque sin⁡θ=0\sin\theta=0. Son casos que necesitan un tratamiento separado; para θ=π\theta=\pi puede recuperarse el eje de los autovectores de RR asociados al valor propio 1, con signo indistinto.

La representación eje-ángulo resulta especialmente útil para entender geométricamente las rotaciones y conecta con formulaciones más avanzadas de la cinemática.

2.4.4Cuaterniones unitarios: introducción

Los cuaterniones unitarios ofrecen otra representación de la orientación espacial. Un cuaternión se compone de una parte escalar y una vectorial:

q=[qwqv],qw2+qv Tqv=1q=\begin{bmatrix}q_w\\\vec q_v\end{bmatrix}, \qquad q_w^2+\vec q_v^{\,T}\vec q_v=1

A partir de un eje unitario u^\hat{\vec u} y un ángulo θ\theta se construye:

qw=cos⁡θ2,qv=u^sin⁡θ2q_w=\cos\frac{\theta}{2}, \qquad \vec q_v=\hat{\vec u}\sin\frac{\theta}{2}

Con esta convención (parte escalar primero y rotaciones activas), el cuaternión determina una matriz de rotación mediante:

R(q)=(qw2−qv Tqv)I3+2qvqv T+2qw[qv]×R(q)=\left(q_w^2-\vec q_v^{\,T}\vec q_v\right)I_3 +2\vec q_v\vec q_v^{\,T} +2q_w[\vec q_v]_\times

Los cuaterniones qq y −q-q representan la misma orientación. A diferencia de una parametrización de tres ángulos, una representación con cuaterniones unitarios evita las singularidades de tipo gimbal lock, aunque utiliza cuatro componentes sujetos a una restricción de norma.

Su empleo es frecuente en representación e interpolación de orientaciones, simulación y control de movimiento. Para los propósitos de estos apuntes bastará con reconocer su significado, construirlos a partir del eje y el ángulo, y entender por qué constituyen una alternativa a los ángulos de Euler y RPY.

2.4.5Síntesis de las representaciones de orientación

Todas las representaciones estudiadas describen la misma orientación espacial, pero utilizan diferentes cantidades y restricciones:

RepresentaciónCantidades escalaresCaracterísticas
Matriz de rotación9Sus columnas son ortonormales y su determinante es +1; no presenta singularidades de parametrización
Euler ZXZ y ZYZ3Representaciones mínimas locales; presentan configuraciones singulares
Roll-Pitch-Yaw (ZYX)3Ángulos asociados a una secuencia de ejes; presenta bloqueo de cardán
Eje-ángulo4Un eje unitario y un ángulo; la representación no es única
Cuaternión unitario4Satisface una restricción de norma; qq y −q-q representan la misma orientación y no presenta bloqueo de cardán

En eje-ángulo y cuaterniones hay cuatro cantidades escalares sujetas a una restricción, por lo que la orientación sigue teniendo tres grados de libertad. La elección de representación depende del problema y de la interpretación o las operaciones que se requieran.

2.4.6Cierre del capítulo

Los vectores de posición permiten localizar puntos respecto de sistemas de referencia, mientras que las matrices de rotación describen orientaciones y transforman coordenadas. Las transformaciones homogéneas reúnen la posición y la orientación en una sola matriz; sus reglas de composición e inversión permiten relacionar múltiples sistemas de referencia. En el estudio de la cinemática directa emplearemos estas herramientas para describir la posición y orientación de los eslabones de un manipulador.

2.5Problemas

2.5.1Posición, rotaciones y composición

Describa las coordenadas del punto QQ en cada uno de los sistemas de referencia mostrados en la Figura Figure 18.

Posición de un punto respecto de diferentes sistemas de referencia.

Figure 18:Posición de un punto respecto de diferentes sistemas de referencia.

Las coordenadas de un punto PP en un sistema de referencia {A}\{A\} están dadas por rPA=[5,10,3]T \vec{r}_P^A = [5,10,3]^T . Si se sabe que un sistema de referencia {B}\{B\} se obtiene a partir de {A}\{A\} mediante una traslación en xx de 10 unidades y una traslación en zz de 5 unidades, calcule las coordenadas del punto PP en el sistema de referencia {B}\{B\}.

Demuestre que una rotación conserva la distancia entre dos puntos P1P_1 y P2P_2. Si RR es una matriz de rotación, compruebe que

∥rP1−rP2∥=∥RrP1−RrP2∥\left\lVert \vec{r}_{P_1}-\vec{r}_{P_2}\right\rVert = \left\lVert R\vec{r}_{P_1}-R\vec{r}_{P_2}\right\rVert

Demuestre que una rotación conserva la magnitud de un vector v\vec v, es decir, que ∥v∥=∥Rv∥\lVert\vec v\rVert=\lVert R\vec v\rVert, donde RR es una matriz de rotación.

Muestre que para una matriz de rotación se cumple la propiedad R−1=RTR^{-1} = R^T . Utilice la matriz de rotación alrededor de xx para comprobarlo. Suponga un ángulo θ\theta de rotación y proceda mediante un método convencional para el cálculo de la matriz inversa y compare con lo obtenido transponiendo la matriz de rotación.

Un vector v=[0,10,0]T\vec v=[0,10,0]^T se rota activamente 90∘90^\circ alrededor del eje fijo xx y después 180∘180^\circ alrededor del eje fijo yy. Determine sus componentes finales y represente gráficamente el vector inicial y el transformado. Indique explícitamente el orden de multiplicación de las matrices de rotación.

En la Figura Figure 19 se muestra un cuerpo rígido con forma de cubo y cuyas aristas miden 200 mm. Al sólido se le adhiere un sistema móvil {1} \{1\} que inicialmente coincide con el sistema fijo {0} \{0\} . Calcule lo siguiente:

  • Las coordenadas del punto QQ después de una rotación de 30° alrededor del eje x0x_0, seguida por una rotación de 225° alrededor del eje y1y_1.

  • Las coordenadas del punto QQ después de una rotación de 45° alrededor del eje y1y_1, seguida por una rotación de 60° alrededor del eje z0z_0.

  • Las coordenadas del punto QQ después de la rotación de 135° alrededor del eje z0z_0, seguida por una rotación de 90° alrededor del eje x1x_1 y posteriormente una rotación de 60° alrededor del eje x0x_0.

Cubo con sistemas de referencia para los ejercicios de rotación.

Figure 19:Cubo con sistemas de referencia para los ejercicios de rotación.

Suponga que tres sistemas de referencia {A}\{A\}, {B}\{B\} y {C}\{C\} están dados y que además:

RBA=[12−32000−132120]RCA=[01000−1−100]R_B^A = \left[\begin{matrix}\frac{1}{2} & - \frac{\sqrt{3}}{2} & 0\\0 & 0 & -1\\\frac{\sqrt{3}}{2} & \frac{1}{2} & 0\end{matrix}\right] \quad R_C^A = \left[\begin{matrix}0 & 1 & 0\\0 & 0 & -1\\-1 & 0 & 0\end{matrix}\right]

Calcule RBCR_B^C.

La siguiente matriz de rotación corresponde a una secuencia de rotaciones alrededor de un sistema móvil:

  • Un ángulo α\alpha alrededor del eje xx

  • Un ángulo β\beta alrededor del eje yy

  • Un ángulo γ\gamma alrededor del eje zz

Calcule α\alpha, β\beta y γ\gamma.

[0−222212−64−64322424]\displaystyle \left[\begin{matrix}0 & - \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\\frac{1}{2} & - \frac{\sqrt{6}}{4} & - \frac{\sqrt{6}}{4}\\\frac{\sqrt{3}}{2} & \frac{\sqrt{2}}{4} & \frac{\sqrt{2}}{4}\end{matrix}\right]

Se tienen cuatro sistemas de referencia {0}\{0\}, {1}\{1\}, {2}\{2\} y {3}\{3\}, de los cuales se conocen algunas relaciones de orientación dadas por las siguientes matrices de rotación:

R01=[22022220−22010] ; R31=[2224−6422−24640−32−12]R_0^1 = \begin{bmatrix} \frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2} \\[2pt] \frac{\sqrt{2}}{2} & 0 & -\frac{\sqrt{2}}{2} \\[2pt] 0 & 1 & 0 \end{bmatrix} \,;\, R_3^1 = \begin{bmatrix} \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{4} & -\frac{\sqrt{6}}{4} \\[2pt] \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{4} & \frac{\sqrt{6}}{4} \\[2pt] 0 & -\frac{\sqrt{3}}{2} & -\frac{1}{2} \end{bmatrix}
R20=[0−1000−1100]R_2^0 = \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{bmatrix}

Calcule las matrices R30R_3^0 y R12R_1^2.

El sistema de referencia {B} \{B\} se obtiene a partir del {A} \{A\} mediante una secuencia de rotaciones, a saber:

  • 45° alrededor del eje zz móvil

  • 30° alrededor del eje xx fijo

  • 135° alrededor del eje yy móvil

  • 60° alrededor del eje zz fijo

Calcule el conjunto de ángulos de Euler ZXZ que describe la orientación de {B} \{B\} con respecto de {A} \{A\} .

2.5.2Transformaciones homogéneas y similitud

Un sistema de referencia {B}\{B\} está trasladado 5 unidades en xx, 4 unidades en yy y -10 unidades en zz con respecto al sistema {A}\{A\}. Se sabe que las coordenadas de un punto PP descritas en el sistema {B}\{B\} son rPB=[2,3,−5]T\vec{r}_P^B = [2,3,-5]^T, calcule rPA\vec{r}_P^A.

Un sistema de referencia {1}\{1\} tiene una orientación de 90∘90^\circ alrededor del eje zz con respecto a {0}\{0\} y su origen está ubicado en ro10=[2,0,0]T\vec r_{o_1}^0=[2,0,0]^T. El punto PP y el vector libre v\vec v tienen las siguientes componentes en {1}\{1\}:

rP1=[1,0,0]T,v 1=[1,0,0]T\vec r_P^1=[1,0,0]^T,\qquad \vec v^{\,1}=[1,0,0]^T

Construya T10T_1^0, calcule rP0\vec r_P^0 y v 0\vec v^{\,0} empleando coordenadas homogéneas, y explique por qué la traslación afecta únicamente a uno de ellos.

Considere las transformaciones entre tres sistemas de referencia:

T10=[0−102100000100001],T21=[1000010300100001]T_1^0=\begin{bmatrix} 0&-1&0&2\\ 1&0&0&0\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}, \qquad T_2^1=\begin{bmatrix} 1&0&0&0\\ 0&1&0&3\\ 0&0&1&0\\ 0&0&0&1 \end{bmatrix}

Determine T20T_2^0 y su inversa T02T_0^2. Compruebe ambos resultados verificando que T20T02=I4T_2^0T_0^2=I_4 y describa geométricamente la posición y orientación del sistema {2}\{2\} respecto de {0}\{0\}.

El tensor de inercia de un cuerpo rígido, calculado respecto de su centro de masa y expresado en {1}\{1\}, es:

IG1=[200030005] kg m2I^1_G=\begin{bmatrix} 2&0&0\\ 0&3&0\\ 0&0&5 \end{bmatrix}\ \mathrm{kg\,m^2}

Si el sistema {1}\{1\} se encuentra rotado 90∘90^\circ alrededor del eje zz de {0}\{0\}, determine IG0I_G^0 mediante una transformación de similitud. Verifique que la traza y los valores propios permanecen invariantes. ¿Sería suficiente esta transformación si quisiéramos calcular la inercia respecto de otro punto? Explique.

2.5.3Parametrizaciones de la orientación

Calcule el conjunto de ángulos de Euler ZXZ que son equivalentes a la siguiente matriz de rotación.

R=[00−1−100010]R = \left[\begin{matrix}0 & 0 & -1\\-1 & 0 & 0\\0 & 1 & 0\end{matrix}\right]

Calcule el conjunto de ángulos de Euler ZXZ que son equivalentes a la siguiente matriz de rotación.

R=[−1434−32−34341232120]R = \displaystyle \left[\begin{matrix}- \frac{1}{4} & \frac{\sqrt{3}}{4} & - \frac{\sqrt{3}}{2}\\- \frac{\sqrt{3}}{4} & \frac{3}{4} & \frac{1}{2}\\\frac{\sqrt{3}}{2} & \frac{1}{2} & 0\end{matrix}\right]

Calcule el conjunto de ángulos de Euler ZXZ que son equivalentes a la siguiente matriz de rotación.

R=[−12−32032−120001]R = \displaystyle \left[\begin{matrix}- \frac{1}{2} & - \frac{\sqrt{3}}{2} & 0\\\frac{\sqrt{3}}{2} & - \frac{1}{2} & 0\\0 & 0 & 1\end{matrix}\right]

Calcule la matriz de rotación equivalente al conjunto de ángulos de Euler ZXZ (45°,60°,135°) \rbr{45°, 60°, 135°} .

Calcule la matriz de rotación equivalente al conjunto de ángulos de Euler ZYZ (90°,−90°,30°) \rbr{90°, -90°, 30°} .

Para la convención Roll-Pitch-Yaw ZYX utilizada en el capítulo, calcule la matriz de rotación correspondiente a (ϕ,θ,ψ)=(30∘,0∘,90∘)(\phi,\theta,\psi)=(30^\circ,0^\circ,90^\circ). Después, recupere los tres ángulos a partir de la matriz obtenida. Indique el orden de aplicación de las rotaciones si se interpretan respecto de ejes fijos.

Considere una orientación descrita por la matriz

R=[001010−100]R=\begin{bmatrix} 0&0&1\\ 0&1&0\\ -1&0&0 \end{bmatrix}

Identifique por qué la extracción de los ángulos RPY (ZYX) corresponde a una configuración singular. Obtenga un conjunto de ángulos válido adoptando ϕ=0∘\phi=0^\circ y explique por qué existen otros conjuntos equivalentes.

Considere el eje unitario u^=12[1,1,0]T\hat{\vec u}=\frac{1}{\sqrt 2}[1,1,0]^T y un ángulo de rotación de 180∘180^\circ. Utilice la fórmula de Rodrigues para calcular R(u^,180∘)R(\hat{\vec u},180^\circ). Verifique que RTR=I3R^TR=I_3 y det⁡(R)=1\det(R)=1, y determine cómo se transforma el vector v=[1,0,0]T\vec v=[1,0,0]^T. Explique por qué no debe emplearse directamente la fórmula general de recuperación del eje que divide entre 2sin⁡θ2\sin\theta.

Obtenga el cuaternión unitario (con componente escalar primero) asociado a una rotación de 90∘90^\circ alrededor del eje positivo zz. Compruebe que tiene norma unitaria y calcule su matriz de rotación equivalente. ¿Por qué el cuaternión obtenido y su negativo representan la misma orientación?