mjs513
Senior Member+
While updating my version of Fabio Versano's FreeIMU library I was looking for some of Madgwick's old papers and came across the fact the Madgwick changed what we have known as MadgwichAHRS. This occurred with the publication of his PhD thesis: AHRS algorithms and calibration solutions to facilitate new applications using low-cost MEMS and available on Github: Fusion. Its a quite a bit different than our current version of his AHRS algorithm. This is from the readME:
I have a stripped-down version of the library at: https://github.com/mjs513/Fusion/tree/Fusion-Teensy. There are 2 additional examples:
1. FreeIMU_Madgwick_Fusion: Used with my FreeIMU library and
2. NXPFusion_Madgwick_Fusion: Used with NXPMotionSense library.
As before the Fusion library requires calibrated data to be supplied to the algorithm.
One thing I noticed with preliminary testing with the propshield using the Fusion algorithm or the MadgwickAHRS algorithm is that the new Fusion library has just about 0 yaw drif where the old version (using the NXPMotion example) youdo see alot of yaw drifting.
I will try to post some comparison data later.
The algorithm calculates the orientation as the integration of the gyroscope summed with a feedback term. The feedback term is equal to the error in the current measurement of orientation as determined by the other sensors, multiplied by a gain. The algorithm therefore functions as a complementary filter that combines high-pass filtered gyroscope measurements with low-pass filtered measurements from other sensors with a corner frequency determined by the gain. A low gain will 'trust' the gyroscope more and so be more susceptible to drift. A high gain will increase the influence of other sensors and the errors that result from accelerations and magnetic distortions. A gain of zero will ignore the other sensors so that the measurement of orientation is determined by only the gyroscope.
I have a stripped-down version of the library at: https://github.com/mjs513/Fusion/tree/Fusion-Teensy. There are 2 additional examples:
1. FreeIMU_Madgwick_Fusion: Used with my FreeIMU library and
2. NXPFusion_Madgwick_Fusion: Used with NXPMotionSense library.
As before the Fusion library requires calibrated data to be supplied to the algorithm.
One thing I noticed with preliminary testing with the propshield using the Fusion algorithm or the MadgwickAHRS algorithm is that the new Fusion library has just about 0 yaw drif where the old version (using the NXPMotion example) youdo see alot of yaw drifting.
I will try to post some comparison data later.