I'm trying to develop an IMU for my Arduino-based UAVS (heli) project. In my first test I just used a three-axis accelerometer, but it didn't work because the motor vibration generated too much noise. I then tried it just with gyros, but of course the the gyros drifted. So I learned through experience what everyone already knows: that the only way to make a good IMU is by mixing accelerometers with gyros and Kalman Filters, which is eventually what I did ;-)

I ran a test to see how my IMU is responding, and I made a line chart to see the results. The test consists of rotating the device to 70 degrees and then shake it, to see how the filters reduce the "noise". It looks pretty good:

The samples was taken every 20 miliseconds, the blue line is just accelerometer and the red line is Accelerometer+Gyros+KalmanFilters.

Source code here: ArduIMU Beta1

Special thanks to Tom Pycke

Views: 3751

3D Robotics
Comment by Chris Anderson on September 16, 2008 at 9:37pm
Serial is the usual method. Using software serial drivers you can use any digital pin. In our applications there is very little data exchanged between the two (one handles stabilization and the other handles navigation). The main function is just the navigation processor sending turn angles to the stabilization processor once or five times a second, depending on which GPS module you're using. It's so simple you can even do it as analog values on an analog pin if you want.

The actual autopilot is more sophisticated than that, of course, but we're not ready to release the code yet.
Comment by Gus on September 16, 2008 at 10:29pm
Thank you very much, i will let you know as my project progresses. (also thank you for such quick replies, that is absolutely amazing!)
Comment by @vi@tor on October 24, 2008 at 2:18pm
I bought an single axis XV 8100CB gyro.But I can not understand how to detect an angle along to z axis. I have a 3 axis acc.Later on I composed acc. and gyro. but firstly ı want to understand how gyro works.(I know only gyro measurement makes a drift it is not important for me in first step.)Thanks..
Comment by Spencer Riggs on January 21, 2009 at 1:37pm

Is the source code available somewhere? I am interested in building on this code to go to 6 DOF, but I wanted to see how this code works.

Comment by snoopy on March 5, 2009 at 11:16am
I can not access http://jordii07.googlepages.com/ArduIMU_infra_beta1.txt, ....I dont know why
Please can you email me that article? thank you very much!
Comment by PACEFE on April 7, 2009 at 6:10pm
i can also no access the file.
Would you please forward the files to my email address,
Thanks, Pablo


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service