06-15-2022 10:50 PM
Hi,
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?
Thanks!
10-19-2022 10:32 AM
Hi soroush,
Could we know how do you get Game Rotation Vector's accuracy in your C code?
10-19-2022 04:42 PM
We work with BHI160B. According to the BHI160(B) datasheet and GitHub repo, we get GRV's accuracy directly from the same data structure that quaternion elements are obtained:
BHI160_imu_data.rotVector.x = ((float) (data->data_quaternion.x)) * 0.00006103515625f;
BHI160_imu_data.rotVector.accuracy = data->data_quaternion.estimated_accuracy;
https://github.com/BoschSensortec/BHy1_driver_and_MCU_solution/blob/master/examples/rotation_vector_...
For the benefit of completeness, we warm start standalone BHI160B (uploading Acc/Gyro biases from the previous calibration process) and freshly perform stationary plus 6-face calibration before any test according to the provided calibration example on the GitHub repo until acc and gyro's accuracies go to 3.
12-14-2022 08:19 AM
Hi soroush,
For BHI160B, accuracy game rotation vector accuracy is 0 if you see it from callback function of virtual sensor.
But you could get accel, gyro, mag physical sensor accuracy from example code: https://github.com/boschsensortec/BHy1_driver_and_MCU_solution/blob/master/examples/calib_profile_ex...
do_calibrate:
...