Gyros going bad?

Has anyone else had issues with the gyro going bad or not working correctly? We have 2 fairly old (but lightly used) gyros, and one of them seems flat out bad (robot just meanders around as desired, no matter what programming is done) so we switched to the other. That one does well sometimes and strangely poorly other times.

We can seriously run the exact same code 5 times without changing a single thing and it will almost always get the balls from the wall and do the first 2 turns well, then maybe 1 time do the last turn correctly - but it does it a different way incorrectly pretty much every time (as in, sometimes it goes too far and sometimes it doesn’t go far enough, and by different amounts of “off”, which makes fixing the problem an exercise in frustration!).

Misc - we’ve found that if we reset the gyro on line 1 it doesn’t seem to acknowledge it correctly and the robot often just spins randomly around (and around… and around…lol); if we put something else first (like a small tilt, which we used to have a little later in the code) then the reset gyro seems fine and the first part of the code generally works. Also, we’ve found that if we say turn until “=” it generally doesn’t work very well - we have to say turn until “>” or “<” instead. Finally, all turns are supposed to be basically 90 degree turns in this code; the first is set to turn right until -83, then turn left until 0, then turn right until -55. Isn’t that strange?? Why is it that the last turn has to be set to -55 degrees in order to come even close to a -90 degree turn? Physically, right before that turn the robot is heading basically parallel to the ball wall.

Does this sound like a bad gyro? I hate to spend the money to buy a new one just for 1 final competition, especially if it turns out that isn’t the problem after all!

It may be a few different issues. Yes on gyro (or distance sensor when applicable) going bad. We have a special place in the parts graveyard for these two. As they are used the most, you also have to keep replacements ready, or be ready to remove completely if it comes to that during a competition, as driver control can do without.

Gyro already has some inaccuracy by default due to “drift”. As for gyro spinning, you can never get right using “=”, always > or < the required mark. If you put “=” it will end up spinning more than 95% of the time. If you went extremely slow I suppose you can make it stop. Many times you reduce speed as you come closer to your target angle. The floor, bumps, type of tire grip, etc affect that as well.

You can turn on the debug window and watch the sensors in RobotC. This may help you see what’s going on.

Besides the usual drift, the gyro heading also deteriorates with bumps. Every time the robot bumps into something, especially during turns, when the rate-of-rotation changes abruptly, the gyro reading drifts a lot. It is kind of expected, given the technology used. My students are typically counter-acting this by resetting the gyro mid-program, whenever they know (or intentionally steer) the robot is flat against the wall.

We also have a tendency to burn the gyro out. I happened to me last year that my gyro burned out going into my final programming run at vex worlds. Thankfully, I was allowed time to swap it.