Closed mjs513 closed 8 years ago
Since I have not heard anything back in three weeks I am going to close this pull request as I am assuming you all are not interested. I will close the Mahony filter as well, especially since there are merge conflicts.
Hi Mike,
I'm looking through this, for stuff that hasn't already been done in one way or another. Quaternion output is on the to-do list, currently pending some API decisions from the Arduino devs. Sorry, I can't go into details, other than things move slowly but progress is happening (even though every appearance may not seem that way).
I see this had an alternate inverse square root algorithm. Does that matter?
This patch had a lot of documentation stuff. Should I review it?
Are there any other pieces lurking in here that should be pulled out and merged, or at least remembered for later investigation?
Hi Paul
Lets start out with the easy stuff first. Don't bother with the documentation - it was my attempt at redoing the Arduino page that describes the visualizer.
As for the inverse square root changes. This was based on the thread in the DIYDrones forum from a couple of years back that discussed a [instability fixes](http://diydrones.com/forum/topics/madgwick-imu-ahrs-and-fast-inverse square-root?id=705844%3ATopic%3A1018435&page=1) in the madgwick implementation.
Also, I edited the Madgwick filter itself to make correct an error in the code base on the same thread. Seb Madgwick confirmed that the error existed to the code on the his website. The comment is on the bottom of the page
I did include a version of Fabio's Yaw Pitch Roll processing sketch - but it uses his float to byte conversion to retain accuracy - just like in his library.
As a side note I have been using these corrections in Fabio's FreeIMU library that I having been constantly updating over the last few years. Its on GitHub (FreeIMU-Updates). As a side note I did incorporate the CureIMU (BMI160) into the FreeIMU as a board option and ran it through its paces. It performs fairly well. It does work better with the Mahony filter which is in the other pull request that I closed.
I also attached a magnetometer when I did the testing board using the CurieIMU lib and the FreeIMU and it did perform well - the magnetometer definitely works better. Maybe on the next revision of the board (Arduino102 the can put a magnetometer on the board as well).
A better accelerometer calibration needs to be incorporated. From what I saw other places on drones you can do a 6 point calibration and get better results (think is was on the 3dr site). From what I have seen it would help a lot.
By the way what your IMU project that you have posted on GITHUB all about - I didn't see any readme - but it does look interesting. I am going to take a look at the other issue I saw posted on first orientation lock & magnetic jamming detection, looks interesting. I have a whole collection of IMUs that I can test it on. Always looking for improvements to make the FreeIMU lib.
Hi M
These are the updated changes to the Madgwick filter to match the new CurieIMU and corrected an error in the visualizer.
Mike