# Gyroscope bias on the MPU9150

I've recently purchased the MPU9150 IMU from InvenSense. Testing it, I'm astonished to see that, at rest, it constantly output 0.25 °⋅s-1 around the Z axis, -0.5 °⋅s-1 around the Y axis and -1 °⋅s-1 around the X axis. Is there a way to correct this ? Is this really normal ? I know there is a drift coming from gyroscopes, but with such values this will lead to enormous error in a few minutes...

Dude - You've got a good one.

Per the data sheet http://store.invensense.com/datasheets/invensense/MPU-9150_DataSheet_V4%203.pdf (page 11) the Zero Rate Output limits are +/- 20 degrees per second.

I think you've overestimated what these things are for. They are not intended as the heart of an IMU. When used in a controller, they are part of a feedback loop that stabilizes or detects angular rates in the Hz region. From their webpage http://www.invensense.com/technology/motion/

"Our MotionTracking devices are rapidly becoming a key function in many consumer electronic devices including smartphones, tablets, gaming consoles, and smart TVs".

Game controllers and smartphones simply don't care about drift rates of a degree per second.

To some degree you can work around this, if you can provide frequent calibration points, but otherwise you'll have to start looking into the mathematics of Kalman filters and sensor fusion. Here's http://seat.massey.ac.nz/conferences/icst2013/proceedings/papers%5C1569816521.pdf a paper discussing a MEMS gyro with drift rates pretty close to yours.

Also, keep in mind that what's important is not so much the instantaneous value of the bias, but rather the bias stability, since you can measure the bias on the bench and zero it out. So try running your unit for an hour, grabbing a sample per second, and see how much the bias changes. If you're serious about this, you'll also need to do it at different temperatures. And if you're REALLY serious about this, don't forget to take earth rates into account.