Society of Robots - Robot Forum

Mechanics and Construction => Mechanics and Construction => Topic started by: humblebee on October 13, 2013, 03:32:19 AM

Title: Need help in understanding IMU output
Post by: humblebee on October 13, 2013, 03:32:19 AM
Hi all ! I am new here!
We are using the IMU Vectornav vn 100 rugged, for our ground vehicle, which will move in the 2D x,y frame. ( z axis pointing downwards).

Now the IMU gives [yaw, pitch, roll ] i.e [ψ θ ϕ ] , acceleration along 3 axes, angular rate along 3 axes, magnetometer values Mx , My,Mz, at given timestamps


Cgb = rotation vector converting a vector from body frame to ground frame.

Cbi = rotation vector converting a vector from IMU frame to body frame.

Now if we consider this model http://www.ssl.umd.edu/projects/RangerNBV/thesis/2-4-1.htm (http://www.ssl.umd.edu/projects/RangerNBV/thesis/2-4-1.htm) ,

wherein the IMU frame(i) is fixed with respect to the body frame(b), but is at a constant different orientation. The body frame moves with respect to the ground frame(g).


 hence Cbi  = constant  and will be in terms of the constant angles alpha beta given in that model in that link.

now, Cgb  will be in terms of the [ψ θ ϕ ]

I have to calculate the location of the bot with respect to ground frame and trace its trajectory

My doubts are, where will the magnetometer data come in ?
In what frame is the magnetometer data given ? in imu frame or body frame ? or ground frame ?

What is wrong in calculating ag from ai , using CgbCbi = Cgi , and intergrating it with time twice and finding the displacement and hence the location at time t?

Suppose that the magnetic vector components are in some frame.
 Now  I convert it from that frame to the body frame , and  I assume the ground frame x direction to overlap with the M vector in body frame( i.e true north is along ground frame x ).
Then I will know the orientation of body frame with respect to groundframe( or the true north ). Then i can find Cgb in terms of magnetic vector components itself and wont need  [ψ θ ϕ ] values.

Hence according to these, I either need the [ψ θ ϕ ]  values or the Mx,My,Mz values, and not both.
Where am I wrong in this analysis ? where will the angular rates needed  ? In finding the location of the bot?

What i am understanding is that, the IMU generates magnetic vector data in in sensor frame, converts this data in ground frame using  [ψ θ ϕ ]. But magnetic vector data should be constant in ground frame. Hence we can solve for unknown [ψ θ ϕ ], and thus IMU generates  y,p,r values from magnetometer values.
Title: Re: Need help in understanding IMU output
Post by: jwatte on October 13, 2013, 05:20:38 PM
I would assume the magnetometer frame would be the same frame as all the other sensors -- IMU relative.
Note that the magnetic field of the Earth is *not* strictly North/South; it goes into (or out of) the ground at a steeper slope the further north you are.
You can actually calculate your latitude by comparing the magnetometer direction with the gravity vector, assuming the IMU is as rest.