La respuesta de @Llin Lathrop es incorrecta. Desafortunadamente, no tengo la reputación ni de votar ni de comentar sobre su respuesta. Es curioso que haya elegido afirmar que lo que se está logrando en el documento que vincula no es físicamente posible ...
Como el artículo de madgwick demuestra que es posible mantener estimaciones de orientación estables durante largos períodos de tiempo utilizando Sólo un 9 DOF MEMS MARG. Su algoritmo también fue referenciado en un montón de hardware diferente de Kris Winer. Él, en particular, demuestra un rastreo virtualmente libre de desviaciones durante un período de media hora con ambos periodos de tiempo quietos y movidos. El error relativo de la orientación absoluta es menor que un grado durante este período de tiempo. De manera impresionante, esto se logra sin recurrir a un filtro completo de Kalman y solo requiere operaciones escalares en lugar de necesitar la inversión computacionalmente costosa de la matriz requerida por un filtro de Kalman.
Mirándolo a través de la lente de la observabilidad, el problema de la estimación de la orientación es un problema con seis estados acoplados. 3 estados para la orientación en sí y 3 estados para las derivadas de la orientación (es decir, las tasas angulares)
Obviamente, los giroscopios permiten la medición directa de los últimos tres estados. Esto deja el tema de los tres estados de orientación. Suponiendo que hay un campo gravitatorio estático y un campo magnético que no están alineados, podemos corregir dos de las tres direcciones. La estructura del sistema de coordenadas impone restricciones en la relación entre las tres direcciones permitiendo que la tercera sea fijada simplemente por construcción. Como tal, el sistema es observable, es decir, no, a diferencia de la afirmación de @Olin Lathrop, la "física" explícitamente le permite determinar la orientación completa incluso sin depender de ninguna integración. Como tal, su objeción con respecto al error de integración es completamente infundada.
Dicho esto, la integración sigue siendo un proceso útil, ya que permite que se realice la fusión del sensor, lo que quiere decir que esencialmente está realizando un mejor ajuste entre las posiciones incrementales de la velocidad angular implícita y las orientaciones absolutas incrementales directamente medidas. Dado que es probable que no estén correlacionados, ya que miden tres fenómenos físicos completamente separados, le permiten mejorar significativamente la precisión y la solidez de su estimación de orientación.
Esto nos lleva al problema que usted planteó con respecto al origen del límite de frecuencia inferior en la precisión de seguimiento. Al no ser el autor del algoritmo y solo haberlo utilizado como un componente en una solución más grande donde su desempeño fue adecuado, no he investigado personalmente cada línea de cada ecuación en el documento, pero dicho esto es la naturaleza temporal del problema. de hecho apunta a algo relacionado con los pasos de tiempo.
La integración numérica en sí misma puede contribuir, pero es probable que no sea el principal impulsor, ya que su rendimiento debería ser razonablemente robusto frente a pasos de tiempo más grandes. Me gustaría ver el descenso de gradiente de un solo paso (segundo párrafo en la página 7 del documento vinculado) que se está utilizando como algoritmo de optimización para ajustar las observaciones del sensor a los campos supuestos. En frecuencias más altas, esta simplificación es probablemente suficiente, ya que no hay mucho tiempo para que los dos divergan y se puede llegar a una estimación razonable después de una sola iteración. A medida que reduce la velocidad del algoritmo, es probable que este no sea el caso y que deba repetir hasta obtener un término de error razonable.
En resumen, definitivamente puedes seguir la orientación usando un sensor 9DOF MEMS. No tengo claro por qué está intentando ejecutar este algoritmo tan lentamente como lo está haciendo, pero hay algunos puntos en el algoritmo para verificar si desea mejorar el límite inferior, pero tenga en cuenta que tendrán una sobrecarga significativa, lo que significa que si La razón por la que está teniendo este problema es porque es lo mejor que su hardware puede lograr (tal vez debido a otras tareas en segundo plano), por lo que recomendaría descargar tareas en segundo plano o actualizar el hardware para mejorar su tasa en lugar de intentar modificar el algoritmo. En términos generales, los sistemas AHRS e IMU deben ejecutarse a la tasa más alta posible en hardware dedicado, ya que su rendimiento tiende a tener implicaciones bastante importantes para el resto de su sistema.