WouterOddBot
I guess it would be worth checking out which part of the rotation vector causes the issues. I would assume the gyro is to blame due to slow rotations + drift. Since we can't really access the firmware of the IMU itself, perhaps there is something we can do to work around the issue.
I'm just going to paste down some possible ideas from the IMU datasheet.
ACC - If the device moves in a planar fashion:
In addition, as the BNO08X has applications in devices such as Robot Vacuum Cleaners it is necessary to
calibrate the accelerometer in a planar fashion (i.e. around the axis that the vacuum cleaner revolves). Selection
of 3D or planar accelerometer calibration is via command.
GYRO- We can possibly disable ZRO calibration
Note that though the BNO08X can continuously attempt to calibrate the gyroscope for ZRO, it is possible to fool the
calibration algorithms through slow horizontal rotations (around the gravity vector). Placing the device on a stable
surface will force the ZRO calibration to converge rapidly. The gyroscope calibration algorithm attempts to remove
ZRO while the device is not on a very stable surface. For this to be successful the device to which the BNO08X is
mounted must have sufficient tremor such as the human hand. If there is insufficient tremor it is advisable to
disable the gyroscope calibration to prevent drift (i.e. by mis-calibrating ZRO).
I doubt there is a significant magnetometer disturbance present, but might be worth sanity checking.
Source:
https://www.ceva-dsp.com/wp-content/uploads/2019/10/BNO080_085-Datasheet.pdf pages 37-38.
Thanks,
Jaka