Hi,

I have been using open-source IMU algorithms for two years till now. i always get average results for hobby applications like UAVs and cars with few problems. now i thought about some higher level applications and further testing on IMU algorithms. i have tested DCM, Mahony algorithms, and Magdewick algorithms for months.i never got reliable results however i spent a lot of time tuning parameters.

i'm using the following setup:-

1) MPU-9150 running at 1000Hz sensor output rate.

2) ARM M4F MCU (TM4C Launchpad) running at 80MHz with floating point unit.

3) testing for both static applications (like moving the IMU with hands slowly) and dynamic testings (like moving the IMU in very fast rotations).

4) the AHRS algorithm is supposed to run at 1000Hz rate. every 1ms the algorithm is executed with the current sensor outputs. So, every sensor output is taken into consideration because the algorithms and sensor output rate are running on the same speed.

5) I'm using simple accelerometer and gyro calibrations. No temp compensation and no Mag calibrations. actually the soft iron calibration for mag doesn't make difference for me in tests.

Results:-

1) I got the most reliable results from S. Magdewick gradient descent algorithm (6DOF). however it's not a satisfying results because the outputs are not very accurate. i have read that it's supposed to be 0.6 degree accuracy with Magdewick algorithm. but i never got this with my testings. One important thing to mention about the Beta tuning parameter:

A) If i made Beta larger than 0.4, i got bad performance for a moving application. the immunity to dynamic disturbance is too low when Beta is set high.

B) When Beta is low value like 0.1, i got high immunity to dynamic disturbances but slower return to accurate position after fast rotations.

So, i don't get accurate results.

2)  Using Mahony AHRS algorithm which is PI based resulted in bad performance for dynamic tests, Magdewick algorithm gives far better results.

So, is there anyone who has achieved high accuracy with any algorithm for dynamic applications please ? 

can you advice me with a good algorithm which achieves high accuracy please?

Any help is welcome and much appreciated.

Thank you,

Ahmed

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Activity