We are working on an encoder+gyro navigation system, but we are having some problems. Namely, we had our gyro all calibrated, and were working on using the position/angle information from our navigation system to go places and do things.
However, our gyro angle had mysteriously become wildly inaccurate. At first, we suspected damage, or at least a permanent calibration change, caused by slamming the robot into the wall several times yesterday (by the build team, not us ). We noticed that the gyro bias had shifted from where it usually was; so, in order to recalibrate, we took our robot out into the hall to find a clear wall to put the robot against after turning it a few times. After a few minutes, though, the bias was back to normal, and the angles perfect.
We took our robot back into our lab, where it is a good 10 degrees F hotter, and went back to work, but the angles were again off, and our bias had drifted again. We eventually tried holding a warm hand against the gyro chip, and found that temperature easily changed the bias point by a significant amount.
Thus, we concluded that we need to account for temperature somehow in order to maintain reliable angles under all conditions. Reading the data sheets hasn’t produced much on how to calibrate for temperature, so I’d like to know if anyone else has found a way around this problem.
The Kevin Auto-Biasing code is, we assume, meant to partially account for this. However, we would prefer to hardcode our bias instead of having to rely on a stationary robot for 5 seconds. Also, we think, but have not confirmed, that temperature will affect the calibration factor, which is not addressed at all by the Kevin Gyro Code. Has anyone else tackled this problem successfully?