Using BNO055 to prevent robot angular drift


I'm making a robot with 4 CC motors, controled by commands on SD card (90° right, 90° left, X meters front).

To prevent the angular drift of the robot I try to use a BNO055 module of Adafruit.I also use them to turn 90° to the left or the right.

It seem to be OK to turn but I think the sensor can't detect small angular drift when the robot run in straight line. (It's only a doubt not a affirmation).

So I made some tests by hand with the sensor and if I rotate the sensor and put them on it's initial position, the position reading are not the same. Do you know why ?

when just start, sensor seem to be in relative mode and after some time in absolute mode. It is possible to only use relative mode ? it is accurate for my case ?
I will search if it's possible to desactivate the magnetometer, I think it's not good using them with the magnetic flield of the four motor and the alloy of the robot.

Thanks for your help.

The sensor is not calibrated. See this tutorial and this video.

In order to detect the yaw angle, the magnetometer is required.

I post my question on Adafruit's forum as the sensor came from us :slight_smile: