Convertir la salida de cuaternión del MPU-6050 a ángulos YPR

1

Estoy usando la biblioteca I2Cdev que configura el MPU-6050 para usar su DMP y generar una salida de cuaternión en su FIFO. El problema es que cuando ese número de cuaternión se convierte en ángulos de giro, inclinación y giro, los ángulos de giro y giro se limitan a + -90 grados (esta restricción proviene de las funciones trigonométricas inversas utilizadas en las ecuaciones).

Qué ecuaciones deben usarse para convertir el número de cuaternión en los ángulos de Euler que proporcionan información completa sobre la orientación del sensor.

    
pregunta Vasil Kalchev

1 respuesta

2

Antes de responder, debo tener en cuenta que el uso de cuaterniones tiene algunos beneficios:

  • Evitan el bloqueo de cardán (importante para dispositivos que pueden estar al revés)
  • Las transformaciones y multiplicaciones de cuaterniones generalmente requieren menos operaciones matemáticas que los ángulos de Euler

Dicho esto, consultaría el artículo Representing Attitude de la Universidad de Stanford.

Para resumir, la ecuación 452 establece que:

$$ \ begin {bmatrix} \ psi \\ \ theta \\ \ phi \ end {bmatrix} = \ begin {bmatrix} Y \\ P \\ R \ end {bmatrix} = \ begin {bmatrix} \ mathrm {atan2} \ left (-2q_1q_2 + 2q_0q_3, \; q_0 ^ 2 + q_1 ^ 2 - q_3 ^ 2 - q_2 ^ 2 \ right) \\ \ mathrm {asin} \ left (2q_1q_3 + 2q_0q_2 \ right) \\ \ mathrm {atan2} \ left (-2q_2q_3 + 2q_0q_1, \; q_3 ^ 2 - q_2 ^ 2 - q_1 ^ 2 + q_0 ^ 2 \ right) \ end {bmatrix} $$

Wikipedia tiene una buena explicación de atan2 , si la necesita.

    
respondido por el Caleb Reister

Lea otras preguntas en las etiquetas