Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMO055 Drift in Heading during continuous use

    BMO055 Drift in Heading during continuous use


    I have been using the BMO055 for the last few months as a heading sensor in our robot. There is
    noticeable drift in the heading reading which seems to happen in a number of scenarios:

    • Sudden Jolt/impact - This could happen in the first 5 seconds after operation throwing the heading off
    • Duration - If the robot operates continuously the heading drifts over time
    • Terrain - Depending on the roughness of the terrain the heading will drift from 30 to 90 degrees over the course of 5+ minutes

    These are some of the things I'm going to try

    • Store calibration values and intermittently overwrite the new values loaded by the fusion algorithm
    • Stop the robot moving at regular intervals to allow the sensors to recalibrate

    What other steps can I take to mitigate against these problems?

    7 REPLIES 7

    Community Moderator
    Community Moderator

    What is the column 3 in your data log?   I expect it is accel or gyro output on one axis,  is it right? 

    if that is the case,  i can see periodly vibration introduced by motor. 

    This means the heading drift is really affected by motor. 

    Can you consider to adding mechnical dumping to reduce the transition of vibration from motor to sensor?  

    And also move sensor even far away from motor?

    Pause can help also explain that the motor vibration will affect the sensor output.  During the pause,  sensor have chance to do self calibration to compensate the additional offset introduced by motor. 

    Apologies, columns 2, 3, 4 are the X, Y, Z orientation output, 5-13 are the calibration parameters.

    There is indeed vibration, I am intentionally inducing it as its running on a test bed to replicate the robot. 

    I practice there will be vibration as its mounted on a robot driving in rough terrain. There will be vibration from the following sources: 

    • Grips on the tyres interfacing with the ground
    • Roughness of the terrain
    • Sudden changes in direction
    • Physical contact with objects

    Mechanical damping might be possible to an extent. 

    Community Moderator
    Community Moderator

    Currently,  there is no too much option to improve the BNO055 performance according to vibration. 

    You can consider to use BMI088 which is target for robot application and have some vibration robust design introduced into sensor. 

    But in this case,  you need to run the sensor fusion in the host MCU which you may not willing to do so.

    Also pause is good option to improve the performance when we face similiar situation.