using 9 Degrees of Freedom - Razor IMU - AHRS

@aggrav8d...

cool...you solved my big problem....thanks.

Regarding your raw output question...as far as i can understand it the first three values correspond to the accelerometer readings X, Y, Z and the other 3 correpond to gyro readings X, Y, Z...the last ones are for magnetometer...

I think we can use these values directly for stabilization purposes...i dont understand why you need the firmware from google?

When you say readings, what do they mean, exactly? I don't know what the values represent.

I mean if you choose one of the 4 options by selecting 1or 2 or 3 or 4 by printing it on serial port then 1 corresponds to accelerometer readings i.e. what is the value of x-axis acceleration of board, y -axis acceleration of board and its z axis acceleration...in rest the z axis is either -260 or 260 depending on whether its face up or down....it correspond to acceleration due to gravity "g = 9.8m/sec" actually....

similarly if you print 2 then the IMU will give you Magnetometer data....if 3 it will give gyro i.e. gyro average position (i am not sure about it but its something like this)...if you tilt board in one direction its value increases in other direction its value decreases...its true for all 3 axis..

printing 4 will give you all this data together...so that you can code it easily getting all data you need at one place...its first three readings corresponds to x,y,x axis acceleration. next 3 readins corresponds to gyro and last three to the magnetomer....

let me know if you got it or not?

I got it. I just wanted to confirm that the magnetometer and gyro data were yaw/pitch/roll. I didn't know that gravity was affecting the accelerometers. Interesting.

i can say that for gyro but in fact i don't know how magnetometer is helpful in determining yaw/pitch/roll...if you figure out or get some useful link do let me know...

i will keep you posted....rather let me know your email ID as well so that we can communicate otherwise...

good luck

post it here for the other 9DOF users who are frustrated with the documentation.

Something is weird here...actually the data is not read by the arduino.....rather arduino is only used as a bridge here.....write no code in Arduino....even then the data is received.....

I read on Arduino that grounding the reset, reset micro-controller..

and we are here keeping it Gnd that is we are just bypassing micro-controller that is not desired.

That's not wierd at all. My goal is to get to the sensor, learn what it is doing, then write code to talk to it. When I have it working I can use Serial to talk to it while the PC is disconnected.

Your goals may not be the same as mine :slight_smile:

No....actually thats exactly what i want...but if you remove the reset to gnd connection then you didn't receive anything....i am trying too..let me know if you are able to analyze raw data from micro-controller....

What I understand is that if you don't have the PC connection you still get the data. However, the RX/TX pins have to be swapped. I try to remember that they have to be backwards when using the arduino as poor man's FTDI.

I also got it but if i write 4 on the IMU the data is received but it stops after a minute or two....after that i have to reset Arduino and IMU to get new data....

I can't understand why is that happening...try to see and confirm by toggling an led that are you receiving data continuously?

Can I interpret raw data in anyway to control my Helicopter? I started with yaw control, First i detect the change in Gyro reading about Z-axis (Vertical axis), then i see that the magnetometer readings increase or decrease from what those were initially. So that i can turn the helicopter in the other direction to maintain its position. But the problem is that sometimes the magnetometer increases when heli turns right and some time when it turns left!

So i can't find out whether to turn left or right to reach the initial state.

I dont think that we can use accelerometer for yaw control as it immediately returns to its original position after increasing or decreasing.

Any insight on how these three devices (Gyro, Accelerometer and magnetometer) work side by side.

thanks!

Please help!

Accelerometer will always try to return to 0 when there is no movement. Remember it is reporting acceleration, not velocity or position. that's why if you leave it flat on a table the AZ is a big number - it is accelerating downward because of gravity.

I don't have any insights on the gyro and magno other than I was told they give yaw, pitch, and roll. turning those three numbers into a vector should be fuuuuun.

Here is what I THINK how those might be useful:

Lets start with yaw!

Gyro increase or decrease will tell us the direction in which we moved (clockwise/anticlockwise) left or right.

The magnetometer readings difference can then be reduced by turning in the opposite direction in which we moved.

Accelerometers are for playing with the speed in three axis.

aggrav8d....

Any update dude. Have you tried the AHRS code by any chance.....i am trying to get the stability using the same scheme i mentioned below. Some success but not much.

Let me know what are you upto.

I'm waiting on a logic step-down from sparkfun. I had been connecting the 3.3v imu to a 5v input from the arduino and the last thing I want is to shorten the breakout's life. Once I have it I'll be able to start running some serious tests and get my gimbal gyro working.

I finally got back to my 9 axis ahrs project yesterday. I am using 3 9-dof so I get 9 axes and therefore can auto-calibrate and automatically detect sensor failure.

I had to double post for the images since the forum has a rule that you cant post links in your very first post.

http://imagebin.org/103813
http://imagebin.org/103814

Hii... Nice to meet you all.

I just get this module (9 DOF Razor IMU) with ATMEGA 328 from sparkfun.com. Then i connect to laptop using FTDI Basic 3.3V. Start Arduino 0021 software, choose board : Arduino Pro or Pro Mini (3.3V, 8MHz) w/ ATMEGA 328. Then open the serial monitor, i get this :

.....

$,0,29,197,384,387,385,903,-173,305,#

$,2,28,198,385,386,385,903,-173,305,#

$,1,30,196,387,390,388,909,-171,313,#
....

Endless of output.

What is it mean?
Why i didn't the instruction to follow? (as tell by somebody in this topic)

I try to type 1 then click send on serial monitor, but no change on the output. Then i try other number until 5, nothing i get. The output no change. Also i already push reset but still no change.

Does anybody have manual for this module?

Please Help, thanks