Before I'm buying the ArduIMU V3 I'd like to confirm a few things.
I'm interested in connecting the ArduIMU V3 to another Arduino and having the second Arduino control a quadcopter according to the data received from the ArduIMU. Can the ArduIMU provide the current orientation in respect to the ground and North(So I can use inertial navigation - I won't use GPS at first)?
If it is possible are there any guides/manuals that describe how to work with the ArduIMU V3 in that manner?
I'm sure it can. You would use the serial port to communicate between the two. As far as guides/manuals... I don't know of anything available at all for the V3. I plan on setting up a wiki with information when I get some time. I will be doing the same thing of doing ArduIMU->Arduino soon.
Thank you for your reply, are there any output examples that include the magnetometer by any chance?
For example in the screenshot here: http://code.google.com/p/ardu-imu/wiki/Demo the magnetometer chart is empty(First picture, bottom left part).
Also, is it viable to use the ArduIMU V3 without a GPS module?
From the wiki page:
If you don't connect a GPS module, the IMU will still work but Yaw data will be unreliable since there is no way to correct for drift in the Yaw gyro.
Which I find rather strange since it has a 3 axis Gyro, 3 axis accelerometer and a 3 axis magnetometer(Which is enough to correct drift on all angles as far as I understand).
You can enable/output magnetometer...
#define PRINT_MAGNETOMETER 1 //Will print Magnetometer data (if magnetometer is enabled)
I see the following comment in ArduIMU 1.9 code.
/* Support for optional magnetometer (1 enabled, 0 dissabled) */
#define USE_MAGNETOMETER 1 // use 1 if you want to make yaw gyro drift corrections using the optional magnetometer
So, I think that comment might be wrong.
What needs to be changed in DCM's code if we want to use ArduIMU v3 without GPS.?
I just tested ArduIMU without GPS, to use it just for Heading, Pitch and Roll measurement.
Results are bad, with big drifts on all values , but specially on heading.
I use V1.9 software, I use magnetometer and speedfilt , setting #define orders:
#define USE_MAGNETOMETER 1
#define SPEEDFILT 2
Perhaps I made a mystake ?
What about calibration ? I didn't find any information about arduIMU V3 calibration...
Is it possible to get accurate values of heading,pitch and roll without GPS ?
I have a feeling youre getting bad drift because you have it setup for airstart which just grabs what's in eeprom and if it's wrong it will drift all over. You can go in the code and where it determines whether a groundstart has been completed, you can force it to calibrate on startup. The other way is with a #define, select 0 for airstart. That's the easiest.
As for using the IMU to communicate with an arduino with the serial port, the Ardupilot(legacy) uses the ArduIMU and communicates by serial. You might get ideas by looking at that example.
Thanks for your help.
#define ENABLE_AIR_START 0 was already set.
I made other tries and drift is the same even after several minutes of test.
When I let the arduimu stable , drifts stops after about 30 seconds. Just a small motion and drifts come back .
I wonder how is done calibration inside arduimu . Is it done continuously ?
Why magnetomer can't suppress drifts ?
Hmmmm, I use the IMU with the Ardupilot for stabilization and it works. If it's ready almost immediately after powering it, then it hasnt calibrated. It takes a good 20 seconds for it to calibrate, with the red and blue LEDs alternating.
What part of code needs to be change in ArduIMU_1.9.8 Firmware if we want to use ArduIMU running DCM on it without GPS..?
I've used the IMU with Ardupilot without GPS. It doesnt navigate, but it stabilizes and holds whatever heading you put it on. The Ardupilot code has a "dumb" circle too which you might be able to modify. The magnetometer heading is available for whatever you have the talent to do with it.
I've been looking at the ardupilot code and trying to add tricopter mixing. It might be simple for some.