Table of Contents
International Journal of Navigation and Observation
Volume 2015, Article ID 503814, 18 pages
Research Article

A DCM Based Attitude Estimation Algorithm for Low-Cost MEMS IMUs

Autonomous Systems Research Group, Department of Electrical Engineering and Automation, School of Electrical Engineering, Aalto University, P.O. Box 15500, 00076 Aalto, Finland

Received 16 July 2015; Revised 29 October 2015; Accepted 4 November 2015

Academic Editor: Aleksandar Dogandzic

Copyright © 2015 Heikki Hyyti and Arto Visala. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


An attitude estimation algorithm is developed using an adaptive extended Kalman filter for low-cost microelectromechanical-system (MEMS) triaxial accelerometers and gyroscopes, that is, inertial measurement units (IMUs). Although these MEMS sensors are relatively cheap, they give more inaccurate measurements than conventional high-quality gyroscopes and accelerometers. To be able to use these low-cost MEMS sensors with precision in all situations, a novel attitude estimation algorithm is proposed for fusing triaxial gyroscope and accelerometer measurements. An extended Kalman filter is implemented to estimate attitude in direction cosine matrix (DCM) formation and to calibrate gyroscope biases online. We use a variable measurement covariance for acceleration measurements to ensure robustness against temporary nongravitational accelerations, which usually induce errors when estimating attitude with ordinary algorithms. The proposed algorithm enables accurate gyroscope online calibration by using only a triaxial gyroscope and accelerometer. It outperforms comparable state-of-the-art algorithms in those cases when there are either biases in the gyroscope measurements or large temporary nongravitational accelerations present. A low-cost, temperature-based calibration method is also discussed for initially calibrating gyroscope and acceleration sensors. An open source implementation of the algorithm is also available.