I was doing tests with my Application Board and a BHI160 Shuttle board.
I'm running the Development Desktop application and reading both the Game Rotation Vector and the Rotation Vector simultaneously, and drawing the w,x,y, and x curves for each of them in real-time.
At the beginning of the test all seem to be pretty normal, both virtual sensors present the same curves. But at some point the Rotation Vector presents a discontinuity. From that moment onwards the Rotation Vector curves are different from the Game Rotation Vector curves.
See below picture for having a clearer understanding:
I have a custom board with a BHI260AB on it and it's presenting the same behavior.
I recently added a BMM150 magnetometer to my board and wanted to change from using the Game Rotation Vector to the Rotation Vector for better accuracy. But unfortunately, I'm having that strange behavior of the Rotation Vector.
Could you please help me to understand what's happening and to find a way for solving the issue?
Hello BSTRobin, thank you for your reply.
I think that it happens if I start the test and do movements with the physical sensors not calibrated, or with low accuracy. If I refresh the right panel before the discontinuity event the accelerometer and magnetometer are with low accuracy (1~2). And right after the discontinuity event, I refresh the right pannel and all the sensors are with full accuracy.
We observe the same behaviour quite frequently on a custom board for BHI160B with the provided C driver. When the discontinuity happens in Quaternion, both accelerometer's and gyroscope's accuracies are already 3, Game Rotation Vector's accuracy is always at 0 (seems it is supposed to be according to the datasheet) but we still observe discontinuity in quaternions.
Has anyone figured out how to solve this problem?