Gyro drift mechanical improvements

A comment was made in the ConVEX thread about gyro stability and the effect of running motors on the gyro output. I did a very quick test before work today and confirmed that I could see the same problem, support the robot on something so the drive can be run without moving and the gyro reading changes when it shouldn’t.

The first thought was that the drop in battery voltage when under load may be causing this, a quick test using a bench power supply showed that this is not the case.

I had proposed some other possible causes, vibration, motor wiring cross talk or motor magnetic field influence. Testing for improvement is pretty easy so I did a couple of further experiments.

This is the usual placement of the gyro on the “Open source robot

With the robot supported on a couple of storage boxes above the ground, if the drive is run the gyro drifts.

First modification to see if vibration is the cause, mount the gyro on some rubber couplers.

This showed minor but not significant improvement.

Second modification, gyro moved to the top of the robot and isolated using rubber couplers.

This shows significant improvement, but, is that because the gyro has moved away from the drive motors or is there less vibration?

So I moved the experiment to a bench system consisting of the gyro and one motor. The code used was the same as on the robot (written using ConVEX).

I ran the motor and moved it around the gyro, it seems to have no effect. If I touch the base supporting the gyro with the motor running I see a similar error to that which I saw on the robot.

So my conclusion based on these simple tests is that vibration created by the motors running is the cause of some gyro drift, moving the gyro away from the source of the vibration and isolating it using rubber couplers helps. I have no idea if this significantly effects the gyro accuracy when actually running the robot on the ground.

Has anyone else experienced this?


My kids recently put a gyro on their robot, which uses mecanum wheels. They screwed the gyro directly to the chassis between the front and back and the drift was 20-50 degrees after moving merely 5 or 6 feet. :frowning:

They then tried your rubber baby buggy bumper technique :), combined with some added mass (in the form of a C-channel + lots of nylocks upon which the gyro was attached) and the gyro drift was reduced to only about 3 degrees over that same distance. I have no idea if that added mass was necessary, but some sort of mechanical isolation seems to help a lot. I heard MEMS gyros vibrate somewhere between 8KHz to 30KHz, so maybe (I’m just guessing) any kind of acoustic energy in that range of 8KHz to 30KHz could interfere with the gyro’s function. And maybe the whine/buzz/squeal of a motor is in that region.

In any case, isolation seemed to work for my chillun. Maybe it work for yours, too. :slight_smile:

1 Like

I also suggest mounting the gyro to the (massive) battery,
and rubber cushion mount the battery to the frame,
to create a mechanical low-pass filter.

That’s a very interesting idea, a very efficient use of mass. But does that make it troublesome to swap out batteries? Do you have any special quick-release way of mounting the gyro to the battery?

You could use a standard Vex supplied battery clamp to hold the gyro to the battery.
Make a rubber mount isolated battery holder that holds the battery firmly, then mount the gyro to battery holder.