algoritmo AHRS bajo aceleraciones lineales continuas

9

He intentado varios algoritmos para obtener cabeceo, balanceo y giro bajo aceleraciones y vibraciones lineales continuas (más pequeñas que 0.4 g, frecuencia más baja que 10 Hz). Ninguno de ellos da buenos resultados porque las lecturas se desvían o se ven afectadas por las aceleraciones lineales. Lo que quiero lograr es que cuando la aceleración externa sea más pequeña que + -0.4g, el error en el tono y la tirada sea menor que + -1deg.

He probado estos algoritmos:

  1. Algoritmo de Madgwick . Cuando la ganancia Beta se establece muy alta, la convergencia es rápida pero los ángulos son más susceptibles a las aceleraciones lineales. Lo afiné y reduje el error en aceleraciones lineales a + -0.5deg. Sin embargo, si la vibración es continua, las lecturas se desviarán y tomará una eternidad converger a los valores reales. Tiene sentido porque bajo las aceleraciones lineales, se confía más en el giro y los ángulos calculados se desvían a medida que la integración del giro gira.

  2. El algoritmo de Mahony . Al contrario que el de Madgwick, no se desvía en absoluto, independientemente de los valores que use para Ki y Kp. Sin embargo, siempre se ve afectado por las aceleraciones lineales. (Errores mayores que + -6deg)

  3. Filtro de Kalman tradicional . Se ha dedicado mucho tiempo a ajustar esos enormes vectores R y Q. Hasta ahora tiene el mismo rendimiento que el de Mahony.

Estoy usando maquinilla de afeitar IMU . Sé que con sensores baratos es imposible lograr el mismo resultado que éste .

Hay un par de opciones más, como UKF, pero es difícil de entender o implementar.

Cualquier sugerencia es bienvenida.

    
pregunta Timtianyang

1 respuesta

2

En primer lugar, asegúrese de entender dos puntos clave aquí:

  1. La determinación de actitud a partir de los datos de IMU solo es intrínsecamente ambigua en presencia de aceleración lineal . Sin un conocimiento adicional sobre la naturaleza de las aceleraciones, siempre habrá un límite superior a la precisión que puede alcanzar.

  2. La precisión está limitada por la desviación en las mediciones del giroscopio integrado . Con la información y la integración perfectas de los giroscopios, los datos del acelerómetro no serían necesarios en absoluto. Cuanto más te acercas a la perfección, más puedes ignorar las aceleraciones.

La selección del algoritmo de orientación es en gran medida irrelevante aquí. Todos ellos funcionan según el mismo principio: usar la dirección de la aceleración gravitacional para corregir a la deriva los datos del giro integrado, con una cantidad variable de ponderación entre los dos. Si ha intentado ajustar los parámetros y no ha logrado los resultados que desea, es poco probable que lo haga mejor con un algoritmo diferente.

Por lo tanto, hay básicamente dos cosas que puedes hacer.

  1. Mejora la precisión de tu integración de giro.
  2. Modele la naturaleza de las aceleraciones lineales de alguna manera.

La segunda opción es difícil de discutir porque depende de los detalles del movimiento que está estudiando. Hay algunos trucos simples como descartar o des-ponderar aceleraciones fuera de un rango determinado. Esencialmente, estos se reducen a modelar las aceleraciones lineales como ocurrencias breves solamente. Si su sistema está en movimiento continuo, no son de mucha ayuda.

Sin embargo, hay varias cosas que puedes hacer para mejorar la integración de tu giro:

  1. Obtenga la mejor estimación posible de sesgo de giro . Tome lecturas estáticas del giroscopio durante varios segundos inmediatamente antes del uso, y promedie éstas para obtener sus valores de compensación. No confíe en una calibración previa única.
  2. Intente minimizar la deriva debido a la temperatura. Deje que la IMU se caliente hasta alcanzar una temperatura de funcionamiento estable antes de la calibración / uso. Trate de mantenerlo a una temperatura constante durante la operación.
  3. Mejore su modelo de calibración. Considere la posibilidad de incluir efectos de eje transversal y no linealidad, así como solo escala y compensación.
  4. Use un mejor método de integración. Ya hay algunas ideas en los comentarios sobre su pregunta.
  5. Vea si puede realizar un seguimiento de la deriva del giroscopio. Si el algoritmo de orientación tiene que corregir la deriva de forma consistente en una dirección particular, esto se puede detectar y usar para ajustar suavemente los valores de sesgo.

Tiene razón en que los sensores que está utilizando no son del grado más alto disponible. Sin embargo, es posible obtener muy buenos resultados de los sensores del consumidor si están suficientemente bien caracterizados y calibrados.

    
respondido por el Martin L

Lea otras preguntas en las etiquetas