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?

Best reply by shiny

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. 

View original
7 replies
Resolved