Saltar al contenido

Cómo calcular el ángulo a partir de la matriz de rotación

Agradeceríamos tu ayuda para extender nuestras secciones con relación a las ciencias informáticas.

Podemos obtener los ángulos de Euler de la matriz de rotación usando la siguiente fórmula.

Dada una matriz de rotación de 3×3

ingrese la descripción de la imagen aquí

Los 3 ángulos de Euler son

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Aquí atan2 es la misma función de arco tangente, con verificación de cuadrante, que normalmente se encuentra en C o Matlab.

Nota: Se debe tener cuidado si el ángulo alrededor del eje y es exactamente +/-90°. En ese caso, todos los elementos de la primera columna y la última fila, excepto el de la esquina inferior, que es 1 o -1, serán 0 (cos(1)=0). Una solución sería fijar la rotación alrededor del eje x en 180° y calcular el ángulo alrededor del eje z a partir de: atan2(r_12, -r_22).

Consulte también https://www.geometrictools.com/Documentation/EulerAngles.pdf, que incluye implementaciones para seis órdenes diferentes de ángulos de Euler.

Si R es la matriz de rotación (3×3), entonces el ángulo de rotación será acos((tr(R)-1)/2), donde tr(R) es la traza de la matriz (es decir, la suma de los elementos de la diagonal).

Eso es lo que pediste; Estimo un 90% de posibilidades de que no sea lo que quieres.

Para su referencia, este código calcula los ángulos de Euler en MATLAB:

function Eul = RotMat2Euler(R)

if R(1,3) == 1 | R(1,3) == -1
  %special case
  E3 = 0; %set arbitrarily
  dlta = atan2(R(1,2),R(1,3));
  if R(1,3) == -1
    E2 = pi/2;
    E1 = E3 + dlta;
  else
    E2 = -pi/2;
    E1 = -E3 + dlta;
  end
else
  E2 = - asin(R(1,3));
  E1 = atan2(R(2,3)/cos(E2), R(3,3)/cos(E2));
  E3 = atan2(R(1,2)/cos(E2), R(1,1)/cos(E2));
end

Eul = [E1 E2 E3];

Código proporcionado por Graham Taylor, Geoff Hinton y Sam Roweis. Para obtener más información, consulte aquí

Ten en cuenta difundir este escrito si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *