You have accelerometer, gyroscope, and magnetometer data from an IMU. How would you combine these signals to estimate device orientation over time, and which algorithm would you use?