LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to find pitch-yaw-roll angle without too much unstable displacement with 6Dof IMU

I want to read Roll-pitch-yaw information from 6 Dof IMU. I'm trying to find the roll-pitch-yaw information by reading the raw acceleration information in the IMU and converting it to degrees. But I have a problem. The information I read is unevenly biased. It does not give a fixed angle in place.I don't know exactly if filtering is necessary. The angles I read do not stand still. A vibration of 20-40 degrees occurs.

I have read many articles but I couldn't find a solution to this in labview, if anyone has any idea about this, please help
Every opinion given is valuable.

Download All
0 Kudos
Message 1 of 23
(4,453 Views)

Hello, again. 

 

So I have a few questions about what you are doing, and what you are trying to do.  First, as I understand it, a 6DOF IMU has three linear accelerometers (usually called X, Y, and Z) and three angular accelerometers, which I presume measure rotation about three orthogonal axes, maybe even the afore-mentioned X, Y, and Z.

 

When one deals with 3D rotations, conventions are very important.  One usually assumes that X, Y, and Z are orthogonal, and form a Right-hand Coordinate System.  I generally make Z "Up", X "out the nose", and Y "out the left ear".

 

So rotations:  Again, with the Right-Hand Rule, Yaw becomes "rotate about the +Z Axis" (or "look to the left", Pitch becomes "rotate about the +Y Axis" (or "look down"), and Roll becomes "rotate about the +X Axis" (or "tilt your head to the right").

 

The problem with Rotations is several fold -- one is that they don't Commute (a Roll followed by a Pitch does not give you the same result as a Pitch followed by a Roll, whereas a Translation in X followed by Translation in Y gets you to the same place if you do the Translations in the opposite order).

 

When you describe the readings from your IMU, you mention "vibration" of 20° to 40° -- is this a measurement from the gyros?  You also use the phrase "unevenly biased" -- inexpensive accelerometers (and, probably, even expensive ones!) often report a Bias and Gain setting, sometimes noting that the actual Bias and Gain can vary by ±10% of the published specs.

 

Are you interested in the final "static position" of the IMU (with respect to Gravity, as that's the only reference point when there is no rotation)?  Or are you interested in tracking the 3D translation and rotation of your IMU (which gets much more complicated)?

 

Bob Schor

Message 2 of 23
(4,419 Views)

hello Mr Bob_Schor,

First of all, to answer your questions;

 

 

So I have a few questions about what you are doing, and what you are trying to do.  First, as I understand it, a 6DOF IMU has three linear accelerometers (usually called X, Y, and Z) and three angular accelerometers, which I presume measure rotation about three orthogonal axes, maybe even the afore-mentioned X, Y, and Z.

 

When one deals with 3D rotations, conventions are very important.  One usually assumes that X, Y, and Z are orthogonal, and form a Right-hand Coordinate System.  I generally make Z "Up", X "out the nose", and Y "out the left ear".

 

So rotations:  Again, with the Right-Hand Rule, Yaw becomes "rotate about the +Z Axis" (or "look to the left", Pitch becomes "rotate about the +Y Axis" (or "look down"), and Roll becomes "rotate about the +X Axis" (or "tilt your head to the right").

-yes.I'm trying to read X,Y,Z information in this way.

 

The problem with Rotations is several fold -- one is that they don't Commute (a Roll followed by a Pitch does not give you the same result as a Pitch followed by a Roll, whereas a Translation in X followed by Translation in Y gets you to the same place if you do the Translations in the opposite order).-I don't quite understand what you want to say here.

 

When you describe the readings from your IMU, you mention "vibration" of 20° to 40° -- is this a measurement from the gyros? -no,I am just reading information from accelerometer not gyroscope.

You also use the phrase "unevenly biased" -- inexpensive accelerometers (and, probably, even expensive ones!) often report a Bias and Gain setting, sometimes noting that the actual Bias and Gain can vary by ±10% of the published specs.

  • IMU features I use
    Gyroscopes
    -Bias Stability: ≤0.05°/s
    -X Axis Accuracy: 7°/s
    -Y/Z Axis Accuracy: 0.05°/s

    accelerometers
    -Bias Stability: ≤0.05g
    -Accuracy: ±0.5g

Are you interested in the final "static position" of the IMU (with respect to Gravity, as that's the only reference point when there is no rotation)?  Or are you interested in tracking the 3D translation and rotation of your IMU (which gets much more complicated)?

-I want to get the 3D rotation angles of the IMU. I want to get pitch, yaw, roll information.

 

Are you interested in the final "static position" of the IMU (with respect to Gravity, as that's the only reference point when there is no rotation)?  Or are you interested in tracking the 3D translation and rotation of your IMU (which gets much more complicated)?

-You're talking about it being too complicated here. I've already realized its complexity :)-But I need to find a solution. Even when standing still I am reading a Degree fluctuating wildly between -20...0...20 or 90...70...50 etc.

This is not normal. I don't know if this error occurs because I just read the information on the accelerometer. I am still researching how to get pitch, yaw, roll information using Accel and Gyrosun information integrated.

 

 thanks in advance for your help.

0 Kudos
Message 3 of 23
(4,388 Views)

Something is very wrong here.  Can you do the following "experiment" --

  1. Put your IMU on a table or other stable platform, "flat" with +Z up.
  2. Record the voltages from the six sensors:  the three Accelerometers (X, Y, and Z) and the three Gyros (X, Y, and Z).
  3. Confirm that the Accelerometer Axes are in a Right-Hand system, with Z pointing "up".  Confirm my "assumption" that the X Gyro measures (again, with a Right-Hand rule) rotation about the X Axis, and similarly for the other Axes.
  4. I recommend recording 100 readings at 100 Hz.  Record the values as "volts".  Save in an Excel file (or something similarly easy to look at and analyze -- it could even be a text file).  Attach these data.  You might also attach an info sheet on the Chip so we could better understand the specs.

Here's what I would expect (assuming you are not in an active earthquake zone):

  • To a first approximation, the 100 values from each of the 6 Channels will vary by at most ±2 (where I'm assuming that the device reports its readings as a 16-bit signed integer, based on it having a 16-bit A/D converter on-board).
  • The linear accelerations for X and Y will be near 0 g (since there is no acceleration when the chip is sitting motionless on the table).  The linear acceleration for the Z axis will be near 1 g (or -1 g, depending on sign convention).
  • The gyros will all read near 0 (forgive me, I've forgotten whether they report angular acceleration or velocity).

Here's what I mean by rotations being "problematic".  Suppose I say that the Chip says that there is a linear acceleration of -1 g along the X axis, and ask "What Y/P/R produced this?".  One answer is "I looked up 90°", which is a Pitch rotation.  But another way "to get there" (don't try this!) is to Yaw 90° (looking over the left shoulder and then to Roll 90° (right-shoulder down), again bringing the nose up.

 

Bob Schor

 

 

 

0 Kudos
Message 4 of 23
(4,371 Views)
  1. Put your IMU on a table or other stable platform, "flat" with +Z up. - ok
  2. Record the voltages from the six sensors:  the three Accelerometers (X, Y, and Z) and the three Gyros (X, Y, and Z). -I can't read voltage, I can read raw data directly with serial.
  3. Confirm that the Accelerometer Axes are in a Right-Hand system, with Z pointing "up".  Confirm my "assumption" that the X Gyro measures (again, with a Right-Hand rule) rotation about the X Axis, and similarly for the other Axes.  -ok situation as you say
  4. I recommend recording 100 readings at 100 Hz.  Record the values as "volts".  Save in an Excel file (or something similarly easy to look at and analyze -- it could even be a text file).  Attach these data.  You might also attach an info sheet on the Chip so we could better understand the specs.   -As you said, I added the raw data from all accel and gyro axes to an excel file.I saved the raw data of all axes in the attached excel file. These data were taken while the IMU was stationary on the table.
0 Kudos
Message 5 of 23
(4,356 Views)

After I changed the TTL converter, I started to get faster and more accurate information. I felt the need to share the raw measurement data again. But still the problem is not solved.

These data are raw data.

0 Kudos
Message 6 of 23
(4,333 Views)

Is it normal for the Axis values to change this much even if the IMU remains constant? The values are huge. I don't think it should change that much. Because the raw data of different Imulereins don't have that much displacement I guess. It outputs like a big noise, so I don't know if the filtering will work. Is there anyone who can help with this?

 

0 Kudos
Message 7 of 23
(4,298 Views)

@constructionworker wrote:

Is it normal for the Axis values to change this much even if the IMU remains constant? The values are huge. I don't think it should change that much. Because the raw data of different Imulereins don't have that much displacement I guess. It outputs like a big noise, so I don't know if the filtering will work. Is there anyone who can help with this?

 


Use a shock absorbing mount.  You can almost watch people walking around the lab bench in your data!


"Should be" isn't "Is" -Jay
0 Kudos
Message 8 of 23
(4,294 Views)

 hi,  

Thanks for your answer and suggestion, but I put the product on the desktop, it still gives an output like this. There is nothing on the desktop that can cause movement, vibration or shock.

0 Kudos
Message 9 of 23
(4,283 Views)

@constructionworker wrote:

 hi,  

Thanks for your answer and suggestion, but I put the product on the desktop, it still gives an output like this. There is nothing on the desktop that can cause movement, vibration or shock.


The desktop is potentially even more unstable than your lab bench!  The desktop may not have anything on it that would cause that, but everything around it can certainly cause the vibrations to run up through the desk legs and into your measurement!

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 10 of 23
(4,276 Views)