L3GD20 drift?

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
humeno
 
Posts: 3
Joined: Thu Jan 09, 2014 2:18 pm

L3GD20 drift?

Post by humeno »

I am doing a simple repeated read of the L3GD20 gyro. I place the unit on a stable, non-moving platform and continuously read measured raw value through I2C. I would expect some level of noise but over a period of time, I would expect the noise to be evenly distributed to both side of the reading and accumulated over a long enough sampling period, it will cancel each other out.

What I am seeing is that the noise is biased on each axis where it generates a noisy but fairly linear trend line. Is this normal?

If I integrate the bias the reference will tumble a complete 360 degrees in about 5 minutes.

Do these need calibration? Or, perhaps I need to characterize the drift in each axis and develop a compensation logic?

Suggestions?

Thanks. Hiroo

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: L3GD20 drift?

Post by Franklin97355 »

A gyro is not stable over a period of time. It is designed to report rate of rotation in x degrees per second. Drifting is normal but I will try to find out if there is a spec or calibration procedure.

User avatar
humeno
 
Posts: 3
Joined: Thu Jan 09, 2014 2:18 pm

Re: L3GD20 drift?

Post by humeno »

Thank you for the response.
I ran some statistical analysis on it. It is remarkably consistent. Take a look at the below data. Each set is computed based on 500 discrete reading of rate values under static conditions.

Code: Select all

Mean	 :x = 0.041107 y = -0.503038, z = 0.550883
Std. Dev.:x = 0.192364 y = 0.098436, z = 0.152420
Mean	 :x = 0.064173 y = -0.510388, z = 0.568365
Std. Dev.:x = 0.266069 y = 0.102152, z = 0.147788
Mean	 :x = 0.048248 y = -0.497070, z = 0.552038
Std. Dev.:x = 0.213083 y = 0.101966, z = 0.145765
Mean	 :x = 0.052220 y = -0.505820, z = 0.557253
Std. Dev.:x = 0.294520 y = 0.101051, z = 0.152257
Mean	 :x = 0.068583 y = -0.479483, z = 0.570238
Std. Dev.:x = 0.227132 y = 0.104153, z = 0.155837
You can note that the each axis has a distinct bias that is VERY consistent. Standard deviation of 0.1 to 0.26! That is fairly amazing consistency.

I will try a little experiment to see if I can bias the gyro using software and how that comes out.

User avatar
adafruit2
 
Posts: 22148
Joined: Fri Mar 11, 2005 7:36 pm

Re: L3GD20 drift?

Post by adafruit2 »

Yep! Gyros have bias/drift - often times, an accelerometer and magnetometer is used in an IMU setup to help compensate for drift but at is it is now, the kind of Gyros that are available to hobbyists are going to have some error to them.
Lots more reading if you search around: https://www.google.com/search?q=gyro+drift

User avatar
humeno
 
Posts: 3
Joined: Thu Jan 09, 2014 2:18 pm

Re: L3GD20 drift?

Post by humeno »

Thank you.
I knew that mechanical gyros had drift / precession but I was not aware MEMs devices suffered from the same. I can characterize it a bit and see if the drift is consistent enough to filter. I also know that you can combine magnetometer and accelerometer readings to correct for the drift but that also has a side effect of introducing errors from linear accelerations.

More research and experimentation!

Hiroo

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”