Compensating for gyro sensor drift

All,
I am designing a control system for a hovering quadrotor. The MEMS gyroscope (angular rate) sensors have a slowly drifting zero-rate
point. To me, the bias seems fairly constant for several seconds, then jumps to a new value, and this pattern repeats. Both the time and the magnitude of the jump seem random. I know the "best" way to compensate for this would be to use a sensor fusion algorithm with another sensor type, but I was wondering if there were a signal processing technique that could be used.
I have tried using a low-pass filter and a simple "deadzone", and both worked somewhat, but not as well as I'd like. I'm going to use the signal directly for rate feedback and integrate it to come up with attitude feedback, if that helps.
Any ideas?
Thanks in advance Roy
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Roy wrote:

There is no magic. Unless there is a way to distinguish the bias from a real motion of the platform then there is no way to filter the bias out without also rejecting motion of the platform.
If you want this thing to be completely autonomous you need some sort of sensor fusion -- typically you'd want three gyro axes, three accelerometer axes, and some terrestrial position measurement like GPS.
If you just want to stabilize the thing to make it easier to fly under visual control then don't try to follow the integrated gyro position -- use the gyro for moment-to-moment stability, and depend on the pilot for second-to-second stability.
--
Tim Wescott
Control system and signal processing consulting
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Roy wrote:

This is the typical behavior that you can expect from MEMS sensors. Hysteresis, stiction, random shifts of zero due to mechanical stress or thermal variation.

If you have a good sensor to referrence to, why would you need the bad sensor at first time?

You can not pull yourself out of the ditch by your own hair. However you can sort out MEMS sensors which behave somewhat better from the pile of regular ones.
Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I fly R/C helicopters and when the "heading hold" gyroscopes first came out there was a drift problem with temperature. I have no idea if this is related to what you're experiencing but I wondered if 2 sensors were used, one flipped, and then take the differential signal. That would double your signal to motion and hopefully cancel out drift due to temperature. Since then they have either came up with better sensors and/or better sensor drift compensation, it's not the problem it used to be.
RogerN
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
RogerN wrote:

That would only work if the sensor drift due to temperature were fairly constant by design. Any drift that varies from unit to unit wouldn't get canceled out, or at least would only be reduced by sqrt(number of sensors).
Linear drift with temperature is pretty darn easy to cancel out if you have a microprocessor in the system somewhere, and microprocessors are pretty darn small these days (the 8-pin SO-8 package ones are no longer the smallest around).
What you're left with are all the _other_ factors affecting gyro bias drift -- you can't eliminate it entirely.
--
Tim Wescott
Control system and signal processing consulting
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

You know Tim, you could be among the first to use a gyro on a control line model plane :-) (maybe it's already been done, not sure) I believe they did temperature compensation with a thermistor but I don't know of other causes of drift. On one of my early heading hold gyros I had to re-trim a few times during a flight.
RogerN
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.