  We present a novel algorithm for online, real-time orientation estimation.
Our algorithm integrates gyroscope data and corrects the resulting orientation
estimate for integration drift using accelerometer and magnetometer data. This
correction is computed, at each time instance, using a single gradient descent
step with fixed step length. This fixed step length results in robustness
against model errors, e.g. caused by large accelerations or by short-term
magnetic field disturbances, which we numerically illustrate using Monte Carlo
simulations. Our algorithm estimates a three-dimensional update to the
orientation rather than the entire orientation itself. This reduces the
computational complexity by approximately 1/3 with respect to the state of the
art. It also improves the quality of the resulting estimates, specifically when
the orientation corrections are large. We illustrate the efficacy of the
algorithm using experimental data.
