Using the Adafruit 9DoF module I Need to convert the Accel + Magneto + Gyro into Euler Angles for a motion capture application. Any hints on where to start?

Managed to get X,Y,Z when the IMU is facing upward but when that orientation changes the axes dont behave normally that is because i am not using Euler angles. So Any hints to any reference where to start?

The Euler Compass App is an example of what I am trying to get to. Get Pitch,Yaw, Roll for the IMU module irrespective to how its kept.

  • $\begingroup$ What rotation representation format do you have? Quaternions, rotation matrix, axis angle, etc. $\endgroup$
    – Ben
    Sep 5, 2014 at 18:48
  • $\begingroup$ I got Angles from -180 to +180 for X & Y Axis and 0 - 359 for Magnetometer (Z Axis) I need X,Y,Z like the Euler Compass App $\endgroup$ Sep 5, 2014 at 18:54
  • $\begingroup$ WHen X is turned to 90, the Previos Y axis (when X was 0) becomes the Z Axis w.r.t the parent. So here the magnetometer reading cannot be used. I need a mechanism that will work with a matrix algorithm and give me a x,y,z combining all 3 sensor data. Final Output should be X,Y,Z from +180 to -180. $\endgroup$ Sep 5, 2014 at 18:57
  • $\begingroup$ you should add the question description $\endgroup$
    – David
    Sep 9, 2014 at 0:55

1 Answer 1


Using this reference RAZOR 9DOF DCM Algorithms

DCM Sorts it problem. :) Solution works as good as the EUler Compass on the PlayStore. If anyone is working on it, convert the Adruino code to C++ and use your own interfacing libs.

Works like a charm.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.