Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 heading drift

    BNO055 heading drift



    Our application is using the BNO055 to determine the absolute orientation of the device. Currently, we are experiencing an issue where the heading drifts significantly after being stationary for a few minutes. The intended purpose is for the device to be able to give accurate orientation (primarily heading) at all times while the device is on. It appears to be fine when there is movement, however, when stationary for a few minutes, the drift will occur. After various tests, it will continue to drift in the same direction. 

    This is a major issue for us, as our application needs to be able to retain a high level of orientation accuracy, no matter the circumstance. Is there any possible solution to this, whether it is calibration, or another configuration? If there is a solution involving extra calibrations, the calibration would need to be done in production or quick to implement in the field.

    Thanks in advance!

    5 REPLIES 5

    Community Moderator
    Community Moderator

    Hello jspear16,

    Sensor fusion software runs the calibration algorithm of all the three sensors(acc, gyro, mag) in the background.
    What is the calibration status of your BNO055?

    I just recorded this data from our device. Each sample is given as follows:

    10:28:24.980 R= -01504 P= -5429 H= +22188
    10:28:24.980 SYS= 0 GYR= 2 ACC= 3 MAG= 3

    There are 3 lines per sample, each beginning with the local timestamp (CST). The first line is giving the Roll, Pitch, and Heading, while the second line is giving the Calibration Statuses. The third line is for ease of reading.

    For this simple test, the BNO055 was calibrated beforehand, then mounted onto our device. The device was pointed at a specific target, data recorded, laid down, then pointed at the target again where the data was recorded again. The two datapoints recorded were roughly five minutes apart, and here they are (they can be observed in the .txt file as well).

    10:44:06.949 R= -00312 P= -0066 H= +24609
    10:44:06.949 SYS= 3 GYR= 3 ACC= 3 MAG= 3

    10:49:51.954 R= -00115 P= -0069 H= +23716
    10:49:51.954 SYS= 3 GYR= 3 ACC= 3 MAG= 3

    The change in heading between these two tests was 8.93 degrees.

    Community Moderator
    Community Moderator

    Hello jspear16,

    See it from your log file, all cabration status are ok.

    Do you mean is all the data in the log recorded same direction without movement?

    Essentially, we are pointing the device at a specified heading, arbitrarily laying the device down on a table, waiting five minutes, then pointing the device back at the specified heading. The two points specifically listed where the two recordings taken before and after the five minute mark. At these two points, the device is pointing at the same exact spot, but the reading is off by nearly 9 degrees. 

    To give a little more information, since this thread was started, we have changed some settings (switched to FMC ON mode, and significantly increased the no motion duriation threshold to prevent the BNO055 from being placed into Low Power mode). This has shown some good improvements. If there is any other advice on making sure the device can reproduce consistent data after long periods of remaining stationary, that would be very helpful. However, improvements have been made, so if there is no other advice, I will close this thread.