Slow Quaternions

By gracy_angela , 28 November 2013

Hello Forum,

I am using the MPU-6000 with the MotionApps firmware loaded. It is configured to output quaternion data. (q = a + i b + j c + k d)
The calculation made is as follows:
RotationAngle = arccos(a)*2
cos(beta_x) = b/sin(RotationAngle/2)
cos(beta_y) = c/sin(RotationAngle/2)
cos(beta_z) = d/sin(RotationAngle/2)

The data is then output via a serial connection in CSV format and read by MATLAB for a graphical representation.
In the image below are the graphs for a 180° rotation on the x axis.

https://www.dropbox.com/s/3y9tgc0l82zh08i/rotation_180deg.png

The overall difference of the rotation angle is approx. 180° but it takes the sensor 20 sec to reach the value. How can this be, since the rotation itself takes less than a sec? What could I have done wrong?

Thanks

gracy_angela

12 years 3 months ago

I think I have found it out myself. The problem was caused by wrong full scale ranges.
The right full scale ranges are +-2g for the accelerometer and +-2000°/s for the gyroscope.
I had set different values by writing them directly to the registers 27 and 28.

Is there a way to change the full scale ranges via the firmware so that the quaternion calculation also works with other ranges?

phpbb Post ID
24381

peter62

12 years 3 months ago

I meet the same problem, the fsr of ACC is fixed to +-2g,and the fsr of gryo is fixed to 2000, the output of DMP will be not correctly if you try to change it,but the response speed is not satisfied the application when using the fixed fsr.

phpbb Post ID
24384

guy_mcilroy

12 years 3 months ago

Which software are you running? You can adjust the full scale ranges within the eMPL 5.1 (MotionFit) firmware as well as Embedded Motion Driver.

phpbb Post ID
24387
phpbb Topic ID
15783