MetaMotionS: Unclear output data format
I am busy reverse engineering the C++ SDK for using the metamotionS in Dart.
For now I am rapid prototyping the config and start of the Sensor Fusion in Python.
I am able to get a stream of data on the notification gatt service, and its header indicaties it is indeed Sensor Fusion data.
However the data, when converted to float32, shows for a full rotation something like around 11.00.
This makes no sense to me.
I basically performed the same instructions as is done in the C++ SDK in mbl_mw_sensor_fusion_config and mbl_mw_sensor_fusion_start.
I tried to configure it for NDOF and Euler angles
The output in bytes after a full rotation:
[25, 8, 129, 240, 179, 67, 29, 93, 45, 65, 230, 105, 140, 188, 129, 240, 179, 67]
The first two bytes 25 and 8 is the header and indicates sensor fusion data in euler format, the the data has 4 floats for heading, pitch, roll, and yaw (MblMwEulerAngles).
Therefore the decoded data for heading, pitch, roll, and yaw is:
359.88, 10.84, -0.02, 359.88
What am I missing here, why do I get 10.84, where I would expect a full rotation (360 degrees, or just around 0).
(The values around 359,88 are there because of a slight negative rotation around that axis, not the axis I turned the full 360 degrees)
Thank you in advance!!!