Ir al contenido

Cuaternios

Los cuaternios son una extensión de los números reales, similar a la de los números complejos. Presentan cuatro coordenadas y ofrecen ventajas sobre otros métodos de descripción espacial, ya que tienen una composición simple y son eficientes. Sin embargo, solo representan la orientación relativa. Empresas como ABB utilizan cuaternios en la robótica.

Un cuaternio se representa de la siguiente manera:

Q=q0e+q1i+q2j+q3k=(s,v)Q = q_{0}e + q_{1}i + q_{2}j + q_{3}k = (s, v)

donde s es la parte escalar y v es la parte vectorial.

Los cuaternios tienen las siguientes propiedades para realizar transformaciones:

  • Conjugación: El conjugado de un cuaternio se obtiene invirtiendo el signo de su parte vectorial, manteniendo la parte escalar: Q=(q0,q1,q2,q3)=(s,v)Q' = (q_{0}, -q_{1}, -q_{2}, -q_{3}) = (s, -v)
  • Producto: El producto entre dos cuaternios Q1Q_{1} y Q2Q_{2} se define como: Q1Q2=(s1,v1)(s2,v2)=(s1s2v1v2,v1v2+s1v2+s2v1)Q_{1} \cdot Q_{2} = (s_{1}, v_{1}) \cdot (s_{2}, v_{2}) = (s_{1}s_{2} - v_{1}v_{2}, v_{1}v_{2} + s_{1}v_{2} + s_{2}v_{1})
  • Suma: La suma de dos cuaternios Q1Q_{1} y Q2Q_{2} se define como: Q1+Q2=(s1,v1)+(s2,v2)=(s1+s2,v1+v2)Q_{1} + Q_{2} = (s_{1}, v_{1}) + (s_{2}, v_{2}) = (s_{1} + s_{2}, v_{1} + v_{2})
  • Producto escalar: El producto escalar de un cuaternio Q1Q_{1} por un escalar kk se define como: kQ1=k(s1,v1)=(ks1,kv1)kQ_{1} = k(s_{1}, v_{1}) = (ks_{1}, kv_{1})
  • Norma: La norma de un cuaternio QQ se calcula como la raíz cuadrada del producto de QQ por su conjugado QQ': Q=QQ=q02+q12+q22+q32||Q|| = \sqrt{Q \cdot Q'} = \sqrt{q_{0}^{2} + q_{1}^{2} + q_{2}^{2} + q_{3}^{2}}
  • Inverso: El inverso de un cuaternio Q no nulo se calcula dividiendo su conjugado por su norma al cuadrado: Q1=Q/Q2Q^{-1} = Q' / ||Q||^{2}

Representación y Composición de Rotaciones

Sección titulada «Representación y Composición de Rotaciones»
  • Representación: Un cuaternio puede representar una rotación de un ángulo ϕϕ alrededor de un eje aa: Q=rotacioˊn(a,ϕ)=(cos(ϕ/2),asin(ϕ/2))Q = rotación(a, ϕ) = (\cos(ϕ/2), a*\sin(ϕ/2))
  • Rotación de un vector: Para rotar un vector pp usando un cuaternio QQ, se aplica la siguiente operación: p=Q(0,p)Q1p' = Q \cdot (0, p) \cdot Q^{-1}
  • Composición: La composición de rotaciones se logra multiplicando los cuaternios correspondientes. Esto tiene la ventaja de ser simple ya que solo involucra la multiplicación de cuaternios.

Los cuaternios son equivalentes a las matrices de transformación homogénea, pero se usan de manera diferente. Es posible pasar de cuaternios a matrices de transformación homogénea y viceversa mediante la representación auxiliar intermedia del eje y ángulo de rotación.

  • Relación directa: La matriz de transformación se puede expresar en función de un cuaternio QQ:

    T=[q02+q1212q1q2q3q0q1q3+q2q00q1q2+q3q0q02+q2212q2q3q1q00q1q3q2q0q2q3+q1q0q02+q321200001] T = \begin{bmatrix} q_{0}^{2} + q_{1}^{2} - \frac{1}{2} & q_{1}q_{2} - q_{3}q_{0} & q_{1}q_{3} + q_{2}q_{0} & 0 \\ q_{1}q_{2} + q_{3}q_{0} & q_{0}^{2} + q_{2}^{2} - \frac{1}{2} & q_{2}q_{3} - q_{1}q_{0} & 0 \\ q_{1}q_{3} - q_{2}q_{0} & q_{2}q_{3} + q_{1}q_{0} & q_{0}^{2} + q_{3}^{2} - \frac{1}{2} & 0 \\ 0&0&0&1 \\ \end{bmatrix}
  • Relación inversa: Se puede obtener la relación inversa igualando la diagonal de la matriz TT anterior, obteniendo:

    q0=12T1+T2+T3+1q1=12T1T2T3+1q2=12T1+T2T3+1q3=12T1T2+T3+1\begin{array}{ccl} q_{0} &=& \frac{1}{2} \sqrt{T_{1} + T_{2} + T_{3} + 1} \\ q_{1} &=& \frac{1}{2} \sqrt{T_{1} - T_{2} - T_{3} + 1} \\ q_{2} &=& \frac{1}{2} \sqrt{-T_{1} + T_{2} - T_{3} + 1} \\ q_{3} &=& \frac{1}{2} \sqrt{-T_{1} - T_{2} + T_{3} + 1} \\ \end{array}