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.
I can reproduce this behavior on our platform and see the offset from linear acceleration.
The possible solution is to use output from gyro to do post processing (compensation again).
If gyro output is less than defined threshold, the device can be treat as no motion or in constant motion. this means the linear acceleration should be 0. the output from certain axis can be log as offset.