Open source IMU and AHRS algorithms


Posted on July 31st, 2012 by x-io Technologies

In 2009 Sebastian Madgwick developed an IMU and AHRS sensor fusion algorithm as part of his Ph.D research at the University of Bristol. The algorithm was posted on Google Code with IMU, AHRS and camera stabilisation application demo videos on YouTube. The algorithm received thousands of downloads but the code project was never maintained or updated. All resources are now provided and maintained here. The algorithm source code is available in C, C# and MATLAB. The source code also includes Madgwick’s implementation of Robert Mayhony’s ‘DCM filter‘ in quaternion form.


Resources

 

Open-source resources available on this website are provided under the GNU General Public Licence unless an alternative licence is provided in source.

Original internal report (.pdf)
IEEE conference paper (IEEE Explore)
MATLAB code (Includes example data and script)
C# code (x-IMU Example project used to create this video)
C code (Header and source files)

User contributions

LabVIEW library by Roger Isaksson (Google Code)




RECENT
New Interfaces for Musical Expression 2014
New Interfaces for Musical Expression 2014

Seb and I recently attended the 14th International Conference on New Interfaces for Musical Expression (NIME2014) at Goldsmiths, University of London. This was my...

NeoPixel LED screen using openFrameworks (C++) with x-OSC
NeoPixel LED screen using openFrameworks (C++) with x-OSC

The latest firmware for x-OSC includes support for Adafruit NeoPixel RGB LED arrays which come in a variety of formats including strips, rings and...

Tutorial: x-OSC and VDMX
Tutorial: x-OSC and VDMX

Motion graphics and video artist Will Reardon at Polymath Design has been working on a number of exciting VJ projects connecting x-OSC with VDMX....

RGB Control With Processing
RGB Control With Processing

Adam Spiers just sent me the source code for his first “Hello World” x-OSC project showing how to control the on-board RGB LED using...

Using x-OSC with Ableton Live
Using x-OSC with Ableton Live

This video shows a quick and neat demonstration of how to use x-OSC to control parameters in Ableton Live on OS X. The method...

Oscillatory Motion Tracking With x-IMU
Oscillatory Motion Tracking With x-IMU

Tracking position using an IMU is extremely difficult to achieve. This is because the an IMU is only able to provide a direct...

WiFi arcade controller (x-OSC Java demo)
WiFi arcade controller (x-OSC Java demo)

With a craving to play old Commodore 64 games and all my game controllers tangled into a interlaced web of wires, I figured I’d...

Solar wind chimes – The first x-OSC project
Solar wind chimes – The first x-OSC project

Ealier this year, I went to the Pervasive Media Studio in Bristol to give a lunchtime talk about x-OSC. After the talk I...