3  Parametrizaciones de la Orientación

Una matriz de rotación es de tamaño 3×3 y, por tanto, posee nueve elementos. Sin embargo, como se vio en la Sección 2.3.4, de dichos nueve elementos solamente tres son independientes, y los otros seis son mutuamente dependientes. Por este motivo, se considera que una matriz de rotación es una representación redundante de la orientación. Debido a que en el espacio tridimensional un cuerpo rígido posee tres grados de libertad para la orientación, se esperaría que se pudiese contar con solo tres elementos para la representación de la orientación y no con los nueve que posee una matriz de rotación. A la representación de la orientación utilizando menos de nueve parámetros se le denomina una parametrización de la rotación o de la orientación, o de manera más formal, una parametrización del espacio generado por SO(3).

La representación de la orientación, a diferencia de la representación de la posición, no es un problema simple. Uno de los motivos es que, a pesar de que SO(3) es un espacio tridimensional, tiene la topología de un espacio proyectivo P3, el cual no puede ser mapeado suavemente a R3. Esto significa que si se utiliza solamente tres parámetros para su representación existirá algunos problemas en algunos puntos, los cuales son denominados puntos singulares. A estos problemas se denomina singularidades de la representación, ya que varían según la representación que se utilice. Así, existe un compromiso entre la cantidad de parámetros que se utiliza para representar la orientación, y los problemas que puede tener la representación en algunos puntos. Además, dado que las rotaciones no son conmutativas, no se puede utilizar vectores en el sentido convencional para representarlas, ya que no constituyen espacios vectoriales.

Las representaciones que utilizan solamente tres parámetros independientes para la orientación son denominadas representaciones mínimas, como se mencionó en la Sección 1.4.3. En general, una representación mínima del grupo ortogonal especial SO(m) requiere m(m1)2 parámetros, de donde se deduce que se requiere tres parámetros para parameterizar SO(3), mientras que solo uno para parametrizar las rotaciones en el plano SO(2). El problema de las representaciones mínimas es que poseen singularidades. Para evitar este problema se puede utilizar representaciones con más parámetros. Este capítulo detalla las parametrizaciones de la orientación más utilizadas en robótica.

3.1 Ángulos de Euler

Una matriz de rotación genérica puede ser obtenida realizando la composición de tres rotaciones elementales, donde cada una de las rotaciones implica el giro de un ángulo ϕi alrededor de un eje canónico. Se debe considerar que dos rotaciones sucesivas no pueden ser realizadas sobre ejes paralelos, ya que en dicho caso podrían ser representadas por una sola rotación. A los tres ángulos correspondientes a cada una de estas tres matrices de rotación elementales se les denomina comúnmente ángulos de Euler. De esta manera, una representación mínima de la orientación puede ser obtenida usando un conjunto de tres parámetros ϕ=(ϕ1,ϕ2,ϕ3) denominados ángulos de Euler, donde cada parámetro es un ángulo asociado con una matriz de rotación elemental. Debido a esta asociación, los ángulos de Euler no son únicos, ya que dependerán del eje con respecto al cual se realicen las rotaciones elementales. Por convención, cada conjunto de ángulos de Euler se denomina utilizando las letras correspondientes a los ejes canónicos, y asumiendo que las rotaciones se realizan con respecto al sistema actual, a lo que a veces se conoce como rotación intrínseca. En otras palabras, los ángulos de Euler representan rotaciones elementales respecto a los ejes de los sistemas de referencia locales (existe otra convención donde se realiza rotaciones con respecto al sistema fijo, llamada rotación extrínseca, pero no es usual en robótica). Por ejemplo, en los ángulos de Euler YZX, el primer parámetro representa el ángulo de giro alrededor de y, el segundo parámetro el ángulo alrededor del eje z actual, y el tercer parámetro el ángulo de rotación alrededor del eje x actual.

Considerando que cada una de las tres rotaciones elementales puede ser realizada alrededor de uno de los tres ejes canónicos (x, y, z), existen 27 posibles combinaciones de rotaciones. Sin embargo, de todas estas combinaciones se descarta aquellas que tienen dos o más rotaciones consecutivas alrededor de un mismo eje, quedando solo 12 posibles combinaciones, las cuales se dividen usualmente en dos tipos.

  • Ángulos de Euler propios o clásicos. Utilizan el mismo eje para la primera y para la tercera rotación: XZX, XYX, YXY, YZY, ZYZ, ZXZ.
  • Ángulos de Tait-Bryan. Utilizan diferentes ejes para cada una de las rotaciones, y son: XYZ, XZY, YXZ, YZX, ZXY, ZYX.

Las combinaciones más utilizadas son los ángulos ZYZ, ZYX (llamado ángulos de Fick), YZX (ángulos de Helmholtz) y ZXZ.

Desde un punto de vista matemático, los ángulos de Euler son un ejemplo de una parameterización local de SO(3), que además es mínima ya que solo posee tres parámetros. Es, además, un resultado topológico fundamental que las singularidades nunca pueden ser eliminadas en cualquier representación tridimensional de SO(3), ya que no existen soluciones globales o suaves al problema inverso de determinar los ángulos de Euler a partir de una rotación. Por este motivo, la representación de la orientación mediante ángulos de Euler siempre tendrá singularidades, pero los puntos donde surgen las singularidades dependerán del conjunto particular de ángulos que se esté utilizando.

A continuación se analizará con cierto detalle un conjunto específico de ángulos de Euler (los ángulos ZYZ). El mismo procedimiento de análisis puede ser extendido a todos los demás conjuntos de ángulos, pero las expresiones obtenidas serán evidentemente diferentes.

3.1.1 Ángulos de Euler ZYZ

El conjunto de ángulos de Euler ZYZ contiene tres parámetros (ϕ1,ϕ2,ϕ3) que representan la rotación alrededor del eje z, seguida de la rotación alrededor del eje actual y, seguida de la rotación alrededor del eje actual z. De manera más detallada, estos ángulos representan las siguientes rotaciones.

Figura 3.1: Secuencia de rotaciones para los ángulos de Euler ZYZ.

  • Partiendo de un sistema de referencia, se realiza una rotación de un ángulo ϕ1 alrededor del eje z, la cual se describe mediante la matriz Rz(ϕ1). Esta rotación se esquematiza en la Figura 3.1 (izquierda).

  • El sistema resultante de la rotación anterior es rotado un ángulo ϕ2 alrededor del eje y actual (eje rotado), denominado y. Esta rotación se describe utilizando la matriz Ry(ϕ2) y se esquematiza en la Figura 3.1 (centro).

  • El sistema resultante de la rotación anterior es rotado un ángulo ϕ3 alrededor del eje z actual (rotado), denominado z. Esta rotación se describe por la matriz Rz(ϕ3) y se esquematiza en la Figura 3.1 (derecha).

La orientación del sistema resultante se obtiene a partir de la composición de rotaciones y, debido a que cada rotación se especifica con respecto al sistema actual, es necesario realizar post-multiplicaciones sucesivas de las matrices de rotación elementales: R(ϕ)=Rz(ϕ1)Ry(ϕ2)Rz(ϕ3). Desarrollando estos productos matriciales elemento a elemento se obtiene que la matriz de rotación equivalente es (3.1)R(ϕ)=[cϕ1cϕ2cϕ3sϕ1sϕ3sϕ1cϕ3cϕ1cϕ2sϕ3cϕ1sϕ2sϕ1cϕ2cϕ3+cϕ1sϕ3cϕ1cϕ3sϕ1cϕ2sϕ3sϕ1sϕ2sϕ2cϕ3sϕ2sϕ3cϕ2], donde por conveniencia cϕ=cos(ϕ), y sϕ=sen(ϕ). Así, dados los ángulos de Euler ZYZ (ϕ1,ϕ2,ϕ3) se puede obtener la matriz de rotación que describe la misma rotación utilizando Ecuación 3.1.

Problema inverso

El problema inverso consiste en determinar el conjunto de ángulos de Euler dada una matriz de rotación genérica R=[r11r12r13r21r22r23r31r32r33] que es puramente numérica. Para resolver este problema se compara esta expresión numérica de R con la expresión algebraica dada en Ecuación 3.1, con el fin de despejar los elementos que contienen a los ángulos deseados. Para preservar el cuadrante de los ángulos se prefiere siempre el uso de la función atan2 (descrita en el Apéndice A.3.1), que es una tangente inversa que considera el cuadrante. En la medida de lo posible se intenta evitar el uso del coseno inverso o del seno inverso, a menos que quede claro los límites que tiene el ángulo que se está utilizando.

Comparando R con Ecuación 3.1 se puede observar que r132+r232=sen2ϕ2, de donde se puede despejar el valor de senϕ2, obteniéndose dos posibles valores según el signo de la raíz cuadrada. Usando este seno, y la equivalencia r33=cosϕ2, el ángulo ϕ2 se obtiene como (3.2)ϕ2=atan2(±r132+r232,r33). Existen dos posibles soluciones para ϕ2 dependiendo de si se toma la raiz cuadrada con signo positivo o negativo. La elección del signo positivo para el término conteniendo la raíz cuadrada limita el rango de posibles valores de ϕ2 a (0,π), ya que el seno (primer argumento de atan2) es positivo en los cuadrantes I y II, y la elección del signo negativo limita ϕ2 a valores de π a 0, ya que el seno es negativo en los cuadrantes III y IV. Una vez calculado ϕ2, asumiendo que senϕ20, se puede usar el hecho que r23/senϕ2=senϕ1 y r13/senϕ2=cosϕ1 para calcular ϕ1 como (3.3)ϕ1=atan2(r23senϕ2,r13senϕ2). De igual manera, siempre que senϕ20, se obtiene el ángulo ϕ3, con las observaciones que r32/senϕ2=senϕ3 y r31/senϕ2=cosϕ3, llegando a: (3.4)ϕ3=atan2(r32senϕ2,r31senϕ2). Notar que dado que existen dos posibles soluciones para ϕ2, en general existirán dos conjuntos solución para ϕ1 y ϕ3 dependiendo del valor de ϕ2 que se haya escogido.

Singularidades de la Representación

Para el cálculo de ϕ1 y ϕ3 se realizó la suposición que senϕ20, lo cual lleva a excluir valores de ϕ2 donde ϕ2=kπ, con kZ. Cuando ϕ2=kπ, no es posible encontrar un conjunto solución para los ángulos de Euler ZYZ, ya que ϕ1 y ϕ3 se encuentran mal definidos en dichos valores debido a una división entre cero. Por este motivo, se dice que la representación de Euler ZYZ presenta singularidades de representación en ϕ2=kπ. Esto es una consecuencia de que toda representación mínima no cubre por completo todo el espacio SO(3) y presenta singularidades de representación.

Debido a que no es posible reemplazar el valor de ϕ2=kπ (la singularidad) en Ecuación 3.3 ni en Ecuación 3.4, pues senϕ2=0, es necesario obtener la matriz de rotación equivalente considerando estos valores específicos de ϕ2. Cuando k es par, la matriz de rotación es Rz(ϕ1)Ry(0)Rz(ϕ3), con senϕ2=0 y cosϕ2=1, y la matriz en Ecuación 3.1 se convierte en R(ϕ)=[cϕ1cϕ3sϕ1sϕ3sϕ1cϕ3cϕ1sϕ30sϕ1cϕ3+cϕ1sϕ3cϕ1cϕ3sϕ1sϕ30001]=[cϕ1+ϕ3sϕ1+ϕ30sϕ1+ϕ3cϕ1+ϕ30001], donde cϕ1+ϕ3=cos(ϕ1+ϕ3) y sϕ1+ϕ3=sen(ϕ1+ϕ3). En este caso la rotación se reduce a una rotación alrededor de z y solo es posible obtener la suma ϕ1+ϕ3, mas no cada ángulo por separado. Esto se debe a que la secuencia de rotaciones se realiza alrededor de z luego y, luego z, y si el ángulo alrededor de y es nulo, se tiene dos rotaciones consecutivas alrededor del mismo eje z, no pudiéndose distinguir entre la primera y la tercera rotación aplicadas. Por otro lado, cuando k es impar la matriz de rotación equivalente es Rz(ϕ1)Ry(π)Rz(ϕ3), con senϕ2=0 y cosϕ2=1. Así, la matriz Ecuación 3.1 se convierte en R(ϕ)=[cϕ1cϕ3sϕ1sϕ3sϕ1cϕ3+cϕ1sϕ30sϕ1cϕ3+cϕ1sϕ3cϕ1cϕ3+sϕ1sϕ30001]=[cϕ3ϕ1sϕ3ϕ10sϕ3ϕ1cϕ3ϕ10001], donde cϕ3ϕ1=cos(ϕ3ϕ1) y sϕ3ϕ1=sen(ϕ3ϕ1). En este caso solo se puede obtener la diferencia de los ángulos ϕ3ϕ1 pero no se puede recuperar el valor de cada ángulo ϕ1, ϕ3 por separado. Este resultado también es fácilmente interpretable ya que el giro de 180 alrededor del eje y hace que la tercera rotación se realice alrededor del eje z inicial pero con dirección opuesta (y de allí el signo negativo).

Una observación adicional de los ángulos de Euler ZYZ es que, si se tiene los ángulos ϕ1=α, ϕ2=0, ϕ3=α, con αR, la matriz de rotación resultante en Ecuación 3.1 es R(α,0,α)=I. Esto muestra que existen infinitas representaciones de la identidad de rotación (cualquier valor de α anterior) cuando se utiliza la parameterización ZYZ de los ángulos de Euler.

3.1.2 Otros ángulos de Euler

Como se mencionó anteriormente, existen en total 12 posibles ángulos de Euler, siendo el caso anterior una de estas posibilidades. El análisis de los otros ángulos de Euler es similar al desarrollado para los ángulos ZYZ: se calcula la matriz de rotación equivalente a los tres ángulos (similar a Ecuación 3.1 pero usando la definición específica de ejes asociada a los ángulos utilizados), y se resuelve el problema inverso haciendo uso, en la medida de lo posible, de la función atan2 para encontrar cada ángulo. Se debe tener especial cuidado al sacar las raíces cuadradas ya que suelen llevar a dos posibles soluciones. De igual manera, el análisis de singularidades se realiza considerando aquellos valores que producen resultados indefinidos. Es importante notar que los valores en los cuales se producen las singularidades son, en general, diferentes para diferentes ángulos de Euler. Por ejemplo, a diferencia de los ángulos ZYZ, tanto los ángulos de Euler ZYX como los ángulos YZX no poseen singularidades en la identidad.

Ejemplo 3.1 (Matriz de rotación a partir de ángulos de Euler) Encontrar la matriz de rotación equivalente a las siguientes tuplas que representan ángulos de Euler ZYZ: a) (30, 50, 90), b) (-150, -50, -90)

Solución:

En ambos casos se debe aplicar la definición de los ángulos de Euler ZYZ. Se puede reemplazar los ángulos en las matrices canónicas que definen la secuencia de rotaciones (en z, en y, en z), o se puede utilizar reemplazar directamente en Ecuación 3.1 si se tiene la expresión ingresada, por ejemplo, en algún paquete computacional.

  1. Reemplazando los ángulos dados en la secuencia de rotaciones ZYZ, y operando los productos, se tiene R=Rz(30)Ry(50)Rz(90)=[0.50.5570.6630.8660.3210.38300.7660.643].

  2. Al igual que en a), reemplazando los ángulos dados se tiene R=Rz(150)Ry(50)Rz(90)=[0.50.5570.6630.8660.3210.38300.7660.643].

Ejemplo 3.2 (Ángulos de Euler a partir de la matriz de rotación) Encontrar los ángulos de Euler ZYZ que representan la misma rotación dada por la siguiente matriz de rotación

R=[0.50.5570.6630.8660.3210.38300.7660.643].

Solución:

Para encontrar los ángulos de Euler ZYZ se deben aplicar directamente las expresiones dadas en Ecuación 3.3, Ecuación 3.2, Ecuación 3.4. El ángulo ϕ2 alrededor del eje y estará dado por Ecuación 3.2 y es: ϕ2=atan2(±0.6632+0.3832,0.643)=atan2(±0.766,0.643)±50. Como en cualquier conjunto de ángulos de Euler, existen dos posibles soluciones. Al utilizar ϕ2=50, se tiene sen(50)=0.766, y reemplazando en Ecuación 3.3 y Ecuación 3.4 se tiene los siguientes ángulos alrededor del eje z: ϕ1=atan2(0.3830.766,0.6630.766)30,ϕ3=atan2(0.7660.766,00.766)=90. Entonces el primer conjunto de ángulos de Euler es (30,50,90). La segunda solución se obtiene de manera equivalente, utilizando ϕ2=50 y sen(50)=0.766. Reemplazando en Ecuación 3.3 y Ecuación 3.4 se llega a: ϕ1=atan2(0.3830.766,0.6630.766)150,ϕ3=atan2(0.7660.766,00.766)=90. Así, el segundo conjunto de ángulos de Euler es (150,50,90). Dado que en el enunciado no se está restringiendo los ángulos a ningún intervalo, ambos conjuntos solución son válidos. Si, por ejemplo, se restringiese los ángulos al intervalo [0,180], entonces solamente el primer conjunto sería válido. Notar, además, que este ejemplo es el inverso del ejemplo Ejemplo 3.1.

3.2 Ángulos Roll, Pitch, Yaw (angulos de Euler ZYX)

Estos ángulos, llamados también ángulos náuticos o ángulos de Cardán, se originan a partir de la representación de la orientación en el campo aeronáutico, e históricamente describen los cambios típicos de altitud de una aeronave representados mediante rotaciones definidas con respecto a ejes fijos que se encuentran en el centro de masa de la aeronave. En español se les denomina ángulos de alabeo, cabeceo y guiñada, pero debido a que los términos en inglés roll, pitch, yaw son bastante utilizados en robótica, en este libro se hará uso de ellos. Por claridad de notación, este conjunto de ángulos será representado como ϕ=(ϕr,ϕp,ϕy) donde ϕr es el ángulo de roll, ϕp el ángulo de pitch, y ϕy el ángulo de yaw. Al igual que con los ángulos de Euler, estos ángulos se encuentran ligados cada uno a una matriz de rotación, y los tres ángulos forman una composición de tres matrices de rotación, pero en este caso las rotaciones se realizan siempre con respecto al sistema de referencia fijo, como se esquematiza en la Figura 3.2. La definición concreta de estos ángulos es la siguiente.

Figura 3.2: Secuencia de rotaciones para los ángulos roll, pitch, yaw.

  • Dado un sistema de referencia inercial, primero se rota este sistema un ángulo ϕy (yaw) alrededor del eje x. Esta rotación se describe por la matriz Rx(ϕy).

  • Luego se rota el sistema resultante un ángulo ϕp (pitch) alrededor del eje y fijo. Esta rotación se describe por la matriz Ry(ϕp).

  • Finalmente, se rota el sistema resultante un ángulo ϕr (roll) alrededor del eje z. Esta rotación se describe por la matriz Rz(ϕr).

La matriz de rotación equivalente se puede obtener mediante la composición de las rotaciones anteriores. Debido a que todas las rotaciones sucesivas se aplican con respecto al sistema fijo, es necesario realizar pre-multiplicaciones (multiplicaciones por la izquierda) en cada caso. De esta manera se obtiene que la rotación equivalente a los ángulos de roll, pitch, yaw es R(ϕ)=Rz(ϕr)Ry(ϕp)Rx(ϕy). De manera equivalente, el orden de la multiplicación puede también ser interpretado en sentido inverso: primero aplicar una rotación alrededor del eje z, luego una rotación alrededor del eje actual y y finalmente una rotación alrededor del eje actual x. Con esta interpretación, los ángulos de roll, pitch, yaw son exactamente equivalentes a los ángulos de Euler ZYX. Desarrollando término a término el producto de la composición de las rotaciones anteriores se llega a (3.5)R(ϕ)=[cϕrcϕpcϕrsϕpsϕysϕrcϕycϕrsϕpcϕy+sϕrsϕysϕrcϕpsϕrsϕpsϕy+cϕrcϕysϕrsϕpcϕycϕrsϕysϕpcϕpsϕycϕpcϕy].

Utilizando Ecuación 3.5 se obtiene la matriz de rotación equivalente dados un conjunto de ángulos roll, pitch, yaw.

Orden de las rotaciones

Es importante tener en cuenta que el orden descrito para las rotaciones es el orden clásico, y se adecúa a la descripción de la orientación del efector final de un manipulador. Sin embargo, no es la única definición existente: en algunos casos se definen las rotaciones intercambiando el eje z con el eje x, como si se tratase de ángulos de Euler XYZ. Esto es usual en robots móviles donde el eje x se define hacia adelante del robot y el eje z apunta hacia arriba, de tal modo que el ángulo roll es el giro alrededor del eje x y el ángulo yaw es el giro alrededor del eje z. En otros casos, inclusive, se realiza la misma definición anterior (Euler ZYX), pero se intercambia de nombre a los ángulos roll con yaw. En general, en robótica no existe un consenso sobre qué estándar tomar al referirse a ángulos roll, pitch, yaw, así que se debe tener especial cuidado con tener el orden de rotaciones y los nombres de los ángulos claros cuando se trabaje con esta parametrización, ya que de otro modo se obtendrá resultados erróneos a pesar de tener cálculos aparentemente correctos. A lo largo de este libro, a menos que se mencione lo contrario, se utilizará la definición dada en esta sección para este conjunto de ángulos.

Problema inverso

Al igual que para los ángulos de Euler ZYZ, el problema inverso consiste en determinar los ángulos roll, pitch, yaw dada una matriz numérica que representa una rotación genérica R=[r11r12r13r21r22r23r31r32r33]. La solución a este problema se basa en comparar esta matriz R numérica con la expresión algebraica dada en Ecuación 3.5. Realizando esta comparación se puede observar que r322+r332=cos2ϕp, y que r31=senϕp. Tomando la raiz cuadrada de cos2ϕp y usando senϕp se puede generar la tangente de ϕp, que se despeja como (3.6)ϕp=atan2(r31,±r322+r332), donde se tiene dos posibles signos para la raíz cuadrada, y por tanto dos posibles soluciones. Cuando se desea que ϕp esté en el rango (π2,π2) se utiliza el valor positivo, ya que en este caso el coseno (segundo argumento de atan2) es positivo en los cuadrantes IV y I, y cuando se desea que esté en el rango (π2,3π2) se usa el valor negativo, ya que el coseno es negativo en los cuadrantes II y III. Notar que, al igual que con cualquier conjunto de ángulos de Euler, existen en general dos soluciones. El ángulo ϕr, suponiendo cosϕp0, se obtiene como (3.7)ϕr=atan2(r21cosϕp,r11cosϕp) y finalmente el ángulo ϕy como (3.8)ϕy=atan2(r32cosϕp,r33cosϕp). Dependiendo del signo que se haya escogido para la raíz cuadrada en Ecuación 3.6, se tendrá dos pares de soluciones exactamente equivalentes. El hecho de escoger una u otra solución depende del rango en el cual se desea que esté ϕp.

Singularidades de la Representación

Para estos ángulos la singularidad de la representación se obtiene cuando cosϕp=0, ya que en dicho caso los ángulos ϕr,ϕy dados en Ecuación 3.7 y Ecuación 3.8 no se encuentran bien definidos. Esta singularidad se presenta cuando ϕp=kπ2, con kZ sin incluir el cero. Cuando ϕp=π2, se tiene la matriz de rotación R(ϕ)=Rz(ϕr)Ry(π2)Rx(ϕy), con cosϕp=0 y senϕp=1. En este caso, Ecuación 3.5 se convierte en R(ϕ)=[0cϕrsϕysϕrcϕycϕrcϕy+sϕrsϕy0sϕrsϕy+cϕrcϕysϕrcϕycϕrsϕy100]=[0sϕrϕycϕrϕy0cϕrϕysϕrϕy100], donde cϕrϕy=cos(ϕrϕy) y sϕrϕy=sen(ϕrϕy). Como se observa, solo es posible determinar la diferencia de los ángulos ϕrϕy, pero no el valor de cada ángulo por separado. Por otro lado, cuando ϕ2=π2, se tiene la rotación Rz(ϕr)Ry(π2)Rx(ϕy), con cosϕp=0, senϕp=1, y R(ϕ)=[0cϕrsϕysϕrcϕycϕrcϕy+sϕrsϕy0sϕrsϕy+cϕrcϕysϕrcϕycϕrsϕy100]=[0sϕr+ϕycϕr+ϕy0cϕr+ϕysϕr+ϕy100], donde cϕr+ϕy=cos(ϕr+ϕy) y sϕr+ϕy=sen(ϕr+ϕy). En este caso solo es posible determinar la suma de los ángulos ϕr+ϕy, pero no es posible encontrar cada ángulo por separado.

Ejemplo 3.3 (Ángulos roll, pitch, yaw a partir de la matriz de rotación) Encontrar los ángulos roll, pitch, yaw que representan la rotación dada por la siguiente matriz de rotación R=[0.50.5570.6630.8660.3210.38300.7660.643].

Solución:

Para encontrar los ángulos roll, pitch, yaw se utilizan las expresiones dadas en Ecuación 3.7, Ecuación 3.6 y Ecuación 3.7. El ángulo de pitch, usando Ecuación 3.6 estará dado por: ϕp=atan2(0,±0.7662+0.6432)=atan2(0,±1)=0 o 180. Existen dos posibles soluciones. La primera solución utilizará ϕp=0, con lo que cos(0)=1, y reemplazando en Ecuación 3.7 y Ecuación 3.8 se tiene: ϕr=atan2(0.8661,0.51)=120,ϕy=atan2(0.7661,0.6431)50. Con estos resultados, el primer conjunto de ángulos roll, pitch, yaw está dado por (120,0,50). La segunda solución se obtiene utilizando ϕp=180, de tal modo que cos(180)=1. Reemplazando en Ecuación 3.7 y Ecuación 3.8: ϕr=atan2(0.8661,0.51)60,ϕy=atan2(0.7661,0.6431)=130. Con estos ángulos, el segundo conjunto de ángulos es (60,180,130). El enunciado no restringe ningún intervalo para la solución, así que se considera las dos soluciones como válidas. A modo de verificación, se puede aplicar la secuencia de rotaciones Rz(ϕr)Ry(ϕp)Rx(ϕy), con ambos conjuntos de ángulos obtenidos, llegando en ambos casos a la matriz inicialmente propuesta en el ejemplo.

3.3 Parametrización de Eje y Ángulo

Toda rotación, por muy compleja que sea, puede ser descrita como el giro de un ángulo θ alrededor de un determinado eje u, como se esquematiza en la Figura 3.3. A esta representación de una rotación mediante un ángulo θ y un eje u se le denomina parametrización eje-ángulo. La justificación de esta parametrización se basa en el denominado teorema de rotación de Euler, el cual establece que, en el espacio tridimensional, cualquier desplazamiento de un cuerpo rígido tal que un punto en el cuerpo rígido se mantiene fijo, es equivalente a una sola rotación alrededor de un eje que pasa por dicho punto fijo.

Figura 3.3: Rotación genérica de un ángulo θ alrededor de un eje unitario u

3.3.1 Matriz de Rotación Equivalente

La relación existente entre una matriz de rotación y la parametrización eje-ángulo puede ser deducida de diversas maneras, utilizando argumentos geométricos, algebraicos o proyecciones. A continuación, y por facilidad de presentación, se realizará una derivación algebraica.

Considérese una rotación de un ángulo θ alrededor de un eje unitario u, el cual es arbitrario y cumple u=1. Debido a que no se conoce el eje, se obtendrá la matriz de rotación equivalente R(θ,u) de manera indirecta. Con este fin se seguirá los siguientes pasos, esquematizados en la Figura 3.4, iniciando con un sistema de referencia descrito por los ejes x0,y0,z0.

(a)

(b)

(c)

(d)

Figura 3.4: Secuencia de rotaciones para obtener la matriz de rotación que describe la orientación de un ángulo θ alrededor de un eje u

  1. Primero se aplicará una rotación R1 al sistema de referencia inicial (Figura 3.4 (a)), la cual hará que el eje z de este sistema quede alineado con el eje de giro u.

  2. Luego se realizará la rotación del ángulo θ alrededor del eje z local, Rz(θ), ya que este eje se encuentra ahora alineado con el eje unitario de interés u (Figura 3.4 (b)). La rotación resultante hasta este punto es: R1Rz(θ) (Figura 3.4 (c)).

  3. Finalmente, luego de aplicada la rotación del ángulo θ deseado, se “deshace” o “invierte” la rotación inicial aplicando la inversa R11 al sistema local (Figura 3.4 (d)), siendo la rotación resultante: R1Rz(θ)R11.

Puesto que en una matriz de rotación la inversa es igual a la transpuesta, estos tres pasos se pueden escribir como R(θ,u)=R1Rz(θ)R1T, donde R(θ,u) es la matriz de rotación equivalente deseada. La estructura de Rz(θ) está dada por Ecuación 2.4 ya que es una rotación canónica, así que el problema consiste en determinar la estructura de la matriz R1. Debido a que R1 alinea el eje z inicial con el eje u, la tercera columna de esta matriz describe las coordenadas de u en el sistema inicial. Dicho de otra manera, luego de aplicar la rotación, el nuevo eje z tiene como coordenadas a u con respecto al sistema inicial. Por tanto, la estructura de R1 será R1=[nsu], donde n,s,u son vectores columna que describen la orientación de los ejes canónicos rotados, con respecto al sistema inicial. En dicha matriz se conoce el valor de u pero se desconoce los valores de n y de s. Reemplazando esta estructura en la expresión anterior de R(θ,u), y utilizando la expresión de la rotación en z, se tiene R(θ,u)=[nsu][cos(θ)sen(θ)0sen(θ)cos(θ)0001][nTsTuT].

Se puede fácilmente realizar la multiplicación término a término de estas matrices, sin necesidad de expandir los componentes de n, s o u, ya que los tamaños de los vectores fila y columna son coherentes. El producto resultante es R(θ,u)=cos(θ)nnTsen(θ)nsT+sen(θ)snT+cos(θ)ssT+uuT=uuT+(nnT+ssT)cos(θ)+(snTnsT)sen(θ). El problema de la expresión anterior es que contiene los vectores n y s, los cuales son desconocidos. Para resolver este problema se puede usar el hecho que R1R1T=nnT+ssT+uuT=I, de donde nnT+ssT=IuuT. Además, debido a que R1 es una matriz de rotación y sus columnas representan sus ejes, se cumple que n×s=u. Con base en esta última propiedad, se puede demostrar, desarrollando explícitamente cada uno de los términos, que snTnsT=u^, donde dado un vector u=(ux,uy,uz), la matriz u^ (también representada como u) se denomina matriz antisimétrica (skew-symmetric) asociada con u y se define como (3.9)u^=[0uzuyuz0uxuyux0] (en realidad, el resultado (n×s)=snTnsT se conoce como el corchete de Lie de la rotación infinitesimal). Utilizando estas equivalencias, la matriz de rotación equivalente a la rotación arbitraria de θ alrededor del eje unitario u queda dada por (3.10)R(θ,u)=uuT+(IuuT)cos(θ)+u^sen(θ). Esta expresión puede ser rescrita utilizando la propiedad uuT=u^2+I, la cual puede ser fácilmente verificada mediante cálculo directo término a término. Así, se tiene R(θ,u)=(u^2+I)+(Iu^2I)cos(θ)+u^sen(θ), que, agrupando términos, puede ser escrito como (3.11)R(θ,u)=I+u^sen(θ)+u^2(1cos(θ)). La expresión Ecuación 3.11 se denomina fórmula de Rodrigues. En general, se puede utilizar tanto Ecuación 3.10 como Ecuación 3.11 para el cálculo de la matriz de rotación equivalente a una rotación de un ángulo θ alrededor de un eje unitario u=(ux,uy,uz). De manera explícita, operando término a término, la matriz R(θ,u) queda definida como (3.12)R(θ,u)=[ux2vθ+cθuxuyvθuzsθuxuzvθ+uysθuxuyvθ+uzsθuy2vθ+cθuyuzvθuxsθuxuzvθuysθuyuzvθ+uxsθuz2vθ+cθ], donde las abreviaciones utilizadas por conveniencia son cθ=cos(θ), sθ=sen(θ), y la función verseno es vθ=versen(θ)=1cos(θ).

Ejemplo 3.4 (Matriz de rotación alrededor de un eje genérico) Encontrar la matriz de rotación R que representa una rotación de 30 alrededor del eje (2,1,2).

Solución:

Para encontrar esta matriz de rotación se utiliza la fórmula de Rodrigues dada en Ecuación 3.11, o su expresión alternativa dada en Ecuación 3.10. En cualquier caso, primero se necesita que el eje de giro sea unitario, así que se convertirá (2,1,2) en unitario dividiéndolo entre su magnitud, que es (2,1,2)=3, obteniendo u=(2/3,1/3,2/3) o u=(0.667,0.333,0.667). Se requiere, además, tener la matriz antisimétrica asociada con el eje unitario de giro, que se obtiene usando Ecuación 3.9, y el cuadrado de esta matriz. Ambas matrices son: u^=[00.6670.3330.66700.6670.3330.6670],u^2=u^u^=[0.5550.2220.4440.2220.8880.2220.4440.2220.555] Reemplazando estas matrices en Ecuación 3.11, considerando además que sen(30)=0.5 y que 1cos(30)=0.134, se tiene R=I+0.5u^+0.134u^2

que finalmente es R=[0.9260.3040.2260.3630.8810.3040.1070.3630.926]. Esta matriz de rotación representa la rotación deseada.

3.3.2 Problema Inverso

El problema inverso consiste en encontrar el vector unitario u=(ux,uy,uz) y el escalar θ tal que el efecto de rotar el ángulo θ alrededor de u sea equivalente al efecto de aplicar una matriz de rotación dada. Considérese una matriz de rotación numérica RSO(3) tal que los elementos de R son R=[r11r12r13r21r22r23r31r32r33]. Comparando esta matriz con Ecuación 3.12 se puede resolver el problema inverso. Por inspección, se puede observar que r32r23=2uxsenθ, que r13r31=2uysenθ, y que r21r12=2uzsenθ. Despejando ux, uy y uz de estas expresiones, y agrupando los términos en forma de vector, se obtiene el vector u como (3.13)u=[uxuyuz]=12sen(θ)[r32r23r13r31r21r12], donde se debe tener sen(θ)0 para evitar indeterminaciones.

Para encontrar el ángulo θ, es recomendable utilizar la función atan2, para lo cual es necesario encontrar primero sen(θ) y cos(θ). Se puede observar que la traza de R es trR=versenθ+3cosθ=1+2cosθ, de donde se obtiene cos(θ)=trR12. Se observa además que (r21r12)2+(r31r13)2+(r32r23)2=4sen2(θ), de donde se puede despejar el seno. Usando estas dos expresiones se obtiene la tangente y por tanto el arcotangente como (3.14)θ=atan2(±(r21r12)2+(r31r13)2+(r32r23)22,trR12). Cuando se toma la raíz positiva, se tendrá θ[0,π), y cuando se tome el signo negativo de la raíz se tendrá θ(π,0). Usando este ángulo se calcula el eje respectivo en Ecuación 3.13. Tener en cuenta que siempre se tendrá dos posibles soluciones, por lo que la representación eje-ángulo (a veces denominada representación equivalente de eje) no es única. De hecho, usando Ecuación 3.14 y Ecuación 3.13 es posible verificar que (3.15)R(θ,u)=R(θ,u). Un detalle adicional es que se puede multiplicar el eje unitario u con el ángulo θ para obtener el vector no unitario r=uθ. Así, usando el vector de tres parámetros r=uθ se puede representar el eje-ángulo con solamente tres valores, por lo que esta representación es mínima. Si se tiene el vector r, el ángulo se recupera fácilmente como θ=|r|, y el eje unitario como u=rr.

Ejemplo 3.5 (Representación eje-ángulo a partir de la matriz de rotación) Encontrar el eje y el ángulo, que se debe girar alrededor de dicho eje, para obtener una orientación equivalente a la representada por la siguiente matriz de rotación: R=[0.9260.3040.2260.3630.8810.3040.1070.3630.926].

Solución:

El ángulo equivalente se obtiene utilizando la expresión Ecuación 3.14. Primero se calculará la traza, que es trR=0.926+0.881+0.926=2.733, tal que trR1=1.733. Además, reemplazando los elementos de la matriz en la raíz cuadrada se tiene (0.363+0.304)2+(0.1070.226)2+(0.363+0.304)2=1. Reemplazando estos valores en Ecuación 3.14 se tiene: θ=atan2(±12,1.7332) que lleva a los dos siguientes posibles ángulos, según si se toma el valor positivo o negativo de 1: θ=atan2(12,1.7332)=30yθ=atan2(12,1.7332)=30. Usando el ángulo positivo (30) se tiene sen(30)=0.5, y reemplazando en Ecuación 3.13 se obtiene que el eje asociado es u=12(0.5)[0.363+0.3040.226+0.1070.363+0.304]=[0.6670.3330.667]. Entonces, una solución es el eje unitario u=(0.667,0.333,0.667) con un ángulo de giro de θ=30.

Para obtener la otra solución se puede utilizar el ángulo θ=30 y reemplazar en Ecuación 3.13 para calcular el nuevo eje de giro. Sin embargo, debido a la propiedad Ecuación 3.15 se sabe que la otra solución será similar a la primera solución pero con el ángulo negado y el eje de giro negado. De manera concreta, la segunda solución consiste en girar θ=30 alrededor del eje unitario u=(0.667,0.333,0.667). Dado que no se restringe el intervalo del ángulo, ambas soluciones son posibles. Sin embargo, resulta común utilizar ángulos positivos.

3.3.3 Propiedades de la rotación genérica

La matriz de rotación genérica R(θ,u) que describe un giro de θ alrededor del eje unitario u tiene las siguientes propiedades:

  • El eje de rotación u es invariante a la rotación: R(θ,u)u=u. Esto se puede fácilmente probar multiplicando Ecuación 3.11 con u y usando el hecho que el producto cruz de un vector consigo mismo es nulo.

  • Cuando u es uno de los ejes coordenados, R se convierte en una de las rotaciones canónicas dadas por Ecuación 2.2, Ecuación 2.3 y Ecuación 2.4.

  • Siempre hay dos rotaciones equivalentes: R(θ,u)=R(θ,u). Esto implica que el mapa (θ,u)R no es inyectivo; es decir, dos elementos del dominio, (θ,u) y (θ,u) mapearán al mismo elemento del codominio.

  • Los autovalores de cualquier matriz de rotación R son 1, eiθ, eiθ, y se encuentran en un círculo unitario en el plano complejo.

Esta última propiedad se puede probar como sigue. A partir de la primera propiedad, que establece R(θ,u)u=1u, se observa que u es un autovector de R, siendo λ1=1 su autovalor asociado. Por propiedad de matrices se tiene que el determinante de una matriz es igual al producto de sus autovalores, por lo que λ2λ3=+1. Igualmente, para toda matriz se cumple que la traza es la suma de los autovalores, es decir tr(R)=1+2cos(θ)=1+λ2+λ3. Reemplazando λ3=1λ2 en esta expresión se llega a λ222cos(θ)λ2+1=0. Resolviendo esta ecuación se tiene λ2,3=cos(θ)±cos2(θ)1=cos(θ)±isen(θ)=e±iθ.

3.3.4 Singularidades

Como se observa en Ecuación 3.13, esta representación presenta una singularidad cuando sen(θ)=0. Así, las singularidades ocurren cuando θ=kπ, con kZ. Cuando θ=0 el ángulo de rotación es nulo, y por tanto no existe, en realidad, rotación. Esto se verifica ya que con θ=0 se tiene R=I, en Ecuación 3.11. Entonces, en este caso, el eje u puede ser escogido de manera arbitraria.

Por otro lado, cuando θ=π, se tiene R=I+2u^2, reemplazando en Ecuación 3.11, o de manera equivalente, R=I+2uuT reemplazando en Ecuación 3.10. La segunda expresión resulta más fácil de interpretar ya que se trata del doble del producto exterior del eje unitario de giro menos la matriz identidad. Esto se puede verificar reemplazando sen(θ)=0, cos(θ)=1 versen(θ)=2 en Ecuación 3.12, llegando a R(π,u)=[2ux212uxuy2uxuz2uxuy2uy212uyuz2uxuz2uyuz2uz21]. A partir de esta expresión, los componentes del eje se obtienen a partir de la diagonal principal como: (3.16)ux=±12(r11+1),uy=±12(r22+1),uz=±12(r33+1), donde cada elemento tiene dos posibles signos. Sin embargo, las posibles combinaciones se reducen a solamente dos posibilidades utilizando las siguientes relaciones que se obtienen a partir de los elementos fuera de la diagonal principal: (3.17)uxuy=r122,uxuz=r132,uyuz=r232. Estas expresiones permiten obtener los signos correctos para ux,uy,uz. Se puede, además, notar que siempre habrá dos soluciones de signo opuesto.

Ejemplo 3.6 (Eje-ángulo dada una matriz de rotación) Encontrar el eje y el ángulo equivalentes a la siguiente matriz de rotación: R=[10000.7070.70700.7070.707].

Solución:

El ángulo equivalente se obtiene utilizando Ecuación 3.14. La traza, en este caso, es trR=10.707+0.707=1, y por tanto, trR1=2. Reemplazando los demás valores en Ecuación 3.14 se tiene: θ=atan2(±(00)2+(00)2+(0.707+0.707)22,22) a partir de donde se obtiene θ=180. En este caso hay solo un ángulo para la solución dado que el primer término de la función atan2 es cero, y no varía sea positivo o negativo. El seno de 180 es cero, por lo que no se puede obtener el eje utilizando Ecuación 3.13, y se está en una singularidad. Como se vio anteriormente, cuando el ángulo es 180 se debe utilizar las expresiones dadas en Ecuación 3.16, con las que se obtiene ux=±12(1+1)=0uy=±12(0.707+1)=±0.383,uz=±12(0.707+1)=±0.924. Para determinar los signos correctos de uy, uz se utiliza las relaciones multiplicativas dadas en Ecuación 3.17, obteniéndose: uxuy=02=0,uxuz=02=0,uyuz=0.7072=0.354. Las dos primeras expresiones son cero debido a que ux=0 (y no era necesario calcularlas). La tercera expresión muestra que el producto de uy con uz debe ser negativo, por lo que cuando uy=0.383 se tiene uz=0.924, y cuando uy=0.383 se tiene uz=0.924. Finalmente, las dos soluciones tienen como ángulo de giro a 180 y como ejes a (0,0.383,0.924) o a (0,0.383,0.924). Se puede verificar el resultado utilizando la fórmula de Rodrigues con estos ángulos, para obtener la matriz de rotación equivalente.

3.4 Cuaterniones Unitarios

En robótica es cada vez más común representar la orientación de los cuerpos rígidos que forman parte de un robot a través de cuaterniones unitarios, los cuales son un caso particular de los cuaterniones.

Cuaterniones

Un cuaternión QQ, también llamado cuaternio, es una tupla de cuatro elementos reales, con operaciones de adición y multiplicación, que se representa como Q=(w,ϵx,ϵy,ϵz),oQ=w+ϵxi+ϵyj+ϵzk, donde w,ϵx,ϵy,ϵzR, y los elementos i, j, k son componentes de la base de los cuaterniones. El término w es el componente escalar de Q, y el término ϵ=(ϵx,ϵy,ϵz) constituye su componente vectorial, de tal modo que el cuaternión Q puede también representarse como Q=(w,ϵ),oQ=w+ϵ, con wR y ϵR3. Debido a que ϵ es el componente vectorial, al representar el cuaternión como una suma de componentes, sus elementos ϵx,ϵy,ϵz utilizan la base i,j,k para ser claramente distinguidos del término escalar, que tiene base 1. Es usual representar como Q al espacio de todos los cuaterniones. Más detalles sobre cuaterniones y sus operaciones se puede encontrar en el apéndice B.

Al representar un cuaternión como una tupla de cuatro elementos, es importante conocer el orden de estos elementos, ya que no existe una convención establecida. En este libro se utiliza la convención mostrada; es decir, primero el término escalar y luego los términos vectoriales. Sin embargo, algunas convenciones y paquetes de software, sin pérdida de generalidad, hacen lo contrario, y el no tener claro este orden es una fuente frecuente de errores, principalmente al utilizar bibliotecas para la implementación.

Cuaterniones unitarios

Los cuaterniones unitarios, cuyos elementos se conocen como parámetros de Euler, son el subconjunto de todos los cuaterniones QQ tales que su magnitud es unitaria; es decir Q=1, o, equivalentemente, w2+ϵx2+ϵy2+ϵz2=1. Al espacio que contiene a los cuaterniones unitarios se denominará Qu. Al igual que los cuaterniones genéricos, los cuaterniones unitarios forman un grupo con respecto a la multiplicación de cuaterniones, representada por . Esto implica que:

  • La multiplicación de dos cuaterniones unitarios es un cuaternión unitario: si Q1,Q2Qu, entonces Q1Q2Qu.
  • La multiplicación de cuaterniones unitarios es asociativa: si Q1,Q2,Q3Qu, entonces (Q1Q2)Q3=Q1(Q2Q3).
  • Existe un elemento identidad con respecto a la multiplicación, que para los cuaterniones es QI=(1,0,0,0); es decir, la parte escalar es 1 y la parte vectorial tiene ceros.
  • El elemento inverso Q1 de un cuaternión unitario Q=(w,ϵ), tal que QQ1=QI, es el cuaternión unitario Q1=(w,ϵ), y es único.

Una consecuencia es que, dados Q1,Q2Qu se cumple que Q1Q2=1; es decir, la norma del producto de dos cuaterniones unitarios es unitaria. Además, en cuaterniones unitarios, la inversa Q1 es igual a la conjugada Q; es decir, Q1=Q.

3.4.1 Orientación usando cuaterniones unitarios

La orientación resultante de rotar un cuerpo rígido un ángulo θR alrededor de un eje unitario u=(ux,uy,uz)R3, como se ilustra en la Figura 3.3, está representada por el cuaternión unitario (3.18)Q=(cosθ2,u senθ2), donde el primer elemento es el componente escalar w y el segundo elemento es el componente vectorial ϵ=(ϵx,ϵy,ϵz), tal que (3.19)w=cos(θ2)yϵ=u sen(θ2). De forma equivalente, se puede representar Ecuación 3.18 mostrando los componentes del eje unitario de rotación como Q=(cosθ2,uxsenθ2,uysenθ2,uzsenθ2). Debido a que, dado un ángulo α=θ2 se tiene cos(α)=cos(α) y sen(α)=sen(α), se cumple que el cuaternión Q asociado con una rotación de θ alrededor de u es el mismo que el asociado con una rotación de θ alrededor de u. En otros términos, los pares eje-ángulo (θ,u) y (θ,u) originan el mismo cuaternión, como consecuencia de representar la misma rotación (esto es análogo a la propiedad dada en Ecuación 3.15). Por otro lado, la ausencia de rotación, representada por θ=0, lleva al cuaternión QI=(1,0,0,0), el cual es el elemento identidad.

Ejemplo 3.7 (Rotación arbitraria) Considerar una rotación de 60 alrededor del eje (2,2,0). a) Encontrar el cuaternión unitario Q que representa dicha rotación. b) Encontrar la conjugada y la inversa del cuaternión Q.

Solución:

  1. Primero se necesita que el eje de giro sea unitario, así que se divide (2,2,0) entre su módulo (22+222.83) para obtener u=(0.707,0.707,0). Luego, la rotación arbitraria se obtiene reemplazando θ=60 y el eje u calculado en Ecuación 3.18, para obtener Q=(cos602,(0.707,0.707,0)sen602)=(0.866, 0.5(0.707,0.707,0))=(0.866, 0.354,0.354,0). El componente escalar del cuaternión unitario Q obtenido es 0.866 y el componente vectorial es (0.354,0.354,0).

  2. La conjugada de este cuaternión es Q=(0.866,0.354,0.354,0). Dado que se trata de cuaterniones unitarios, la inversa Q1 es igual a la conjugada Q.

Ejemplo 3.8 (Rotaciones canónicas) Determinar los cuaterniones que representan las rotaciones canónicas de un ángulo θ alrededor de los ejes x, y, z.

Solución:

Las relaciones pedidas se obtienen utilizando el eje adecuado en Ecuación 3.18. Reemplazando, la rotación de un ángulo θ alrededor del eje canónico x=(1,0,0) estará dada por Qx=(cosθ2,senθ2,0,0). Igualmente, la rotación de un ángulo θ alrededor del eje canónico y=(0,1,0) estará dada por Qx=(cosθ2,0,senθ2,0). Finalmente, la rotación de un ángulo θ alrededor del eje canónico z=(0,0,1) estará dada por Qx=(cosθ2,0,0,senθ2). Es importante reconocer estas rotaciones canónicas en cuaterniones ya que, en algunos casos particulares, pueden ser las que describan algún tipo de movimiento. Por ejemplo, los robots móviles con ruedas en el plano tienen solamente orientaciones descritas por el último cuaternión, ya que su rotación es posible solo alrededor del eje z (asumiendo un plano sin irregularidades).

Relación inversa: eje-ángulo dado un cuaternión unitario
Considérese una rotación representada mediante el cuaternión unitario Q=(w,ϵ), donde se asume que tanto w como ϵ son valores numéricos. Esta rotación es equivalente al giro de un ángulo θ alrededor de un eje unitario u. Ambos elementos se pueden obtener a partir de Ecuación 3.19. Para el caso del ángulo, el componente escalar brinda directamente w=cos(θ2), y el componente vectorial brinda ϵ=u sen(θ2). Tomando el módulo de esta última expresión se obtiene ϵ=|sen(θ2)|, puesto que u=1. Usando la función atan2, dado el seno y el coseno, se tiene θ2=atan2(ϵ,w), que lleva a: (3.20)θ=2 atan2(ϵ,w). Notar que la primera componente de atan2 siempre será positiva, por lo que el ángulo θ siempre estará en el intervalo [0,π]. El eje se puede obtener despejando ϵ=u sen(θ2) como u=ϵsen(θ/2). Sin embargo, dado que para el cálculo del ángulo se está considerando solamente el valor positivo del seno, en el cálculo de u también se deberá considerar |sen(θ2)|, el cual se mostró que es equivalente a ϵ. Así, siempre que ϵ0, el eje queda dado por (3.21)u=ϵϵ. Notar que en Ecuación 3.21 hay una indeterminación cuando ϵ=sen(θ2)=0. Esto se cumple cuando θ2=kπ, con kZ, o equivalentemente cuando θ=2kπ; es decir, cuando θ=0. Se puede ver que este caso es un resultado de la indeterminación fundamental del eje de rotación cuando existe una rotación nula, y corresponde al cuaternión identidad QI=(1,0,0,0). Así, en este caso se puede escoger cualquier eje u arbitrario, dado que el ángulo de giro es 0 y por tanto no hay rotación.

3.4.2 Relación con la matriz de rotación

Como se mostró en la Sección 3.4.1, resulta directo obtener un cuaternión unitario a partir del eje y ángulo que representa una rotación. Igualmente, la relación inversa se obtiene usando Ecuación 3.20 y Ecuación 3.21. Así, para convertir un cuaternión a una matriz de rotación, y viceversa, se puede utilizar dicha representación eje-ángulo como representación intermedia. Sin embargo, se puede realizar la conversión de manera más directa como se muestra a continuación.

Matriz de Rotación dado un cuaternión unitario

Para encontrar una matriz de rotación R equivalente a un cuaternión unitario Q=(w,ϵ) dado, se puede utilizar la relación de los componentes (w,ϵ) del cuaternión con el eje unitario u y con el ángulo θ, dada en Ecuación 3.19. Luego, se aplica propiedades trigonométricas para reemplazar los componentes del cuaternión en la matriz de rotación dada en Ecuación 3.12.

De manera concreta, a partir de trigonometría básica se conoce la expresión del ángulo medio cos(θ)=2cos2(θ2)1, la cual, reemplazando cosθ2=w, queda como cos(θ)=2w21. Por otro lado, se sabe que sen(θ)=2sen(θ2)cos(θ2), y realizando el mismo reemplazo que en el caso anterior para w se llega a sen(θ)=2wsen(θ2). La expresión obtenida se puede multiplicar con los componentes ui del vector unitario, donde i=x,y,z, obteniendo uisen(θ)=2wϵi, ya que uisen(θ2)=ϵi. Finalmente, se tiene cos(θ)=12sen2(θ2), de donde versen(θ)=1cos(θ)=2sen2(θ2). Multiplicando esta expresión con los componentes uiuj del eje unitario (i,j=x,y,z) se llega a uiujversen(θ)=2uiujsen2(θ2), de donde se obtiene uiujversen(θ)=2ϵiϵj, ya que uisen(θ2)=ϵi. Los resultados obtenidos se resumen a continuación: cos(θ)=2w21,uisen(θ)=2wϵi,uiujversen(θ)=2ϵiϵj, donde i,j=x,y,z. Reemplazando directamente estos resultados en Ecuación 3.12, y realizando un pequeño arreglo de términos, se llega a (3.22)R(w,ϵ)=[2(w2+ϵx2)12(ϵxϵywϵz)2(ϵxϵz+wϵy)2(ϵxϵy+wϵz)2(w2+ϵy2)12(ϵyϵzwϵx)2(ϵxϵzwϵy)2(ϵyϵz+wϵx)2(w2+ϵz2)1], que es la matriz de rotación equivalente a un cuaternión dado Q=(w,ϵx,ϵy,ϵz).

Cuaternión dada una matriz de rotación

Este problema consiste en encontrar el cuaternión Q que describe la misma rotación que una matriz de rotación R genérica dada por R=[r11r12r13r21r22r23r31r32r33], donde cada rij es un valor numérico. Comparando los elementos de esta matriz con la matriz de rotación dada en Ecuación 3.22, se puede establecer las siguientes combinaciones lineales de los elementos de la diagonal principal que se relacionan con los cuadrados de los elementos del cuaternión: w2=14(1+r11+r22+r33),ϵx2=14(1+r11r22r33),ϵy2=14(1r11+r22r33),ϵz2=14(1r11r22+r33). El problema de utilizar directamente estas ecuaciones radica en encontrar los signos correctos al momento de despejar el término cuadrático. Para resolver este problema se determina, por comparación de las matrices anteriores, las siguientes relaciones cruzadas: wϵx=14(r32r23),wϵy=14(r13r31),  wϵz=14(r21r12),ϵxϵy=14(r12+r21),ϵxϵz=14(r13+r31),  ϵyϵz=14(r23+r32), las cuales ayudan a desambiguar el signo de los componentes del cuaternión. De manera concreta, se puede despejar w de la primera relación cuadrática, obteniendo (3.23)w=121+r11+r22+r33, donde se ha mantenido solo el signo positivo de la raíz cuadrada. Esta elección hace que w=cos(θ2) siempre sea positivo, y que θ se encuentre en el intervalo abierto (π,π), cubriendo todos los posibles valores angulares, a excepción de π. De las expresiones cruzadas anteriores, se puede despejar los componentes vectoriales del cuaternión usando las tres ecuaciones que contienen w, ya que w ya se encuentra calculado usando Ecuación 3.23, obteniendo (3.24)ϵx=14w(r32r23),ϵy=14w(r13r31),ϵz=14w(r21r12), sin tener problemas de signo. Así, usando Ecuación 3.23 y Ecuación 3.24 se obtiene el cuaternión unitario deseado a partir de una matriz de rotación dada.

Nótese que Ecuación 3.24 presenta una indeterminación cuando w=0, es decir cuando θ=±180, ya que en dicho caso no se podría calcular ϵ. Esta indeterminación no es una singularidad del cuaternión (los cuaterniones no sufren de singularidades), sino un problema de la elección arbitraria realizada para calcular w en Ecuación 3.23. En este caso, una solución consiste en calcular los valores positivos de ϵx, ϵy y ϵz de las expresiones cuadráticas anteriores, manteniendo solo la raíz positiva. Luego se encuentra el componente con mayor valor, por ejemplo ϵi, y se le mantiene, descartando los otros dos componentes. Una vez calculado ϵi, se utiliza las expresiones cruzadas anteriores que involucran a ϵi para despejar los 3 componentes restantes del cuaternión (los otros dos componentes de ϵ, y el valor escalar w).

Ejemplo 3.9 (Cuaternión a partir de una matriz de rotación) Determinar el cuaternión unitario Q equivalente a la matriz de rotación R dada por R=[0.3210.1170.9400.6830.7160.1450.6560.6880.310].

Solución:

Utilizando Ecuación 3.23, y reemplazando los valores de la matriz dada, se calcula el componente escalar w del cuaternión resultante como w=0.51+0.321+0.716+0.310=0.766. Debido a que el resultado no es cero, se procede con la siguiente parte. Cada uno de los componentes vectoriales se calcula luego utilizando Ecuación 3.24. Reemplazando valores se tiene ϵx=14(0.766)(0.688+0.145)=0.272ϵy=14(0.766)(0.940+0.656)=0.521ϵz=14(0.766)(0.683+0.117)=0.261. El cuaternión resultante es, entonces, Q=(0.766,0.272,0.521,0.261). Se puede, además, fácilmente verificar que se trata de un cuaternión unitario.

3.4.3 Composición de cuaterniones

Debido a que los cuaterniones parametrizan la orientación, al igual que una matriz de rotación representan la orientación de un sistema de referencia con respecto a otro sistema de referencia. Por ejemplo, el cuaternión AQB representa la orientación del sistema {B} con respecto al sistema {A}. Considérese además el cuaternión BQC que representa al sistema {C} con respecto al sistema {B}. El sistema {C} quedará representado con respecto al sistema {A} utilizando la composición de rotaciones como: AQC=AQBBQC. Como se observa, la composición de cuaterniones para múltiples sistemas de referencia es similar a la composición de matrices de rotación, pero utiliza el producto de cuaterniones, definido en el siguiente párrafo. Al igual que con matrices de rotación:

  • Si se realiza una rotación con respecto a un sistema fijo, se premultiplica el cuaternión correspondiente (se multiplica por la izquierda).

  • Si se realiza la rotación con respecto a un sistema móvil o rotado, se postmultiplica el cuaternión correspondiente (se multiplica por la derecha).

Producto de cuaterniones

El producto de un cuaternión Q1=(w1,ϵ1) con un cuaternión Q2=(w2,ϵ2), representado como Q1Q2, se obtiene aplicando el producto término a término y utilizando las relaciones fundamentales de las bases de un cuaternión (i, j, k). El resultado de este producto está dado por: Q1Q2=(w1w2ϵ1Tϵ2, w1ϵ2+w2ϵ1+ϵ1×ϵ2), donde la parte escalar del resultado es w1w2ϵ1Tϵ2, y la parte vectorial es w1ϵ2+w2ϵ1+ϵ1×ϵ2. Nótese que para poder operar el término ϵ1Tϵ2 se está asumiendo que tanto ϵ1 como ϵ2 son vectores columna, y de manera alternativa se podría utilizar ϵ1ϵ2.

De manera alternativa, el producto de dos cuaterniones también puede ser calculado convirtiendo el primer vector a matriz, Q^1 y multiplicando esta matriz con el segundo cuaternión Q2, expresado como vector columna. Con este fin, dado el cuaternión Q, se define la matriz Q^ como: Q^=[wϵxϵyϵzϵxwϵzϵyϵyϵzwϵxϵzϵyϵxw]=[wϵTϵwI+ϵ^], donde ϵ^ es la matriz antisimétrica asociada al vector ϵ usando la misma forma que Ecuación 3.9. Usando Q^, la multiplicación de los cuaterniones Q con Q2 es equivalente al producto matricial: QQ2=Q^Q2, donde Q2 se expresa como vector columna, siendo su primer elemento la parte escalar. A veces resulta útil esta forma de multiplicación ya que reduce el producto de cuaterniones a un producto matricial.

Rotación inversa con un cuaternión unitario

Al igual que con matrices de rotación, si AQB representa la orientación del sistema {B} con respecto al sistema {A}, el cuaternión BQA representa la orientación de {A} con respecto a {B}. Ambos cuaterniones están relacionados usando la inversa, de tal modo que BQA=AQB, donde Q=(w,ϵ) denota la conjugada de Q=(w,ϵ). Para cuaterniones unitarios, la conjugada es igual a la inversa . Algunas propiedades útiles de la conjugada son:

  • (Q1Q2)=Q2Q1

  • (Q1+Q2)=Q1+Q2, y (Q)=Q

3.5 Aplicación de Parametrizaciones a Vectores

La sección anterior mostró las principales parametrizaciones de la orientación como descripciones de la orientación de un sistema de referencia con respecto a otro, usando menos parámetros que una matriz de rotación. En esta sección se muestra cómo aplicar estas parametrizaciones a un vector para representar un vector en diferentes sistemas de referencia. Usando una interpretación diferente, pero matemáticamente equivalente, se muestra cómo rotar un vector en un mismo sistema de referencia.

La forma más directa de aplicar la rotación a un vector consiste en transformar la parametrización en una matriz de rotación, y multiplicar la matriz de rotación con el vector correspondiente como se vio anteriormente. En el caso de ángulos de Euler de cualquier tipo, o ángulos roll, pitch, yaw, esta es la manera usual de proceder. Para la representación usando eje-ángulo también es posible, pero existe una manera más directa y matemáticamente eficiente de transformar vectores sin tener que generar la matriz de rotación asociada. Igualmente, para cuaterniones existe una manera de aplicarlos directamente a los vectores sin pasar por la matriz de rotación.

3.5.1 Rotación usando Eje-ángulo

La representación eje-ángulo, que expresa el giro de un ángulo θ alrededor de un eje unitario u, es equivalente a la matriz de rotación R(θ,u) dada por la fórmula de Rodrigues en Ecuación 3.11. Para aplicar esta rotación a un vector v, se puede iniciar con la aplicación directa de la matriz de rotación equivalente. Al vector rotado se le denominará vrot, tal que vrot=R(θ,u)v. Se puede reemplazar la matriz de rotación por su equivalente en términos de eje u y ángulo θ usando, la fórmula de Rodrigues dada en Ecuación 3.11, llegando a vrot=(I+u^senθ+u^2(1cosθ))v=v+u^vsenθ+u^u^v(1cosθ), donde en la última expresión se escribió u^2 como u^u^. El producto de la matriz antisimétrica con un vector puede ser reemplazado por el producto cruz, usando el vector asociado con la matriz antisimétrica. Por ejemplo, u^v=u×v, y u^u^v=u×(u×v). Realizando estos reemplazos en la expresión de vrot se tiene vrot=v+(u×v)senθ+u×(u×v)(1cosθ). En la expresión resultante se puede utilizar la siguiente propiedad del triple producto vectorial:
a×(b×c)=b(ac)c(ab). Aplicando esta propiedad, y simplificando términos, ya que uu=1 por tratarse de un vector unitario, se llega a vrot=v+(u×v)senθ+[u(uv)v(uu)](1cosθ)=v+(u×v)senθ+u(uv)(1cosθ)v(1cosθ). Simplificando términos se tiene finalmente (3.25)vrot=vcosθ+(u×v)senθ+u(uv)(1cosθ) Esta expresión a veces es denominada la forma vectorial de la fórmula de Rodrigues, y es una forma eficiente de rotar un vector v, en un mismo sistema de referencia, dado un eje u y un ángulo de rotación θ. Debido a que esta expresión representa la aplicación de la rotación a un vector determinado, se puede interpretar también como el paso del vector v de un sistema rotado, el cual está representado por la rotación de θ alrededor de u, al sistema base.

Se puede, de manera alternativa, reemplazar u×v por la matriz antisimétrica asociada u^×v, pero se dejó el producto cruz en la expresión anterior por ser la forma más común de la forma vectorial de Rodrigues. Otra representación, a veces utilizada, de esta expresión se puede deducir a partir de las líneas anteriores a Ecuación 3.25, y es igual a vrot=u(uv)+(u×v)senθu×(u×v)cosθ. Sin embargo, aquí se utilizará Ecuación 3.25 por ser más compacta.

3.5.2 Rotación usando Cuaterniones Unitarios

Los cuaterniones tienen parte escalar y parte vectorial. Cuando se utilizan para representar valores escalares, su parte vectorial es nula, y cuando son utilizados con el fin de representar vectores, su parte escalar es nula. Un vector (puro) v=(vx,vy,vz)R3 se representa en forma de cuaternión como v~Q tal que v~=(0,v)=(0,vx,vy,vz), donde la parte escalar es w=0 y la parte vectorial es ϵ=v. Cabe resaltar que este cuaternión v~ asociado con el vector v no es unitario, ya que no representa una rotación sino un vector tridimensional.

La rotación de un ángulo θ alrededor de un eje u se puede aplicar a un vector vR3, escrito en forma de cuaternión como v~=(0,v), a través del producto con el cuaternión unitario Q=(cos(θ2),usen(θ2)) que representa dicha rotación. El cuaternión asociado con el vector resultante de la rotación, v~rot, queda dado por: (3.26)v~rot=Qv~Q, donde el vector rotado es vrot y es el componente vectorial de v~rot. Este cuaternión resultante siempre tendrá parte escalar cero, ya que reprenta a un vector puro; es decir, siempre tendrá la forma v~rot=(0,vrot). La aplicación de la rotación, en el caso de cuaterniones unitarios, siempre implica una multiplicación por la derecha y por la izquierda: por la derecha con el cuaternión conjugado Q, y por la izquierda con Q. La demostración que el producto dado en Ecuación 3.26 en realidad rota el vector v se da a continuación.

Ejemplo 3.10 (Rotación de un vector usando un cuaternión) Rotar el vector v=(3,5,2) un ángulo de 60 alrededor del eje (2,0,0) usando a) un cuaternión, b) una matriz de rotación.

Solución:

  1. El vector v=(2,0,0) tiene que ser primero convertido en un cuaternión equivalente, obteniéndose v^=(0,2,0,0). Por otro lado, el cuaternión unitario que representa la orientación deseada es Q=(cos(30),sen(60),0,0)=(0.866,0.5,0,0). Aplicando Ecuación 3.26 se tiene que el vector rotado v^rot es v^rot=(0.866,0.5,0,0)(0,2,0,0)(0.866,0.5,0,0). Realizando el producto de cuaterniones se obtiene v^rot=(1.5,2.6,3.33,4.23)(0.866,0.5,0,0)=(0,3,0.768,5.33). Así, el vector rotado estará dado por la parte vectorial del cuaternión v^; es decir, vrot=(2,0.768,5.33).

  2. Para usar la matriz de rotación, se debe multiplicar la matriz de rotación que describe el giro deseado alrededor del eje x con el vector inicial. El resultado será: vrot=[1000cos(60)sen(60)0sen(60)cos(60)][352]=[30.7685.33]. Se verifica que ambos resultados son iguales.

Demostración

Para demostrar que el producto anterior rota el vector v según la rotación representada por el cuaternión Q=(w,ϵ), se realizará la expansión de los términos del producto mostrando de manera explícita los componentes escalar y vectorial. Considerando que Q=(w,ϵ), a partir de en Ecuación 3.26 se tiene v~rot=(w,ϵ)(0,v)(w,ϵ). Aplicando la definición de producto de cuaterniones, primero a los dos términos de la izquierda, y luego al resultado con el cuaternión de la derecha se obtiene v~rot=(ϵTv,wv+ϵ×v)(w,ϵ)v~rot=(w(ϵTv)+(wv+ϵ×v)Tϵ, (ϵTv)ϵ+w(wv+ϵ×v)(wv+ϵ×v)×ϵ) Aplicando la transpuesta indicada, la parte escalar del cuaternión resultante es w(ϵTv)+w(vT)ϵ+(ϵ×v)Tϵ=ϵT(ϵ×v)=0, ya que el producto punto de dos vectores mutualmente perpendiculares es cero: ϵT(ϵ×v)=ϵ(ϵ×v)=0. Por tanto, el cuaternión resultante no tiene parte escalar, lo cual muestra que es un vector puro. La parte vectorial del cuaternión resultante constituye el vector rotado y, realizando algunas simplificaciones, es: vrot=(ϵv)ϵ+w2v+2w(ϵ×v)(ϵ×v)×ϵ. La propiedad del triple producto vectorial establece que (a×b)×c=(ca)b(cb)a, por lo que se tiene que (ϵ×v)×ϵ=(ϵϵ)v(ϵv)ϵ=ϵ2v(ϵv)ϵ. Reemplazando este resultado en la expresión anterior, y agrupando términos similares se llega a (3.27)vrot=(ϵv)ϵ+w2v+2w(ϵ×v)+(ϵv)ϵϵ2vvrot=2(ϵv)ϵ+(w2ϵ2)v+2w(ϵ×v). Para encontrar la relación de esta expresión con el eje u y el ángulo θ de rotación, se reemplaza w=cosθ2 y ϵ=usenθ2, obteniéndose: vrot=2sen2θ2(uv)u+(cos2θ2sen2θ2)v+2cosθ2senθ2(u×v). Finalmente, aplicando algunas propiedades trigonométricas básicas, se simplifica la expresión anterior a vrot=(1cosθ)(uv)u+cosθ v+senθ(u×v), y esta expresión obtenida es exactamente igual a la rotación de un vector cuando se aplica la fórmula de Rodrigues dada en Ecuación 3.25. Así, se demuestra que el producto dado en Ecuación 3.26 es equivalente a Ecuación 3.25 y representa la rotación del vector un ángulo θ alrededor de un eje unitario u.

Relación con la Matriz de Rotación

Como se acaba de demostrar, el vector vrot que se obtiene como resultado de aplicar una rotación a un a un vector v, a través de un cuaternión Q=(w,ϵ), se representa como v~rot=Qv~Q. Luego de algunas simplificaciones se llega a Ecuación 3.27. Utilizando algunas propiedades de operaciones con vectores, Ecuación 3.27 se puede representar de manera equivalente como vrot=2ϵ(ϵTv)+(w2ϵ2)v+2w(ϵ^v), donde ϵ^ es la matriz antisimétrica asociada con ϵ (considerando a ϵ como un vector). Debido a que v aparece a la derecha en todos los términos, se puede factorizar, quedando vrot=(2ϵϵT+(w2ϵ2)I+2wϵ^)v. Esta relación muestra una transformación lineal que convierte v en vrot, la cual es la matriz de rotación. Es decir, se tiene vrot=Rv con (3.28)R=(2ϵϵT+(w2ϵ2)I+2wϵ^). Esta matriz de rotación R es equivalente a la rotación descrita por el cuaternión Q=(w,ϵ). Desarrollando término a término se puede mostrar que se obtiene la misma matriz dada en Ecuación 3.22.

3.6 Coordenadas Exponenciales

3.6.1 Ecuación Fundamental del Movimiento de Rotación

Considerando que la matriz de rotación R(t) depende del tiempo, es posible tomar su derivada temporal. Usando la regla de la cadena, se puede derivar con respecto al tiempo la igualdad R(t)R(t)T=I, que se cumple para toda matriz de rotación, llegando a: R˙RT+RR˙T=0, donde por simplicidad se ha obviado la dependencia del tiempo. Aplicando la propiedad de la transpuesta (R˙RT)T=RR˙T, y reordenando los términos, se tiene R˙RT=(R˙RT)T. A partir de esta expresión, se puede observar que R˙RT es una matriz antisimétrica. Esta matriz antisimétrica se denomina, usualmente, ω^ y queda definida como: ω^=R˙RT. Multiplicando por R a la derecha de ambos miembros de la igualdad, esta definición de ω^ lleva a la siguiente ecuación diferencial: (3.29)R˙=ω^R la cual es denominada la ecuación fundamental del movimiento de rotación. Esta ecuación diferencial, a su vez, describe la derivada de una matriz de rotación. Su solución utilizando la condición inicial R(0)=I, que es equivalente al hecho que inicialmente no existe rotación, es (3.30)R=eω^t. La solución dada en Ecuación 3.30 puede ser verificada por sustitución en Ecuación 3.29. La expresión Ecuación 3.30 muestra que una matriz de rotación puede también ser expresada como la exponencial de una matriz antisimétrica ω^ que, como se verá en la Sección 3.6.2, representa la velocidad angular. Existen varias formas de calcular Ecuación 3.30; la más utilizada en robótica se muestra en la Sección 3.6.3.

3.6.2 Significado Físico de ω^

Considérese un punto p ubicado en un cuerpo rígido y considérese, además, un sistema de referencia fijo {F} de tal modo que el punto p en el sistema {F} se representa como Fp (como se muestra en la Figura 3.5). Se asumirá que el cuerpo rígido gira con una velocidad angular ω cuyo eje pasa pasa por el origen del sistema de referencia {F}.

Figura 3.5: Cuerpo rígido y sistema de referencia {F}.

Bajo estas condiciones el punto p fijo en el cuerpo rígido girará con la misma velocidad angular ω=(ωx,ωy,ωz) y con una velocidad lineal dada por Fp˙=ω×Fp que es un resultado elemental de mecánica clásica. Se puede considerar un sistema adicional {B}, con el mismo origen que {F} pero que se encuentra fijo en el cuerpo; es decir, cuando el cuerpo rota, el sistema {B} rota junto con el cuerpo. El punto p del cuerpo rígido se puede describir como Bp en el sistema {B}, y es constante con respecto a este sistema. La rotación entre ambos sistemas, {B} y {F}, se describe mediante la matriz de rotación  FRB. Usando esta matriz, el punto Bp se expresa en el sistema de referencia como Fp= FRBBp. La derivada de esta expresión, usando la derivada de la matriz de rotación dada en Ecuación 3.29 y tomando en cuenta que Bp  es constante, resulta en Fp˙=FR˙BBpFp˙=ω^ FRBBpFp˙=ω^Fp. Comparando esta última expresión con la obtenida anteriormente utilizando el criterio puramente físico, se observa que ambas ecuaciones relacionan los mismos elementos y por tanto ω×=ω^. Así, la matriz ω^ es la matriz antisimétrica asociada con la velocidad angular ω del cuerpo rígido y está dada por ω^=[0ωzωyωz0ωxωyωx0]. Esto justifica el uso de la variable ω^, donde ω hace referencia a la velocidad angular, para referirse a esta matriz.

Álgebra de Lie del Grupo de Rotación

Es posible asociar a cualquier grupo de Lie, G, un álgebra de Lie que captura completamente la estructura local del grupo. Matemáticamente el espacio vectorial que forma el álgebra de Lie es el espacio tangente al grupo G en el elemento identidad. Para el grupo de Lie de rotación SO(3) se puede, informalmente, pensar que su álgebra de Lie denominado so(3) es su espacio tangente, el cual representa la velocidad angular. Este espacio tangente está dado por las denominadas matrices antisimétricas, descritas en el ´apéndice A.2.3, llamadas skew-symmetric en inglés.

El espacio so(3), el cual constituye un álgebra de Lie del grupo de matrices de rotación SO(3), es el espacio de matrices antisimétricas en R3×3 y está definido como: (3.31)so(3)={ω^R3×3:ω^T=ω^}R3×3.

El espacio so(3) es también un espacio vectorial debido a que es cerrado bajo la suma y bajo la multiplicación con un escalar; es decir, dados ω^1,ω^2so(3),λR, se tiene ω^1+ω^2so(3), y λω^1so(3). Los elementos de so(3) son en realidad representaciones de la velocidad angular ω en formato de matriz antisimétrica, lo cual se justifica con el hecho de que son tangentes al espacio de las matrices de rotación.

3.6.3 Exponencial de una Matriz

Sea un vector ω con matriz antisimétrica asociada ω^. La exponencial de esta matriz antisimétrica multiplicada con la variable escalar t, eω^t, se puede obtener utilizando la expansión de Taylor: eω^t=I+ω^t+ω^2t22!+ω^3t33!+ω^4t44!+ω^5t55!+ω^6t66!+. Utilizando las propiedades de las matrices antisimétricas, dadas en el apéndice A.2.3, se puede simplificar esta expresión llegando a: eω^t=I+ω^(tt3ω23!+t5ω45!)+ω^2(t22!t4ω24!+t6ω46!) que, usando las expansiones de Taylor del seno y coseno, puede escribirse de forma compacta como (3.32)eω^t=I+ω^ωsin(ωt)+ω^2ω2(1cos(ωt)). Esta representación de la exponencial de una matriz es la más utilizada en robótica, pero existen otras formas de calcular la exponencial que son de utilidad en el análisis de sistemas lineales, como por ejemplo, a través de la descomposición de Jordan.

Físicamente, el mapa exponencial eω^t representa una rotación durante un tiempo t con una velocidad angular ω; es decir, una rotación total de ωt alrededor del eje unitario ωω. Sin embargo, y sin pérdida de generalidad, es posible tomar una velocidad angular unitaria ω=1, y reemplazar t con el desplazamiento angular total θ. Bajo estas suposiciones, la matriz exponencial eω^θ, con ω=1, representa una rotación de θ radianes alrededor del eje unitario de rotación ω. Considerando este eje unitario, es posible simplificar la expresión Ecuación 3.32 obteniendo: (3.33)eω^θ=I+ω^sinθ+ω^2(1cosθ) que se denomina la fórmula de Rodrigues y es exactamente igual a la expresión obtenida previamente en Ecuación 3.11. A veces Ecuación 3.33 es también denominada la forma exponencial de la fórmula de Rodrigues, y brinda una manera eficiente de calcular eω^θ. Recordar que, como se vio en la Sección 3.6.2, se tiene que ω^so(3), donde so(3) es un álgebra de Lie del grupo de rotación.

Más formalmente, el mapa exponencial es suryectivo en SO(3), es decir, so(3)SO(3) es suryectivo. Si RSO(3), existen ωR3,ω=1 y θR tales que R(ω,θ)=eω^θ. Esta expresión significa que dado un eje unitario ω^ y un ángulo de rotación θ alrededor de dicho eje, es siempre posible calcular una matriz de rotación equivalente. Una consecuencia es el denominado teorema de Euler.

Teorema de Euler

Cualquier orientación RSO(3) es equivalente a una rotación alrededor de un eje unitario fijo ωR3 de un ángulo θ[0,2π).