Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 8 months ago.
How to calculate Yaw, Pitch, Roll from Axcel, Gyto and Magnet
Hi, I'm trying to work with MPU9150 with a nucleo f401 board on Mbed online IDE.
I can read accelerometer (x,y,z), gyroscope (x,y,z) and magetometer (x,y,z) but I don't understand how to calculate Yaw (really important to me), Pitch and Roll.
May you help me?
Thank you
Question relating to:
1 Answer
9 years, 8 months ago.
You need a suitable algorithm to merge the 9 degrees of measurement into Euler angles - something like https://developer.mbed.org/users/aberk/code/IMUfilter/ which uses Sebastian Madgwick's algorithm. I've had it working well (other than me getting a roll angle of +/-180 because I'd turned the IMU upside down) at a 50 Hz refresh rate.
A few things to consider:
1. You do need to calibrate the magnetometer - just min/max rather than ellipsoid calibration seems to work well enough 2. Unless you like waiting hours for a decent fix, it's worth setting the beta variable (if you're using Madgwick) to a high number to start with (I've used 3.0f) to trust the magnetometer data to start with and thus get a quick fix, and then turning it right down to increase the sensitivity thereafter (I've used 0.15 IIRC) 3. The yaw angle is measured relative to magnetic north. If, like me, you're interested in the difference between direction of travel and heading angle, don't forget to deal with declination.