# Cuaterniones y rotación en el espacio

Los cuaterniones unitarios proporcionan una notación matemática para representar las orientaciones y las rotaciones de objetos en tres dimensiones. Comparados con los ángulos de Euler, son más simples de componer y evitan el problema del bloqueo del cardán. Comparados con las matrices de rotación, son más eficientes y más estables numéricamente. Los cuarteniones son útiles en aplicaciones de gráficos por computadora, robótica, navegación y mecánica orbital de satélites.

## Introducción

Se recuerda la versión geométrica del producto de dos cuaterniones, $q=(a,u)$ y $q'=(a',u')$, donde $a$ y $a'$ son las partes reales, $u$ y $u'$ son las partes imaginarias, también vistas como vectores del espacio tridimensional $\mathbb {R} ^{3}$:
$qq'=aa'-uu',au'+a'u+u\times u'$
Donde $uu'$ designa el producto escalar, y $u\times u'$, el producto vectorial. Notaremos ${\bar {q}}$ el cuaternión conjugado de $q$: ${\bar {q}}=(a,-u)$.
Para permanecer en el espacio tridimensional, hace falta hacer desaparecer las partes reales. Tomemos $a=a'=0$.
Entonces $qq'=(0,u)(0,u')=(-uu',u\times u')$.
Bien es sabido que el producto vectorial está relacionado con la rotación en el espacio. Por lo tanto, a base de productos, debe ser posible expresar cualquier rotación tridimensional. El objetivo es obtener una fórmula parecida a la expresión compleja de la rotación en el plano:
$z'=wz$, con $w=e^{i\theta }$ cuando se gira alrededor del origen, y $z'=w(z-c)+c$ si se rota alrededor del punto $c$.

## Descubriendo la fórmula

Tomemos el ejemplo más sencillo: ¿Cómo expresar analíticamente la rotación alrededor de eje de los $x(O,i)$ con un ángulo de 90 grados?
El vector $i$ debe tener un papel. Miremos a la multiplicación por $i$ por la izquierda: $ij=k$ (como $i\times j=k$) e $ik=-j$ (como $i\times k=-j$).
Parece por lo tanto que la función $f:q\rightarrow iq$ es la respuesta a la pregunta. En el plano $(j,k)$ esa función rota de 90 grados. ¿Pero qué pasa en el resto del espacio?, $f(i)=ii=-1$ y $f(1)=i$. Por linealidad, nos damos cuenta que hace girar el plano $(1,i)$ de 90 grados también, y esto ¡no lo queremos! El punto $i$ tiene que permanecer inmóvil, y la función $f$ no tiene que enviar ni un punto del espacio usual $iR+jR+kR$ en la cuarta dimensión (aquí, en $1R$).
Como sabemos que la multiplicación no es conmutativa en $\mathbb {H}$, cuerpo de los cuaterniones, miremos al producto por la derecha, por $i$:
$g:q\rightarrow qi$. $q(j)=ji=-k$; $q(k)=ki=j$ lo que corresponde a la rotación inversa en el plano $(j,k)$. Pero $g(1)=i$ y $g(i)=-1$ da la misma rotación parásita que $f$ sobre $(i,j)$. Si tomamos la función opuesta (e inversa): $h=-g:q\rightarrow -qi=q(-i)$ nos damos cuenta que $h$ tiene la misma acción sobre el plano $(j,k)$ que $f$ pero la acción opuesta sobre $(1,i)$. Entonces $f$ y $h$ se compensan en $(1,i)$, pero se acumulan en $(j,k)$, y la función compuesta $m=foh(=hof):q\rightarrow iq(-i)$ deja el plano $(1,i)$ quieto, pero gira el plano $(j,k)$ dos veces de 90 grados, o sea de 180 grados:
$m(j)=ij(-i)=-iji=-ki=-j$ y $m(k)=-k$
Hemos obtenido por lo tanto una rotación alrededor de eje $(O,i)$, pero con un ángulo doble de lo deseado. Basta con dividir los ángulos de $f$ y $h$ por dos para obtener la fórmula.
$i=e^{i{\frac {\pi }{2}}}=\cos {\frac {\pi }{2}}+i\operatorname {sen} {\frac {\pi }{2}}=\cos 90^{\circ }+i\operatorname {sen} 90^{\circ }$
El número que corresponde al medio ángulo es
$e^{i{\frac {\pi }{4}}}={\frac {1+i}{\sqrt {2}}}=w$
y la función que realiza la rotación pedida es $r:q\rightarrow wq{\bar {w}}$.
Este raciocinio se generaliza a cualquier eje de rotación, y no solo a los tres ejes (O,i) (O, j) y (O, k). Si se quiere girar alrededor del eje (O,u) donde u es un vector unitario, hay que considerar el plano (1, u) y otro plano perpendicular (ortogonal) en $\mathbb {H}$, y emplear el número:
$\cos {\frac {\theta }{2}}+u\operatorname {sen} {\frac {\theta }{2}}$

## La fórmula

Sea $q=xi+yj+zk$ un punto (o un vector) del espacio, u un vector unitario del mismo espacio y θ un real. La rotación alrededor del eje (0,u) de un ángulo θ envía el punto q sobre el punto $q'=a'i+b'j+c'k$ dado por la fórmula:
$q'=hq{\bar {h}}$, donde $h=\cos {\frac {\theta }{2}}+u\operatorname {sen} {\frac {\theta }{2}}$
Para obtener la rotación alrededor de un eje (c,u), donde c es un punto cualquiera del espacio, basta con componer la función anterior por dos translaciones:
$q'=h(q-c){\bar {h}}+c$
Note que h es un cuaternión unitario, como en el caso de los complejos.
La fórmula resulta algo más complicada que en el plano complejo porque trabajamos en cuatro dimensiones con los cuaterniones pero queremos permanecer en el espacio usual de tres dimensiones. Una simple multiplicación, a la izquierda o a la derecha, daría dos rotaciones simultáneas en dos planos perpendiculares (ortogonales) en el espacio tetradimensional.

## Ejemplo

Consideremos la rotación alrededor del eje (O, i + j + k), con un ángulo de 120º o sea 2π/3 radianes. Nos proponemos calcular la imagen del vector j. Puesto que el vector i + j + k no es unitario, lo dividiremos por su norma, con lo que obtenemos el siguiente vector unitario:
$u={\frac {i+j+k}{\sqrt {3}}}$
El medio ángulo es π/3, por lo tanto
$h=\cos {\frac {\pi }{3}}+u\operatorname {sen} {\frac {\pi }{3}}={\frac {1+i+j+k}{2}}$
y su conjugado es
${\bar {h}}={\frac {1-i-j-k}{2}}$
El vector (o punto correspondiente) j será enviado en hjh$^~$.
$hj{\bar {h}}={\frac {(1+i+j+k)j(1-i-j-k)}{4}}={\frac {(j+k-1-i)(1-i-j-k)}{4}}$
y, distribuyendo los factores, hallamos:
$hj{\bar {h}}={\frac {(j+k+1-i)+(k-j+i+1)+(-1+i+j+k)+(-i-1+k-j)}{4}}={\frac {4k}{4}}=k$
Del mismo modo hallaríamos que hkh$^~$ = i e hih$^~$ = j, lo que da la expresión analítica de la rotación: $r(xi+yj+zk)=zi+xj+yk$