MPU-9150 DMP quaternions

By fjhl , 16 January 2013

Hello!
I need some license to use DMP? I want to read the values ​​quaternions, or Euler angle.

In the datasheet does not mention about the DMP. Where can I see the settings for the DMP that can read values ​​quaternions?

Thank you!

stueckrath.c

13 years 2 months ago

Option 1:
You need to use the Embedded Motion Processing Library (currently only really available in the MotionFit SDK without source code for the MSP430F5528 microcontroller) to load the DMP, do the magnetometer calibration, and perform fusion of 6-axis quaternion with magnetometer data to get 9-axis (i.e. heading corrected w.r.t North) quaternion.

Option 2:
Use a hack like: http://www.i2cdevlib.com/devices/mpu6050#source. This loads the DMP but does not do the heading correction. This is based on MotionFit SDK 4.1. You can recreate it for SDK 5.1 by listening in on the I2C writes (using a digital analyzer, e.g. Salae Logic...see examples at link above), and recreating them all in your code.

Option 3:
Wait for Embedded Motion Driver. Supposedly InvenSense is releasing a platform independent release "soon" that will allow you to load the DMP from any platform and will give guidelines for integrating the magnetometer data

Option 4:
Wait until InvenSense actually releases a DMP version in which magnetometer data is fused with 6-axis quaternion data within the DMP itself. As far as I know, InvenSense has not given a timeline for when this would be available for either the MPU-9150 or the brand new MPU-9250

phpbb Post ID
22305

johannherreb

13 years ago

Any update regarding this matter?
Have they released the 9-axis DMP version?

Regards,

Víctor.

phpbb Post ID
22311

stanengineer

12 years 11 months ago

For anyone interested, we have posted some easy to use demonstration code that performs the 9-axis data fusion (DMP for accelerometer and gyro plus software for the final magnetometer integration) and provides simple calibration tools. There are two versions, https://github.com/Pansenti/MPU9150Lib for Arduinos and https://github.com/Pansenti/linux-mpu9150 for Linux-based systems (tested mainly on the Raspberry Pi).

phpbb Post ID
22317

krzysiek.skurzynski

12 years 11 months ago

Hi richardbarnett,
I used calibration tools of arduino version. get accl the following data ,
I don't understand this, the data is raw? maybe is wrong? Thanks!
x: 23275.08 y: -4357.08 z: 18092.53
x: 25182.03 y: -1591.71 z: 21937.88
x: 28454.59 y: -528.16 z: 17491.31
x: 28085.01 y: -2337.66 z: 21387.71
x: 26442.65 y: -1487.28 z: 18240.13
x: -32634.82 y: -1593.54 z: 20986.55
x: -27269.43 y: -15951.43 z: -1091.63
x: -30100.82 y: 424.63 z: 22832.57
x: 18138.38 y: 19039.37 z: 22332.95
x: 29329.74 y: 2126.41 z: 22282.59
x: -29018.79 y: -1170.79 z: 19884.19

phpbb Post ID
22320

krzysiek.skurzynski

12 years 10 months ago

Hi richardbarnett,
Hardware circuit problem?But I can read the original data using other programs ?

phpbb Post ID
22326

guy_mcilroy

12 years 10 months ago

Please be aware that Embedded MotionDriver has been released on the Developer Corner download page, and includes a supported version of DMP sensor fusion. It is released in C source, so it can be ported between platforms.

phpbb Post ID
22329

wilkins

10 years ago

Does anyone know the difference between the hex provided with Motion Driver 6.12, and that provided with I2Cdevlib (MotionFit SDK 4.1). In my application using a MPU-9250 and a small µC, I have the RAM to use the older code, but not nearly enough to use the current stuff. Does that old hex even run right on a MPU-9250?

phpbb Post ID
33322
phpbb Topic ID
14985