We are using a BNO055 sensor in one of our projects, to achieve below-mentioned functionalities,
1] To calculate the distance by double integrating the linear acceleration.
2) Rotation of the video stream based on the angle received from the Gyroscope.
We are facing a problem with distance calculation functionality as described below.
*BNO055 is configured in NDOF sensor fusion mode and kept in idle position.
* Even when there is no movement, there is a considerable amount of noise present in the linear acceleration data.
* This results in a cumulative error, which is around a few meters in a couple of minutes only.
* Please suggest a way to reduce the noise, or anything to take care of during distance calculation.
Also, let me know if the sensor is suitable for screen rotation functionality.
Thanks for your inquiry.
We don't recommend to use linear acceleration to obtain distance by double integration, because little noise in linear accelerations will accumulate to large distance error at distance = 0.5 * a * t^2. For example, if the linear acceleration 'a' has 1mg noise which is 1 * 0.001 * 9.81m/s^2 = 0.00981m/s^2. At 100 seconds of time, the distance error = 0.5 * 0.00981 * 100^2 = 49m.
Additional filtering after BNO055 linear acceleration output will reduce the noise, but this will have delay for the motion. It is a trade-off.
In order to avoid distance increasing when the object is at rest, you may set a dead-zone for linear acceleration output of BNO055. For example, when abs(a) < 3mg, then a = 0.
BNO055 9DoF sensor fusion can output Euler angles (pitch/roll/heading) at 100Hz. You can use this data to do screen rotation.