Bosch is the first company to get this right by taking a MEMS accelerometer, magnetometer and gyroscope and putting them on a single die with a high speed ARM Cortex-M0 based processor to digest all the sensor data, abstract the sensor fusion and real time requirements away, and spit out data you can use in quaternions, Euler angles or vectors.  You can now have meaningful sensor data in minutes thanks to the BNO055 - a smart 9-DOF sensor that does the sensor fusion all on its own. Now you can read the data right over I2C.  

The BNO055 can output the following sensor data:

 Absolute Orientation (Euler Vector, 100Hz) Three axis orientation data based on a 360° sphere

Absolute Orientation (Quaterion, 100Hz) Four point quaternion output for more accurate data manipulation

Angular Velocity Vector (100Hz) Three axis of 'rotation speed' in rad/s

Acceleration Vector (100Hz) Three axis of acceleration (gravity + linear motion) in m/s^2 Magnetic

Field Strength Vector (20Hz) Three axis of magnetic field sensing in micro Tesla (uT) Linear Acceleration Vector (100Hz) Three axis of linear acceleration data (acceleration minus gravity) in m/s^2

Gravity Vector (100Hz) Three axis of gravitational acceleration (minus any movement) in m/s^2

Temperature (1Hz) Ambient temperature in degrees Celsius