Go Down

Topic: MPU6050 Z-Axis Gyro Drift Problem (Read 691 times) previous topic - next topic

ler0y

Aug 30, 2013, 09:47 pm Last Edit: Aug 30, 2013, 11:39 pm by ler0y Reason: 1
Hello all, I am having a problem with gyro drift on my MPU6050 on a Sparkfun SEN11028 board. I am using Jeff Rowberg's excellent I2C lib. I am using the MPU6050 to determine the orientation of an object in 3D and displaying it in Processing. However the orientation tends to drift around the Z-Axis (direction of gravity vector). When I rotate the sensor around the Z-axis the error is magnified. Rotating the object around some arbitrary angle, and then rotating it back will not return the angular position to 0.

I have scoured the forums but the most relevant problem was one where the user had been using int data types and had a problem with precision. I am using floats. I am also using quaternions as well and converting them to axis-angle in Processing.

I have some specific items I'm hoping I can get help with.

1. Is the quaternion output from the MPU6050 derived from sensor fusion? I know that both the accelerometer and gyro onboard suffer from noise and drift respectively. However the senser fusion is supposed to take care of that problem. I think it does because there is little noise and the motion seems very smooth. However I am getting gyro drift and specifically only about the Z-axis.

2. Is there initial calibration that should be implemented first with the mpu6050? I have found no documentation stating that as a requirement.

4. I am not doing any sort of filtering. I had hoped by using the quaternion output of the mpu6050 that I would be able to avoid Kalman filtering etc.

5. The orientation of my object does not match the orientation of the mpu6050, so what I've done in Processing is to reassign the axes. I do not think this would make a difference, but I am not sure. The gyro drift occurs on every axis of the MPU6050 when it is rotated to coincide with gravity, thus there isn't anything special about the z-axis specifically marked on the sensor.

That is all I can think of at the moment. Thanks in advance.

o_lampe

Usually a magnetic sensor is added to eliminate drift Problems around the gravity vector. But indoors they are less reliable. They need to be adjusted. You have to tell the sensor where it is.
It's not my fault when my Posts are full of Errors. This stupid autocorrection from my browser is set up for german grammar.

Go Up