Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


Problems mems sensor fusion

Hello,

I use the demo FP-SNS-ALLMEMS1 firmware. For my application, I need to use the sensor fusion 6 axes (accelerometer + gyroscope) so I choose as a result the quaternion 6 axes.
The data returns by the sensor are weird: when I rotate physically the sensor to 90 degrees, i measure a rotation about 50-60 degrees! eek
Moreover, the sensor never finds its reference position.

The sensor fusion is from the MotionFX library. It implements a sensor fusion algorithm for estimation of 3D orientation in space. Based on Kalman theory to fuse data, there is two function:

  • MotionFX_propagate: estimate the orientation in 3D space. The gyroscope is given more weight in this phase.
  • MotionFX_update: adjusts the predicted value when necessary. In this phase, the accelerometer is given more weight.


In the program I only change the choice of the result of the quaternion 9 axes to 6 axes and activate the fusion for the 6 axes.
MotionFX_manager_start_6X();
MotionFX_Engine_Out->quaternion_6X

How can I fix it?