Posted by Doug Weibel on October 8, 2009 at 5:00pm
Hello All,I am going through the ArduIMU v1.1 software and getting ready to start modifying it for my own purposes. I am pretty excited about this IMU and think there are some really cool, creative things that can be done with it.I keep generating questions that people are helping me find the answers. I've decided to update this top post as questions get answered so that it will be a bit of a FAQ,I know there are others than me digging in to the code, so post your questions and answers as comments and I'll keep the FAQ at the top updated :)DougCURRENT QUESTIONS:Q The V1.1 download code has#define Kp_YAW 0 //.5Yaw Porportional Gain#define Ki_YAW 0 //0.0005Yaw Integrator Gainso the values in use as downloaded are zero and there is no yaw drift correction. Has anyone tried out the values in the comments? What testing did you do and what were the results?Q I have been looking at the accelerometer data to see if I could use it to integrate velocity, but it looks much too coarse, and despite claims that accelerometers don't drift mine have some poor behavior that I would either call drift or hysteresis. For example, using groundtest.vi and looking at the accelerometer data - With the IMU sitting on my desk the raw accelerometer data should be (and initially is) 0, 101, 0. However, after moving the IMU around and then bringing it back to rest I might see data of 1, 101, 2, or 0, 101, -3, and those readings might persist for quite some time (>20 seconds). If you work the math on 0, 101, 3 it works out to indicating a velocity of 13 miles per hour in the z direction after 20 seconds. So, the question is: Is this hardware any good for inertial navigation applications???ANSWERED QUESTIONS:Q Where is the yaw drift correction??? Am I correct in thinking that it is not included in this release of the software?A - No - the yaw drift correction is handled in the roll_pitch_drift() routine. However, note that the P and I coefficients are set to zero in the v1.1 download. You will need to change them. I haven't tested values out yet.Q Why is Gyro_Scaled(x) defined as x*((Gyro_Gain*PI)/360) instead of x*((Gyro_Gain*2*PI)/360) or x*((Gyro_Gain*PI)/180)?A Well, because the factor of 2 is incorporated in the Gyro_Gain (we think)Q Why the procedure in setup() of reading the adc's 75 times? From the filtering it looks like 3 or 4 times should be sufficient as the value after any read is 90% the most recent measurement and only 10% previous averaged measurements.A I looked at the raw data and for some reason the data is pretty goofy the first 5+ times through the loop, almost like you need to warm up the AD converters. Can't explain it, but that is probably why 75 samples are taken even though 5 would be sufficient with the filtering used.Q Why is AN_OFFSET[4]=AN[4]+GRAVITY instead of AN_OFFSET[4]=AN[4]-GRAVITY?A Because gravity works to lessen the value of the raw data in the y axis, so GRAVITY is added back to get the "zero gravity" offset. It is just a matter of the direction and sign.
I like V1 ArduIMU as I can switch out yaw gyro. I mounted 5 header pins on daughter board, with header plug pins bent 90 ° on gyro board, I will brace yaw gyro board well before flight tests Only problem with V1 it lacks I2C.. I may re-wire board for I2C. but it will be too difficult and risky..
I been testing Doug's R17 code on V1 with good results. No flights yet as Colorado Springs has had poor weather. IMU sometimes goes wacky but, after a long time 20 minutes or more, a slight bump causes a sever tumble that does not dampen out.
I am also testing PID's settings with ArduFlight and FlightGear.. I landed Rascal110 on Golden Gate Bridge, then fell off, recovered, rolled and landed again, fun to watch with rewind from chase view...
Andrew - The R17 code is the latest source code. It has not been "officially" released to the community. We have just a bit more work planned before the next "official" release. That said, I did package it as a zip file and make it available as a download for people trying my Ardu-IMU-Pilot. You will need R17 for that project, and it will also work fine for a standalone IMU. In fact, it will work better than v1.4 as there are some important improvements in it for vibration resistance, etc.
@Andy & Doug
Yes I was poking around in the IMU code in Doug's ArduPilot + ArduIMU project
It appears that the IMU code (R17) for that project has been developed further and cleaned up quite a bit compared to the V14 code in the stand alone ArduIMU code available from http://code.google.com/p/ardu-imu/
Will Doug's new IMU code work OK for stand alone IMUs?
Is there a plan to bring the two code forks into line?
Am I being a bit too keen to use the latest new new thing?
For the benefit of everyone reading this, both the ArduIMU V1 and V2 hardware are now using the same code (at that link above) and you can also find that link on each of the product pages. Read the comments inside the code to define which version of hardware you are using because the analog inputs shifted around a little bit between V1 and V2 of the hardware.
I hope that helps clear-up some confusion. Feel free to ask if you're still confused.
@Mario, no problem. You make a good point. I'm going to ask Jordi to add a link to the V1 manual on the V1 Product page (that is probably just an oversight). Overall, do you think having the manual/schematic links on the product page is the most intuitive place to find product information? Or do you suggest another place to find it as well? Also, have the V1 or V2 manuals been helpful to you so far?
@Doug
Where can we find the latest version of the ArduIMU firmware?
I've found an R17 version here -> https://code.google.com/p/ardu-imu-pilot/downloads/list
Its quite different to the "ArduIMU_DCM_V13" I've been working with
regards
Andrew
Thanks for the reply Andy ,
Please realize that some people paid a $129.00 for the first version and that the layout of the boards,pin-outs, schematics are very different. Not every one is familiar with the different inputs/outputs on this kid of hardware. I bought one of each version of arduimu and still think that it is not fair to ver 1 buyer to be cut from the original info about the board.It may seems insignificant details for a DIY pro but in reality it is important for the average DIY hobbyist. So the link you provide is not useful...sorry.
Comments
I been testing Doug's R17 code on V1 with good results. No flights yet as Colorado Springs has had poor weather. IMU sometimes goes wacky but, after a long time 20 minutes or more, a slight bump causes a sever tumble that does not dampen out.
I am also testing PID's settings with ArduFlight and FlightGear.. I landed Rascal110 on Golden Gate Bridge, then fell off, recovered, rolled and landed again, fun to watch with rewind from chase view...
Yes I was poking around in the IMU code in Doug's ArduPilot + ArduIMU project
It appears that the IMU code (R17) for that project has been developed further and cleaned up quite a bit compared to the V14 code in the stand alone ArduIMU code available from http://code.google.com/p/ardu-imu/
Will Doug's new IMU code work OK for stand alone IMUs?
Is there a plan to bring the two code forks into line?
Am I being a bit too keen to use the latest new new thing?
regards
Andrew
I think you are looking for the stand-alone ArduIMU code which is here:
http://code.google.com/p/ardu-imu/
For the benefit of everyone reading this, both the ArduIMU V1 and V2 hardware are now using the same code (at that link above) and you can also find that link on each of the product pages. Read the comments inside the code to define which version of hardware you are using because the analog inputs shifted around a little bit between V1 and V2 of the hardware.
I hope that helps clear-up some confusion. Feel free to ask if you're still confused.
Where can we find the latest version of the ArduIMU firmware?
I've found an R17 version here -> https://code.google.com/p/ardu-imu-pilot/downloads/list
Its quite different to the "ArduIMU_DCM_V13" I've been working with
regards
Andrew
Sorry...I did not realize there was twso links... Thank you for the one to ver 1 but still it should be easier to find
Please realize that some people paid a $129.00 for the first version and that the layout of the boards,pin-outs, schematics are very different. Not every one is familiar with the different inputs/outputs on this kid of hardware. I bought one of each version of arduimu and still think that it is not fair to ver 1 buyer to be cut from the original info about the board.It may seems insignificant details for a DIY pro but in reality it is important for the average DIY hobbyist. So the link you provide is not useful...sorry.
http://store.diydrones.com/ProductDetails.asp?ProductCode=BR-ArduIM...
http://docs.google.com/View?id=dp66935_5dftgvvhb
We've sort of abandoned the V1 manual and moved on to the V2 manual since it is really an extension of V1.