IMU - Cómo calcular la orientación en un entorno agitado

Estoy tratando de calcular la orientación en un sensor IMU. Hasta ahora lo estoy haciendo calculando el ángulo de inclinación y funciona bien:

float pitch = atan2(-obj.x, sqrt(obj.y*obj.y + obj.z*obj.z)) * 180/M_PI;.

Mi problema es cuando el sensor tiembla mucho (aunque indica la misma orientación), es decir, el tono cambia drásticamente y pierde la orientación correcta.

¿Hay alguna manera de evitar este comportamiento? Lo que pensé hacer es almacenar el tono anterior y compararlo con el tono actual y si difieren +-20%* entre sí, ignoro el valor de orientación. Obviamente, esto no funcionará si el sensor se agita continuamente.

¡Gracias de antemano!

*20 es solo un número aleatorio

filtro de paso bajo ...

Respuestas (1)

Un acelerómetro MEMS mide aceleraciones de todo tipo en sus tres ejes, ya través de este ruido se debe deducir el vector gravitatorio. Cuando el sistema está en reposo total, el ruido de aceleración es mínimo y las matemáticas simples funcionan bien. Pero cuando está en movimiento, o más específicamente en un entorno de energía vibratoria que va en diferentes direcciones, se vuelve muy difícil.

Mi sugerencia es filtrar los valores x, y y z de su acelerómetro antes de su cálculo de tono, luego filtre la salida de su cálculo de tono.

Si tiene una forma de descargar datos de su sistema en tiempo real, podría graficar lo que está haciendo la salida de su acelerómetro. Luego puede simular y ajustar los filtros para que se adapten mejor a su aplicación.

Los filtros de ejemplo incluyen IIR, FIR, mediana, promedio, Kalman, etc. Cada uno lleva sus fortalezas y debilidades. También puede combinarlos un poco, según lo que necesite su aplicación.

Lo que probablemente encontrará es que en realidad es muy difícil tener una lectura estable en el vector gravitatorio en un entorno con muchas vibraciones. Como resultado, el chip IMU incluye el giroscopio. El giroscopio le proporcionará datos de velocidad angular que son muy útiles, pero están sujetos a cantidades muy significativas de deriva (como varios grados por segundo). Estos dos sensores muy imperfectos deben combinarse para determinar su orientación en comparación con la gravedad. Los enfoques comunes son:

  • Filtro de paso alto el giroscopio y filtro de paso bajo el acelerómetro.
  • Confíe en el giroscopio para la orientación a corto plazo e intente corregir los errores con los datos del acelerómetro a largo plazo.
¡Muchas gracias por su respuesta! Definitivamente probaré sus sugerencias y le haré saber cómo fue.