IMO:
En primer lugar, debe implementar el algoritmo de fusión 9 DOF con un MCU de muy alta velocidad, para obtener una actitud a una alta frecuencia de muestreo. Este algoritmo fue implementado por Magdwick, creo que es el más usado para esos sensores MEMS, pero hay otros DCM, Kalman, ... algunos son mejores pero también tienen más carga computacional.
Luego, debe extrapolar la aceleración para cada eje XYZ e integrarla para obtener velocidad, y luego nuevamente para obtener la posición.
Anteriormente había hecho la integración de los datos del acelerómetro y comparé los resultados con una cámara de alta velocidad. La configuración consistió en un banco de carrera, cámaras de alta velocidad y un corredor con acelerómetro de 3 ejes con registro de datos en marcha, marcador, software de análisis de cámaras que genera las coordenadas 3D. Ambos registros se compararon en Matlab.
Los resultados fueron buenos, pero no satisfactorios, debido a la aceleración contrífuga durante la torsión, ... etc. El sensor era solo de 3 ejes acceleorometer. Entonces, la conclusión fue que necesitaría un estimador de actitud, también conocido como sensor IMU, y solo así podrá obtener los componentes filtrados.
problema 1:
La integración de la aceleración conduce a una velocidad infinita debido a la deriva. Mi primera suposición fue que la velocidad media es cero ya que el sujeto no se fue volando. Así que utilicé filtfilt () en Matlab para restar el valor medio (promedio móvil) de la velocidad calculada, dejando solo el cambio dinámico.
isuue 2:
La integración de la velocidad también da una fuga de posición. Segundo supuesto: la posición media es cero. Nuevamente, reste el promedio móvil del integrador.
número 3:
La cámara y el registrador de datos no estaban sincronizados, los XTAL no producían la frecuencia exacta y las tasas de muestreo eran ligeramente diferentes. La señal se tuvo que remuestrear en Matlab (manualmente).
Conclusión:
Magdwick algo usa cuaterniones, que no sé. Tal vez pueda encontrar una forma sencilla de descomponer la información de atuendo 3D y obtener solo la verdadera aceleración. Sobre todos los ejes. Otra opción es usar funciones trigonométricas, algunas MCU como cortex M4 tienen algunas instrucciones DSP básicas, por ejemplo, CORDIC (Computadora digital de rotación coordinada).