He probado varios algoritmos para obtener cabeceo, balanceo y guiñada bajo aceleraciones y vibraciones lineales continuas (inferiores a 0,4 g, frecuencia inferior a 10 HZ). Ninguno de ellos da buenos resultados porque las lecturas se desvían o se ven demasiado afectadas por las aceleraciones lineales. Lo que quiero lograr es que cuando la aceleración externa sea inferior a +-0,4 g, el error de cabeceo y alabeo sea inferior a +-1 grado.
He probado estos algoritmos:
Algoritmo de Madgwick . Cuando la ganancia Beta se configura muy alta, la convergencia es rápida pero los ángulos son más susceptibles a las aceleraciones lineales. Lo sintonicé y reduje el error bajo aceleraciones lineales hasta +-0.5 grados. Sin embargo, si la vibración es continua, las lecturas se desviarán y tardarán una eternidad en converger a los valores verdaderos. Tiene sentido porque bajo aceleraciones lineales, se confía más en el giroscopio y los ángulos calculados se desvían a medida que se desvía la integración del giroscopio.
Algoritmo de Mahony . Al contrario 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 aceleraciones lineales. (Errores mayores que +-6deg)
Filtro 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 la maquinilla de afeitar IMU . Sé que con sensores baratos es imposible lograr el mismo resultado que este .
Hay un par de opciones más como UKF, pero es difícil de entender o implementar.
Cualquier sugerencia es bienvenida.
En primer lugar, asegúrese de comprender dos puntos clave aquí:
La determinación de la actitud solo a partir de los datos de la IMU es inherentemente ambigua en presencia de aceleración lineal . Sin conocimientos adicionales sobre la naturaleza de las aceleraciones, siempre habrá un límite superior para la precisión que puede lograr.
La precisión está limitada por la deriva en las mediciones del giroscopio integrado . Con una integración y datos giroscópicos perfectos, los datos del acelerómetro no serían necesarios en absoluto. Cuanto más te acerques a la perfección, más podrás ignorar las aceleraciones.
La selección del algoritmo de orientación es en gran medida irrelevante aquí. Todos ellos funcionan con el mismo principio: usar la dirección de la aceleración gravitacional para corregir la deriva de los datos del giroscopio 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.
Entonces, hay esencialmente dos cosas que puedes hacer.
La segunda opción es difícil de discutir porque depende de los detalles de la moción que esté estudiando. Hay algunos trucos simples como descartar o reducir el peso de las aceleraciones fuera de un rango determinado. Esencialmente, estos se reducen a modelar las aceleraciones lineales como breves ocurrencias solamente. Si su sistema está en movimiento continuo, no son de mucha ayuda.
Sin embargo, hay varias cosas que puede hacer para mejorar la integración de su giroscopio:
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 de consumo si están suficientemente bien caracterizados y calibrados.
C. Towne Springer
Timtianyang
C. Towne Springer
Timtianyang