BNO055 Sudden jumps in heading
I'm using the BNO055 in a small robot car. I'm using the BNO055 in NDOF mode, and all other settings at default. Most of the time the heading is perfectly fine with very little drift even in extreme situations like when the car is doing donuts. However, sometimes (once every few minute, perhaps) the heading makes an instantaneous jump of around 20 to 90 degrees. The heading will then usually start drifting back towards the previous heading, but sometimes stop before it gets there (might be interrupted by motion). I know that several jumps have occured while the car was completely stationary (its an electric RC car, so there are very little vibrations when the car is not moving). Similar jumps have also been observed when the sensor was not mounted to the car.
The code reads the quaternions over i2c (the euler angles on the BNO055 are never touched) and the resulting heading is visualized in rviz (visualisation program that's part for the robot operating system), so it's unlikely that there is an error related to faulty conversion to euler angles.
I currently do not have any loggs at hand, but I might get some latter if needed.
Edit with some more info: The sensor is mounted on the adafruit 9 DoF sensor breakout, and the car is driven indoors.
Re: BNO055 Sudden jumps in heading
In order to validate the output, we would need the datalog of timestamp, accelerometer, gyroscope, magnetometer, calibration statuses, quaternions and of course an indication from your side on which timestamps to look for the jumps in heading.
Hypothesis: magnetic data not reliable
Heading is compensated by using magnetometer data, and the magnetic fields indoors are far from perfect. In addition, since you mention an RC car, I can assume that you have electrical motors with permanent magnets, a lithium battery that contains cobalt, and draw multiple amperes of electrical current. All of these factors can affect the magnetic field around the sensor and ruin your data integrity.
If the magnetic field is not stable, you can always use the IMU mode, or relocate the sensor further from the disturbances