I have been logging data for the last while with heading, calibration parameters and calibration status. I have been testing the sensor on a test bed to apply constant roll or pitch motion for a specifc angle and frequency so that I can change parameters and see results for identical mechanical input. The motor frequency is around 490Hz, the sensor itself is about 35cm away from the motors. I have also put a compass in the area around where the sensor is mounted, I am not seeing any sudden deflections. I have a number of observations, I have included these in the data log too. I have found that the pauses you recommended do improve the result, 60 seconds is a bit too long, it still drifted. Pausing every 20s for a duration of 2s is good. There are about 250seconds of instability after (physical) calibration before it settles. There are about 55 seconds of "lag" where (manual, software) calibration values are programmed (during setup) before they are visible in the calibration data outputs. Sys reports zero for all that time and then it changes to 3 at which point everything works fine. In another scenario I apply the same calibration at regular intervals during a standard 15min test, it works fine with only one zero value before returning the correct heading. The lag I suspect is potentially due to my startup routine, I see other users on the forum talking about initialisation sequences for the sensor so I'm currently looking at that. While the pause approach helps significantly , ideally we don't want to pause the robot as when people are watching it operate it looks like something is wrong when it intermittently stops.
... View more