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

\( \renewcommand{\vec}[1]{\boldsymbol{\mathbf{#1}}} \newcommand{\framei}[1]{ \{#1\} } \newcommand{\colvec}[3]{\begin{bmatrix}#1\\#2\\#3\end{bmatrix}} \newcommand{\rowvec}[3]{\begin{bmatrix}#1&#2&#3\end{bmatrix}} \newcommand{\colvech}[4]{\begin{bmatrix}#1\\#2\\#3 \\ #4\end{bmatrix}} \newcommand{\rbr}[1]{ \left( #1 \right) } \newcommand{\sbr}[1]{ \left[ #1 \right] } \newcommand{\cbr}[1]{ \left\{ #1 \right\} } \newcommand{\abr}[1]{ \langle #1 \rangle } \)

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.1. Representació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 Fig. 2.1 se muestran dos puntos \(P\) y \(Q\), cuyas posiciones están dadas por:

\[ \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 \(xyz\) 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.

_images/rep_pos_01.svg

Fig. 2.1 Representación de la posición.#

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

\[ \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 Fig. 2.3 las posiciones descritas en ambos sistemas están relacionadas mediante:

(2.1)#\[ \vec{r}_P^{0} = \vec{r}_{o_1}^0 + \vec{r}_P^{1} \]

Donde \( \vec{r}_{o_1}^0 \) describe la posición del origen de coordenadas del sistema \(\framei{1}\) con respecto al sistema \(\framei{0}\). Se debe tener cuidado con la ecuación (2.1), 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.

_images/rep_pos_02.svg

Fig. 2.2 Representación de la posición.#

_images/rep_pos_03.svg

Fig. 2.3 Representación de la posición.#

2.2. Representación de la orientació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.1. Matrices de rotación#

En la Figura Fig. 2.4 se muestra un sistema \( \{1\} \) que ha sido obtenido a partir de \( \{0\} \) mediante una rotación \(\theta\) alrededor del eje \(z\). 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.

_images/rep_or_01.svg

Fig. 2.4 Un sistema \( \{1\} \) obtenido por rotación a partir de \( \{0\} \)#

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

\[ \vec{x}_1^0 = \colvec{\cos\theta}{\sin\theta}{} \qquad ; \qquad \vec{y}_1^0 = \colvec{-\sin\theta}{\cos\theta}{} \]

Si estos vectores se acomodan de tal manera que:

(2.2)#\[\begin{split} 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} \end{split}\]

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

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

\[ \vec{x}_1^0 = \colvec{ \vec{x}_1 \cdot \vec{x}_0 }{ \vec{x}_1 \cdot \vec{y}_0 }{} = \colvec{\cos\theta}{\cos(90°-\theta)}{} = \colvec{\cos\theta}{\sin\theta}{} \]
\[ \vec{y}_1^0 = \colvec{ \vec{y}_1 \cdot \vec{x}_0 }{ \vec{y}_1 \cdot \vec{y}_0 }{} = \colvec{\cos(90°+\theta)}{\cos\theta}{} = \colvec{-\sin\theta}{\cos\theta}{} \]

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 \(z_1\) permanece invariable, apuntando en la misma dirección que el eje \(z_0\), tal como se puede observar en la Figura Fig. 2.5. Así, es posible ampliar la matriz de la ecuación (2.2) considerando ahora las componentes en la dirección de \(z\), es decir:

\[\begin{split} 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} \end{split}\]
\[\begin{split} R_1^0 = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \end{split}\]
_images/basic_rot.svg

Fig. 2.5 Un sistema \( \{1\} \) obtenido por una rotación alrededor de \(z\) a partir de \( \{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 \(z\). Se puede proceder de una manera muy similar para obtener las matrices de rotación correspondientes a rotaciones alrededor de los ejes \(y\) y \(x\). 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:

\[\begin{split} R_{z,\theta} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \end{split}\]
\[\begin{split} R_{y,\theta} = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \\ \end{bmatrix} \end{split}\]
\[\begin{split} R_{x,\theta} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \\ \end{bmatrix} \end{split}\]

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

Solución

La matriz de rotación \(R_1^0\) se calcula sustituyendo \(\theta = 90°\) en la matriz de rotación básica para \(z\), es decir:

\[\begin{split} 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} \end{split}\]

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

\[\begin{split} 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} \end{split}\]
\[\begin{split} R_0^1 = \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \end{split}\]

Algo que podrá notar con facilidad es que la matriz \(R_0^1\) no es más que la transpuesta de la matriz \(R_1^0\). De hecho, \(R_0^1\) es la matriz inversa de \(R_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 Fig. 2.5, la matriz \(R_1^0\) nos describe cómo ha sido obtenido el sistema \(\{1\}\) a partir del sistema \(\{0\}\), es decir, mediante una rotación \(\theta\) positiva alrededor del eje \(z\). Ahora, pensemos en la relación inversa \(R_0^1\), ¿cómo ha sido obtenido el sistema \(\{0\}\) partir del \(\{1\}\)? La rotación seguiría siendo alrededor del eje \(z\) pero una cantidad \(\theta\) negativa. Podemos verificar que si tomamos la matriz de rotación básica \(R_{z,\theta}\) y sustituimos un ángulo \(-\theta\), obtendríamos la matriz \(R_0^1\) calculada previamente.

Este resultado lo podemos generalizar. Sean \(\{M\}\) y \(\{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:

\[ R_N^M = (R_M^N)^{-1} = (R_M^N)^{T} \]

2.2.1.1. Algunas propiedades de la 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. Sea \(R\) una matriz de rotación, entonces:

  • \( R^{-1} = R^T \)

  • \(det(R) = 1\)

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

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

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

\[\begin{split} 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} \end{split}\]

Solución:

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

\[ \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:

\[ \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:

\[ \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.


\[ \newcommand{\rbr}[1]{ \left( #1 \right) } \DeclareMathOperator{\sen}{sen} \]

Ejemplo. Para la matriz de rotación \(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 \( R_{x,\theta} \) está dada por:

\[\begin{split} R_{x,\theta} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sen\theta \\ 0 & \sen\theta & \cos\theta \\ \end{bmatrix} \end{split}\]

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

\[\begin{split} det\left(R_{x,\theta}\right) = \begin{vmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sen\theta \\ 0 & \sen\theta & \cos\theta \\ \end{vmatrix} = 1 \begin{vmatrix} \cos\theta & -\sen\theta \\ \sen\theta & \cos\theta \end{vmatrix} - 0 \begin{vmatrix} 0 & -\sen\theta \\ 0 & \cos\theta \end{vmatrix} + 0 \begin{vmatrix} 0 & \cos\theta \\ 0 & \sen\theta \end{vmatrix} = \end{split}\]
\[ det\left(R_{x,\theta}\right) = \cos^2 \theta + \sen^2 \theta = 1 \]

Calculamos ahora la magnitud de las columnas de la matriz:

\[ |\vec{c}_2| = \sqrt{0^2 + \rbr{\cos\theta}^2 + \rbr{\sen\theta}^2} = \sqrt{1} = 1 \]
\[ |\vec{c}_3| = \sqrt{0^2 + \rbr{-\sen\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.2. Transformaciones de rotación#

En la Figura Fig. 2.6 se observa un sólido rígido con forma de prisma rectangular, al cual se le ha adherido un sistema de referencia \( \{1\} \), además, \( \{1\} \) está rotado un ángulo \(\theta\) alrededor de \(z\) con respecto a un sistema base \( \{0\} \). Asumiendo que las dimensiones del prisma son \(a\), \(b\) y \(c\) en las direcciones de \(x_1\), \(y_1\) y \(z_1\), respectivamente, entonces las coordenadas del vertice \(P\) descritas en el sistema \( \{1\} \) están dadas por:

\[ \vec{r}_P^1 = \colvec{a}{b}{c} = a \vec{x}_1 + b \vec{y}_1 + c \vec{z}_1 \]
_images/trans_rot_3d.svg

Fig. 2.6 Transformaciones de rotación#

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

\[\begin{split} \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} \end{split}\]
\[\begin{split} \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} \end{split}\]

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

(2.3)#\[ \vec{r}_P^0 = R_1^0 \vec{r}_P^1 \]

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

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

_images/trans_rot_ex01.svg

Fig. 2.7 .#

Solución:

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

\[\begin{split} R_1^0 = R_{z,90°} = \begin{bmatrix}0 & -1 & 0 \\1 & 0 & 0 \\0 & 0 & 1 \end{bmatrix} \end{split}\]

Entonces:

\[\begin{split} \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} \end{split}\]

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

2.2.2. Transformaciones 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 \(A\) la matriz que representa una transformación lineal en el sistema \(\{0\}\), y sea \(B\) la representación matricial de la misma transformación lineal pero en el sistema \(\{1\}\), entonces \(A\) y \(B\) están relacionadas de la siguiente manera:

\[ A = R_1^0 B \rbr{R_1^0}^{-1} \]

Donde \(R_1^0\) es una matriz de transformación de coordenadas entre los sistemas \(\{1\}\) y \(\{0\}\). En particular, si \(B\) es una rotación, entonces también lo es \(A\) 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.3. Composición de las rotaciones#

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

_images/composition_of_rotations.svg

Fig. 2.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 \(P\):

(2.4)#\[ \vec{r}_P^0 = R_1^0 \vec{r}_P^1 \]
(2.5)#\[ \vec{r}_P^1 = R_2^1 \vec{r}_P^2 \]
(2.6)#\[ \vec{r}_P^0 = R_2^0 \vec{r}_P^2 \]

Si sustituimos la ecuación (2.5) en (2.4) resulta que:

(2.7)#\[ \vec{r}_P^0 = R_1^0 R_2^1 \vec{r}_P^2 \]

De las ecuaciones (2.6) y (2.7) es sencillo notar que necesariamente:

(2.8)#\[ R_2^0 = R_1^0 R_2^1 \]

La ecuación (2.8) 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 \(P\) en el sistema de referencia \(\framei{0}\) a partir de su representación en \(\framei{2}\), entonces primero podemos describirlo en el sistema \(\framei{1}\) utilizando la matriz \(R_2^1\) y luego transformarlo al sistema \(\framei{0}\) utilizando la matriz \(R_1^0\).

Note que la segunda rotación de la Figura Fig. 2.8 ha sido realizada con respecto a un sistema \(\{1\}\) previamente obtenido mediante otra rotación a partir de un sistema \(\{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 Fig. 2.9 se puede observar un sólido en forma cúbica al cual se le ha adherido un sistema de referencia \(\{1\}\) que se mueve junto con este. Inicialmente suponemos que el sistema \(\{1\}\) coincide con un sistema fijo \(\{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 \(R_1^0\) que describe la orientación del sistema \(\{1\}\) con respecto al sistema \(\{0\}\), después de haber efectuado ambas rotaciones está dada por:

\[\begin{split} R_1^0 = R_{z,90°} R_{x,90°} = \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} \end{split}\]

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

_images/current_frame_rotations.svg

Fig. 2.9 Composición de rotaciones#

Ahora, en la Figura Fig. 2.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\}\). Aquí, la descripción \(R_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:

\[\begin{split} R_1^0 = R_{x,90°} R_{z,90°} = \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{bmatrix} \end{split}\]
_images/fixed_frame_rotations.svg

Fig. 2.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\}\) se obtiene a partir de un sistema \(\{0\}\) mediante la siguiente secuencia de rotaciones con respecto al sistema móvil: una rotación de 45° con respecto al eje \(y\), seguida de una rotación alrededor del eje \(z\) de 60°. Determine \(R_1^0\).

Solución:

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

\[\begin{split} 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] \end{split}\]

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 \(\framei{0}\), \(\framei{1}\), \(\framei{2}\), \(\cdots\), \(\framei{n}\), que difieren únicamente por rotaciones, se puede verificar de forma muy simple que las siguientes expresiones son válidas:

\[\begin{split} \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} \end{split}\]

O bien:

\[ R_n^0 = R_1^0 R_2^1 R_3^2 \cdots R_{n}^{n-1} \]

Este ecuación muestra que la orientación de un sistema \(\framei{n}\) la podemos expresar en un sistema \(\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 tres sistemas de referencia \(\framei{0}\), \(\framei{1}\) y \(\framei{2}\), y se conocen las siguientes matrices de rotación:

\[\begin{split} 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} \end{split}\]

Calcule \(R_2^0\) y \(R_3^0\).

Solución:

La matriz \(R_2^0\) se puede obtener multiplicando \(R_1^0\) por \(R_2^1\), es decir:

\[\begin{split} 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} \end{split}\]
\[\begin{split} R_2^0 = \begin{bmatrix}0.5 & -0.866 & 0\\0 & 0 & -1.0\\0.866 & 0.5 & 0\end{bmatrix} \end{split}\]

Para \(R_3^0\) podemos multiplicar la \(R_2^0\) obtenida previamente por \(R_3^2\), es decir:

\[\begin{split} 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} \end{split}\]
\[\begin{split} R_3^0 = \begin{bmatrix}0.3536 & -0.866 & 0.3536\\0.7071 & 0 & -0.7071\\0.6124 & 0.5 & 0.6124\end{bmatrix} \end{split}\]

2.2.4. Ángulos de Euler#

\[ \newcommand{\atantwo}[2]{\text{arctan2} \left( #1,\, #2 \right) } \]

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 (2.9) y (2.10).

(2.9)#\[ \sum r_{ij}^2 = 1 \qquad; \qquad j \in \{1,2,3\} \]
(2.10)#\[ r_{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.

Un método común para especificar la orientación de un sistema de referencia móvil con respecto a uno fijo, en términos de tres cantidades independientes \((\phi, \theta, \psi)\) son los llamados ángulos de Euler, los cuales corresponden a una secuencia de tres rotaciones en un orden determinado con respecto a un sistema de referencia fijo o móvil. Podemos hacer distinción entre:

  • Secuencia de rotaciones intrínsecas (Ángulos de Euler clásicos – \(zxz\), \(zyz\), \(yzy\), \(yxy\), \(xyx\), \(xzx\))

  • Secuencia de rotaciones extrínsecas (Ángulos de Tait-Bryan - \(xyz\), \(yzx\), \(zxy\), \(xzy\), \(zyx\), \(yxz\))

Las rotaciones intrínsecas son aquellas realizadas con respecto al sistema móvil, y las extrínsecas aquellas realizadas con respecto al sistema fijo. Como se observa, existen varias secuencias de rotaciones que darían una representación conveniente de la orientación, pero aquí se revisarán algunos casos particulares y de uso común dentro de la robótica.

2.2.4.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 \(z\)

  • Una rotación de un ángulo \(\theta\) alrededor del eje \(x\)

  • Una rotación de un ángulo \(\psi\) alrededor del eje \(z\)

Lo cual conduce a:

\[\begin{split} 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} = \end{split}\]
(2.11)#\[\begin{split} 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} \end{split}\]

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 \(R\) se obtenga el conjunto de ángulos de Euler ZXZ equivalentes, de tal forma que:

(2.12)#\[ R = R_{ZXZ} \]

donde:

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

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

Caso I

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

(2.13)#\[ \theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right) \]
(2.14)#\[ \theta = \text{arctan2} \left(-\sqrt{1-r_{33}^2},r_{33}\right) \]

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

\[ \phi = \text{arctan2} \left( r_{13}, - r_{23} \right) \]
\[ \psi = \text{arctan2} \left( r_{31}, r_{32} \right) \]

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

\[ \phi = \text{arctan2} \left( -r_{13}, r_{23} \right) \]
\[ \psi = \text{arctan2} \left( -r_{31}, -r_{32} \right) \]

Caso II

Si \(r_{13} = r_{23} = 0\), dado que \(R\) es ortogonal implica que \(r_{33}=\pm 1\) y \(r_{31}=r_{32}=0\), entonces \(R\) tendrá la forma:

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

Si \(r_{33}=1\) entonces, \(\cos\theta=1\) y \(\sin\theta=0\), lo cual implica necesariamente que \(\theta = 0°\). De lo anterior se tiene:

\[\begin{split} 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} \end{split}\]
\[ \phi + \psi = \text{arctan2} \left( r_{21}, r_{11} \right) \]

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

\[ \phi = \text{arctan2} \left( r_{21}, r_{11} \right) \]

Caso III

De manera similar al caso anterior, si \(r_{33}=-1\) entonces, \(\cos\theta=-1\) y \(\sin\theta=0\), lo cual implica necesariamente que \(\theta = 180°\). De lo anterior se tiene:

\[\begin{split} 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} \end{split}\]
\[ \phi - \psi = \text{arctan2} \left( r_{21}, r_{11} \right) \]

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

\[ \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.

\[\begin{split} 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] \end{split}\]

Solución:

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

\[ \theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right) = \text{arctan2} \left( \sqrt{1 - 0^2}, 0 \right) = 90° \]
\[ \phi = \text{arctan2} \left( r_{13}, - r_{23} \right) = \text{arctan2} \left( 1, 0 \right) = 90° \]
\[ \psi = \text{arctan2} \left( r_{31}, r_{32} \right) = \text{arctan2} \left( -\frac{1}{2}, \frac{\sqrt{3}}{2} \right) = -30° \]

Por lo tanto:

\[ \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.

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

Solución:

Dado que \(r_{33} = 1\) podemos utilizar el conjunto de ecuaciones para el segundo caso, es decir:

\[ \phi = 0° \]
\[ \theta = 0° \]
\[ \psi = \atantwo{0.342}{0.9397} = 20° \]

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

\[ \rbr{\phi,\theta,\psi} = \rbr{0°, 0°, 20°} \]

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 \(z\) seguida de una rotación de 135° alrededor del eje \(y\).

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:

\[\begin{split} 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] \end{split}\]

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

\[ \theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right) = \atantwo{\sqrt{1 - \left(-\frac{\sqrt{2}}{2} \right)^2}}{-\frac{\sqrt{2}}{2}} = 135° \]
\[ \phi = \text{arctan2} \left( r_{13}, - r_{23} \right) = \atantwo{ \frac{ \sqrt{2} }{4} }{ -\frac{ \sqrt{6} }{4} } = 150° \]
\[ \psi = \text{arctan2} \left( r_{31}, r_{32} \right) = \atantwo{-\frac{\sqrt{2}}{2}}{0} = 270° \]
\[ \rbr{\phi,\theta,\psi} = \rbr{150°, 135°, 270°} \]

2.2.4.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 \(z\)

  • Una rotación de un ángulo \(\theta\) alrededor del eje \(y\)

  • Una rotación de un ángulo \(\psi\) alrededor del eje \(z\)

La secuencia de rotaciones anteriores nos conduce a la siguiente matriz de rotación equivalente:

\[\begin{split} 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} \end{split}\]
(2.15)#\[\begin{split} 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} \end{split}\]

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

(2.16)#\[ R = R_{zyz} \]

donde:

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

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

Caso I

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

(2.17)#\[ \theta = \text{arctan2} \left(\sqrt{1-r_{33}^2},r_{33}\right) \]
(2.18)#\[ \theta = \text{arctan2} \left(-\sqrt{1-r_{33}^2},r_{33}\right) \]

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

\[ \phi = \text{arctan2} \left( r_{23}, r_{13} \right) \]
\[ \psi = \text{arctan2} \left( r_{32}, -r_{31} \right) \]

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

\[ \phi = \text{arctan2} \left( - r_{23}, - r_{13} \right) \]
\[ \psi = \text{arctan2} \left( - r_{32}, r_{31} \right) \]

Caso II

Si \(r_{13} = r_{23} = 0\), dado que \(R\) es ortogonal implica que \(r_{33}=\pm 1\) y \(r_{31}=r_{32}=0\), entonces \(R\) tendrá la forma:

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

Si \(r_{33}=1\) entonces, \(\cos\theta=1\) y \(\sin\theta=0\), lo cual implica necesariamente que \(\theta = 0°\). De lo anterior se tiene:

\[\begin{split} 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} \end{split}\]
\[ \phi + \psi = \text{arctan2} \left( r_{21}, r_{11} \right) \]

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

\[ \phi = \text{arctan2} \left( r_{21}, r_{11} \right) \]

Caso III

De manera similar al caso anterior, si \(r_{33}=-1\) entonces, \(\cos\theta=-1\) y \(\sin\theta=0\), lo cual implica necesariamente que \(\theta = 180°\). De lo anterior se tiene:

\[\begin{split} 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} \end{split}\]
\[ \phi - \psi = \text{arctan2} \left( -r_{21}, -r_{11} \right) \]

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

\[ \phi = \text{arctan2} \left( -r_{21}, -r_{11} \right) \]

2.2.4.3. Ángulos Roll-Pitch-Yaw#

2.2.5. Representación eje-ángulo#

2.2.6. Cuaterniones#

2.3. Matrices de transformación homogénea#

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 Fig. 2.11 podemos observar un sistema de referencia móvil \(\framei{1}\) adherido a un sólido rígido y un sistema de referencia \(\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 \(P\) adherido al sólido rígido se puede describir en el sistema de referencia \(\framei{1}\) mediante el vector de posición \( \vec{r}_{P/o_1}^1 \) mostrado, además, la posición del origen del sistema de referencia \( \framei{1} \) se puede describir en \(\framei{0}\) mediante el vector \( \vec{r}_{o_1}^0 \), si quisiéramos determinar la posición de \(P\) en \(\framei{0}\) entonces podríamos hacerlo de la siguiente manera:

(2.19)#\[ \vec{r}_P^0 = R_1^0 \vec{r}_{P/o_1}^1 + \vec{r}_{o_1}^0 \]
_images/rigid_motion_01.svg

Fig. 2.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 \(\vec{r}_{P/o_1}^1\) en el sistema \(\{0\}\), lo cual se logra con la multiplicación correspondiente por la matriz de rotación: \(R_1^0 \vec{r}_{P/o_1}^1\), para poder sumarlo a \(\vec{r}_{o_1}^0 \). Aquí, \(R_1^0\) corresponde a la matriz de rotación que describe la orientación del sistema \(\framei{1}\) con respecto a \(\framei{0}.\)

La ecuación (2.19) 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:

\[\begin{split} H = \begin{bmatrix} R & \vec{r} \\ \vec{0} & 1 \\ \end{bmatrix} \end{split}\]

Donde \(R\) es una matriz de rotación de \(3 \times 3\), \(\vec{r}\) es un vector columna de tres elementos y \(\vec{0} = \sbr{0, 0, 0} \). Lo anterior implica que \(H\) es una matriz de \(4 \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 \(\vec{r}_P\):

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

Al agregarle la coordenada adicional quedaría como:

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

Un vector como \(\vec{\tilde{r}}_P\) se dice que está expresado en coordenadas homogéneas.

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

\[\begin{split} H_1^0 = \begin{bmatrix} R_1^0 & \vec{r}_{o_1}^0 \\ \vec{0} & 1 \\ \end{bmatrix} \end{split}\]

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

\[\begin{split} \colvec{ \vec{r}_P^0 }{1}{} = \begin{bmatrix} R_1^0 & \vec{r}_{o_1}^0 \\ \vec{0} & 1 \\ \end{bmatrix} \colvec{\vec{r}_{P/o_1}^1}{1}{} \end{split}\]
(2.20)#\[ \vec{ \tilde{r} }_P^0 = H_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 cuestiones de legibilidad y comodidad, en lo subsiguiente prescindiremos de ella y denotaremos a los vectores en coordenadas homogéneas de la misma forma que el resto, se asume que el lector podrá distinguir por el contexto si se está trabajando con un vector en coordenadas homogéneas. Además, por comodidad muchas veces se utilizará la notación \(\vec{r}_P^1\) para denotar a \(\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 (2.20) se escribirá usualmente como:

(2.21)#\[ \vec{ r }_P^0 = H_1^0 \vec{ r }_{P}^1 \]

2.3.1. Matrices de transformación 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.

Un conjunto de matrices de transformación homogénea que representan movimientos básicos de traslación y rotación alrededor de los ejes \(x\), \(y\), \(z\) está dado por:

\[\begin{split} D_{x,a} = \begin{bmatrix} 1 & 0 & 0 & a \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad;\quad D_{y,b} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & b \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \quad;\quad D_{z,c} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & c \\ 0 & 0 & 0 & 1 \end{bmatrix} \end{split}\]
\[\begin{split} R_{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 R_{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 R_{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} \end{split}\]

2.3.2. Composición de las matrices de transformación homogénea#

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

(2.22)#\[ \vec{r}_{P/o_1}^1 = R_2^1 \vec{r}_{P/o_2}^2 + \vec{r}_{o_2/o_1}^1 \]
_images/rigid_motion_02.svg

Fig. 2.12 Movimiento de sólido rígido#

De la Figura Fig. 2.12 podemos observar también que la descripción de las coordenadas de \(P\) en el sistema \( \framei{0} \) está dada por:

(2.23)#\[ \vec{r}_P^0 = R_1^0 \vec{r}_{P/o_1}^1 + \vec{r}_{o_1}^0 \]

Si sustituimos la ecuación (2.22) en la (2.23) se tiene que:

\[ \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 \]
(2.24)#\[ \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 \(P\) del sistema \(\framei{2}\) al sistema \(\framei{0}\). Esta ecuación se puede escribir también utilizando la forma matricial. De acuerdo con lo visto previamente sabemos que:

\[\begin{split} H_1^0 = \begin{bmatrix} R_1^0 & \vec{r}_{o_1}^0\\ \vec{0} & 1 \end{bmatrix} \end{split}\]
\[\begin{split} H_2^1 = \begin{bmatrix} R_2^1 & \vec{r}_{o_2/o_1}^1 \\ \vec{0} & 1 \end{bmatrix} \end{split}\]

Se puede verificar además que:

\[\begin{split} H_1^0 H_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} & 1 \end{bmatrix} \end{split}\]

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

\[\begin{split} \colvec{\vec{r}_P^0}{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} & 1 \end{bmatrix} \colvec{\vec{r}_{P/o_2}^2}{1}{} \end{split}\]

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

\[ H_2^0 = H_1^0 H_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\} \) se obtiene del sistema \( \{A\} \) mediante una traslación \(a\) en \(x\), seguida de una traslación \(b\) en \(y\), y finalmente una traslación \(c\) en \(z\), la matriz de transformación homogénea que representa dichas operaciones está dada por:

\[\begin{split} 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} \end{split}\]

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

Ejemplo. Calcule la matriz de transformación homogénea \( H_1^0 \).

_images/example_mth_trasl.svg

Fig. 2.13 .#

Solución:

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

\[\begin{split} H_1^0 = D_{x,3} \, D_{y,5} = \begin{bmatrix}1 & 0 & 0 & 3\\0 & 1 & 0 & 5\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \begin{bmatrix}1 & 0 & 0 & 3\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \end{split}\]
\[\begin{split} H_1^0 = \begin{bmatrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 5\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{bmatrix} \end{split}\]

Ejemplo. Calcule la matriz de transformación homogénea \( H_1^0 \).

_images/example_mth_rot.svg

Fig. 2.14 .#

Solución:

El esquema de la figura Fig. 2.14 muestra un sistema \(\{1\}\) obtenido de \(\{0\}\) mediante una rotación alrededor de \(z\) de 30°. La matriz de transformación homogénea que describe dicha transformación es la de rotación alrededor de \(z\), sustituyendo, claro está, el valor correspondiente del ángulo, de esa manera:

\[\begin{split} H_1^0 = R_{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} \end{split}\]

Ejemplo. Calcula la matriz de transformación homogénea \(H_1^0\).

_images/example_mth_rot_trasl.svg

Fig. 2.15 .#

Solución:

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

\[\begin{split} H_1^0 = D_{x,4} D_{y,4} R_{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 & 4\\0 & 1 & 0 & 0\\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} = \end{split}\]
\[\begin{split} \therefore H_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} \end{split}\]

Ejemplo. En la Figura Fig. 2.16 se observa una barra en rotación pura, la cual tiene adherido en su extremo un sistema móvil \(\{1\}\) y un sistema fijo \(\{0\}\) en su base. El sistema \(\{1\}\) está definido de tal manera que el eje \( 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 \(\framei{1}\) en \( \framei{0} \).

_images/example_barra_rot.svg

Fig. 2.16 .#

Solución:

Se observa que el sistema \(\{1\}\) se puede obtener de \( \{0\} \) mediante una serie de traslaciones y rotaciones. Por ejemplo, si las transformaciones se hacen respecto a un sistema móvil, entonces una secuencia posible sería la siguiente:

  • Traslación en \(x\) de \(L \cos\theta\)

  • Traslación en \(y\) de \(L \sin\theta\)

  • Rotación alrededor de \(z\) un ángulo \(\theta\)

Lo cual conduce a:

\[ H_1^0 = D_{x, L\cos\theta} \, D_{y, L\sin\theta} \, R_{z, \theta} = \]
\[\begin{split} = \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} = \end{split}\]
\[\begin{split} H_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} \end{split}\]

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 \(z\) un ángulo \(\theta\).

  • Traslación en \(x\) de \(L\).

Se tiene:

\[\begin{split} H_1^0 = R_{z,\theta} \, D_{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} = \end{split}\]
\[\begin{split} H_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} \end{split}\]

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 Fig. 2.17 se observa una placa plana rectangular de las dimensiones indicadas, en cuyas esquinas se colocan algunos sistemas de referencia. Calcule \(H_1^0\), \( H_2^1 \), \( H_2^0 \) y \( H_3^2 \).

_images/example_mth_mult_sist.svg

Fig. 2.17 Una placa plana con múltiples sistemas de referencia#

Solución:

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

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

\[\begin{split} H_1^0 = D_{x,300} D_{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} \end{split}\]

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

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

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

\[\begin{split} H_2^1 = D_{x, -300} \, R_{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} \end{split}\]

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

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

Como se observa en la figura Fig. 2.17 el sistema \(\{2\}\) puede obtenerse de \(\{0\}\) mediante una traslación de 160 mm en la dirección de \(y\), y una posterior rotación de 90° alrededor de \(z\).

\[\begin{split} H_2^0 = D_{y,160} \, R_{z,90} = \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} \end{split}\]

La matriz \( H_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 \( H_1^0 \) y \( H_2^1 \), así:

\[\begin{split} H_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} \end{split}\]

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

De la figura Fig. 2.17 se puede identificar que \(\{3\}\) se puede obtener de \(\{2\}\) mediante una rotación horaria de un ángulo \(\alpha\) en la dirección de \(z\), seguida de una traslación de \( d_r \) en la dirección negativa de \(y\), siendo \( d_r \) la longitud de la diagonal del rectángulo, entonces se tiene:

\[ \alpha = \arctan\left(\frac{160}{300}\right) = 28.07° \qquad ; \qquad d_r = \sqrt{160^2 + 300^2} = 340 \text{ mm} \]
\[\begin{split} H_3^2 = R_{z,-\alpha} \, D_{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} \end{split}\]
\[\begin{split} H_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} \end{split}\]

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.4. Problemas#

Describe las coordenadas del punto \(Q\) en cada uno de los sistemas de referencia mostrados en la Figura Fig. 2.18.

_images/rep_pos_011.svg

Fig. 2.18 .#


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


Muestre que la distancia entre dos puntos no cambia con la rotación, es decir, que \(\lVert \vec{p_1} - \vec{p_2} \rVert = \lVert R\vec{p_1} - R\vec{p_2} \rVert\). Donde \(R\) es una matriz de rotación y \(\vec{p}_1\) y \( \vec{p}_2 \) dos vectores de posición.


Muestre que la rotación efectuada a un vector no altera su magnitud, es decir que \(\lVert \vec{p} \rVert = \lVert R\vec{p} \rVert \), donde \(R\) es una matriz de rotación.


Muestre que para una matriz de rotación se cumple la propiedad \(R^{-1} = R^T \). Utilice la matriz de rotación alrededor de \(x\) 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 \( \vec{P} = [0,10,0]^T \) se rota alrededor del eje \(x\) un ángulo de 90° y enseguida se rota alrededor del eje \(y\) un ángulo de 180°, determine las componentes del vector transformado. Esquematice el vector inicial y el transformado.


En la Figura Fig. 2.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\} \) que inicialmente coincide con el sistema fijo \( \{0\} \) . Calcule lo siguiente:

  • Las coordenadas del punto \(Q\) después de una rotación de 30° alrededor del eje \(x_0\), seguida por una rotación de 225° alrededor del eje \(y_1\).

  • Las coordenadas del punto \(Q\) después de una rotación de 45° alrededor del eje \(y_1\), seguida por una rotación de 60° alrededor del eje \(z_0\).

  • Las coordenadas del punto \(Q\) después de la rotación de 135° alrededor del eje \(z_0\), seguida por una rotación de 90° alrededor del eje \(x_1\) y posteriormente una rotación de 60° alrededor del eje \(x_0\).

_images/cube_rot.svg

Fig. 2.19 .#


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

\[\begin{split} 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] \end{split}\]

Calcule \(R_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 \(x\)

  • Un ángulo \(\beta\) alrededor del eje \(y\)

  • Un ángulo \(\gamma\) alrededor del eje \(z\)

Calcule \(\alpha\), \(\beta\) y \(\gamma\).

\[\begin{split} \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] \end{split}\]

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

\[\begin{split} 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} \end{split}\]
\[\begin{split} R_2^0 = \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & -1 \\ 1 & 0 & 0 \end{bmatrix} \end{split}\]

Calcule las matrices \(R_3^0\) y \(R_1^2\).


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

  • 45° alrededor del eje \(z\) móvil

  • 30° alrededor del eje \(x\) fijo

  • 135° alrededor del eje \(y\) móvil

  • 60° alrededor del eje \(z\) fijo

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


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

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

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

\[\begin{split} 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] \end{split}\]

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

\[\begin{split} 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] \end{split}\]

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


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


Un sistema de referencia \(\{B\}\) está trasladado 5 unidades en \(x\), 4 unidades en \(y\) y -10 unidades en \(z\) con respecto al sistema \(\{A\}\). Se sabe que las coordenadas de un punto \(P\) descritas en el sistema \(\{B\}\) son \(\vec{P}^B = [2,3,-5]^T\), calcule \(\vec{P}^A\).