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?