The device is mounted on a testing device that has some external reference marks for having known positions.
Besides that, please answer if is it possible that the Game Rotation Vector drifts over time?
As far as I know, the main difference between the Rotation Vector and the Game Rotation Vector is that the first one is based on the accel/gyro/mag, while the second one is based on accel/gyro.
So the Rotation Vector creates an absolute frame of reference that depends on two absolute magnitudes: gravity and Earth's magnetic field. Which are perpendicular to each other.
On the other hand, the Game Rotation Vector is based only on gravity. So, I suppose that for getting the actual position of the device, the Fusion algorithms must basically integrate the acceleration and velocity of the accelerometer and gyroscope respectively. And we know that integration means the accumulation of errors over time.
So I just want to be sure if all this is correct, maybe the Fusion library does something else, but I don't think so.
Have you calibrated the sensor before using it? Because the sensor may calibrate it self during usage. We need to make sure accuracy of both accel and gyro are 3 before using other virtual sensor.
Yes, I've calibrated the sensor before using it. I follow the steps explained in this video:
The video is for BNO055, and it really works for BNO055. But it does not work for BHI260. The accuracy for accel would not change if I use the same way as BNO055.
So you should use the traditional 6 direction calibration method for accelerometer, and make sure both accuracy of accelerometer and gyro to be 3 before using game rotation vector.
What is the "traditional 6 direction calibration method" exactly? Is that a static offset compensation or is it a dynamic calibration procedure (similar to the BNO video I sent)?
Could you please give me further details about that 6 direction calibration?