From: Roy on
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
From: Tim Wescott on
Roy wrote:
> 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?

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
www.wescottdesign.com
From: Vladimir Vassilevsky on


Roy wrote:

> 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.

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.

> 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.

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

> 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?

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








From: RogerN on

"Roy" <brewer.roy(a)gmail.com> wrote in message
news:2d624d07-24e6-4a04-b178-b57dad27e322(a)15g2000yqi.googlegroups.com...
> 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

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


From: Tim Wescott on
RogerN wrote:
> "Roy" <brewer.roy(a)gmail.com> wrote in message
> news:2d624d07-24e6-4a04-b178-b57dad27e322(a)15g2000yqi.googlegroups.com...
>> 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
>
> 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
>
>
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
www.wescottdesign.com