Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BNO055 Linear Acceleration Offset

    BNO055 Linear Acceleration Offset


    Hi all,

    I'm using the BNO055 to get linear acceleration values. How ever when the sensor is at rest there is an offset in the linear acceleration.
    The offset occurrs only on the axis that is pointing in the direction of gravity.

    Let's say the sensor is on flat table, then the readings of the gravity vector provide a value of arround +9.8 m/s^2 for the z-axis. The linear acceleration of the z-axis provides a value of arround -0.2 m/s^2, whereas the other two axes provide a linear acceleration value of arround 0.1 m/^2.
    After rotating the sensor such that gravity vector in y-direction is arround +9.8m/s^2, the linear acceleration of the y-axis is arround -0.27 m/s^2, whereas the linear acceleration of the other two axes is around 0.01 m/s^2.
    The same happens if the gravity vector is negative, then the linear acceleration offset is in the positive direction.

    It seems like the linear acceleration has an offset in the opposite direction of gravity, when gravity is along a single sensor axis.


    Is there a way to compensate this offsets? As the offset value itself is not the same for all three axes.

    7 REPLIES 7

    Community Moderator
    Community Moderator

    Can the post processing suggestion helping you to solve this issue?  


    I'm facing with the exact same problem. Could you please describe in more detail, how to compensate this offset? I believe it will not work, if I simply measure it by hand for each axis and then substract it from the output values, because it seems to be correlated somehow to the orientation of the device.  Could you please specify the algorithm?

    Community Moderator
    Community Moderator

    I'm suggest the following two method: 

    1. perform the fast offset calibration in sensor level and store the offset value into sensor NVM. 

    2. since pure linear movement is not quite easy to achieve in real world,  we can use gyro output as further compensate.  If gyro output is 0,  then we can also do offset compensate for linear acc. 

    But if your use case is able to get pure linear movement, then item 2 is not feasible any more.