Los ángulos de Euler no son buenos para calcular las métricas, ya que no tienen simetrías adecuadas. Sugiero (ya que la pregunta está etiquetada en quaternions
) convierte sus dos orientaciones en cuaterniones $p$ y $q$ . Entonces:
En primer lugar, suponiendo que por distancia te refieras a la distancia entre dos rotaciones.
En segundo lugar, sabiendo que los cuaterniones tienen una doble cobertura del colector de rotación, es decir, $q$ y $-q$ representan la misma rotación.
Tercero, de segundo, decir que la "distancia" de cualquier cuaternión $q=(w,x,y,z)$ al cuaternión de identidad $(1,0,0,0)$ tiene sentido si $w>0$ . De lo contrario, para $w<0$ la distancia debe ser calculada a la "otra" identidad $(-1,0,0,0)$ que sí está más cerca; o de forma equivalente, se encontraría la distancia entre $-q$ y la verdadera identidad $(1,0,0,0)$ .
Cuarto, la distancia entre dos cuaterniones $p$ y $q$ se puede encontrar de la siguiente manera:
- toma $r = p^* q$ el cuaternión que une $p$ a $q$ . La distancia de $p$ a $q$ es ahora igual a la distancia de $r$ a $(1,0,0,0)$ (o a $(-1,0,0,0)$ (ver Tercero arriba).
- toma el tronco, $u\theta = \log(p^* q)$ , donde $u=[u_x,u_y,u_z]$ es un vector unitario que define el eje de rotación, y $\theta$ es la mitad del ángulo girado.
- la distancia es el ángulo girado, $\phi=2\theta$ .
Nota: al tener cuaterniones unitarios $q=[\cos(\phi/2), u_x \sin(\phi/2), u_y \sin(\phi/2), u_z \sin(\phi/2)]$ el registro se puede encontrar por inspección, pero si sólo se busca la distancia, esta distancia $\phi$ se puede encontrar con sólo:
- $r = p^* q$ como en el punto 1.
- si $r_w<0$ hacer $r \gets -r$ (cambiar el signo del cuaternión $r$ ).
- $\phi=2 \arccos(r_w)$ , donde $r_w$ es la parte real de $r$ .
Quinto. Se puede utilizar un atajo considerando sólo el doble del ángulo entre los dos cuaterniones vistos como 4'vectores, es decir $$ \cos \theta = p^\top q \rightarrow \phi = 2\theta = 2\arccos (p^\top q) $$ Si $\cos\theta<0$ , cambia el signo de uno de los cuaterniones y vuelve a empezar.
Toda esta información se puede encontrar aquí https://arxiv.org/abs/1711.02508