I Calculating Pitch and Roll Relative to a Velocity Vector from IMU Data

FGD
Messages
46
Reaction score
12
I have an IMU that includes an accelerometer and a gyroscope. The IMU is moving through 3D space while rotating around it's z axis(yaw). Here's what I know so far:

  1. Velocity Vector: I have a 3D velocity vector (x, y, z) that was integrated from a resting position using the accelerometer data.
  2. Orientation: I also have an orientation in the form of euler angles, which has been integrated from the gyroscope data, starting from a rest position.
  3. Unknown Initial Yaw: The initial yaw around the Z-axis is unknown.
At a specific point in time, I want to calculate the Pitch and Roll angles relative to the velocity vector.

My question is: How can I determine the pitch and roll angles of the IMU relative to its velocity vector given this information? Are there specific formulas or methods that account for the unknown initial yaw?

Below is a 2D diagram that will hopefully help with understanding what I am trying to accomplish. My end goal though is in 3D space.

ConvertAccelXYRotationsToPitchRoll.jpg
 
Last edited:
Physics news on Phys.org
What's an IMU? I can guess, but it's best if you would define your terms. Can you link to the datasheet?
 
berkeman said:
What's an IMU? I can guess, but it's best if you would define your terms. Can you link to the datasheet?
This is the IMU. https://www.adafruit.com/product/4464. Nothing fancy.
 
Pitch and yaw should be available from the 3 gyroscope direction vectors. So, these axises are defined relative to the IMU board. Pitch and yaw angles are obtained from arccosine of dot products of pairs of these vectors. Which vectors depend on your convention choices.

Also, the up vector comes from the acceleration vector.
 
Paul Colby said:
Pitch and yaw should be available from the 3 gyroscope direction vectors. So, these axises are defined relative to the IMU board. Pitch and yaw angles are obtained from arccosine of dot products of pairs of these vectors. Which vectors depend on your convention choices.

Also, the up vector comes from the acceleration vector.
Is this correct? "arccosine(opposite/hypotenuse) using opposite = dot product(x, roll) and hypotenuse = dot product(y, pitch)?

Below is exacly what I am trying to accomplish.
Initial Orientation and Tracking During the Throw:

  1. Determining Initial Orientation:
    • At the start of the throw, while the IMU (Inertial Measurement Unit) is stationary, I calculate the initial orientation using the accelerometer data. This is based on the ratios of the accelerometer readings to the gravity vector (assuming the IMU is at rest and thus only measuring gravity at this point).
    • This initial orientation is relative to the IMU's coordinate system.
  2. Tracking Rotations During Flight:
    • Once the throw begins, I continuously integrate the gyroscope data to track the rotations of the IMU over time.
    • Since the IMU is mounted on a frisbee, I want to determine the exact pitch and roll of the frisbee relative to the throw direction at the moment it leaves the hand.
  3. Calculating Relative Tilt:
    • To find this tilt, I plan to:
      • Compute the difference in angles between the velocity vector (direction of the throw) and the accelerometer data at the moment of release.
      • Use this difference to rotate around the disc surface and derive the pitch and roll angles relative to the throw direction.
 
I missed that the IMU is fixed to a rotating platform. This will make things significantly more complicated. If the unit is off the center of rotation, the accelerometers will have centripetal components. I have no idea off the top of my head what the effect on the gyroscopes will be. I don’t think this is a common use case for IMUs.
 
##\textbf{Exercise 10}:## I came across the following solution online: Questions: 1. When the author states in "that ring (not sure if he is referring to ##R## or ##R/\mathfrak{p}##, but I am guessing the later) ##x_n x_{n+1}=0## for all odd $n$ and ##x_{n+1}## is invertible, so that ##x_n=0##" 2. How does ##x_nx_{n+1}=0## implies that ##x_{n+1}## is invertible and ##x_n=0##. I mean if the quotient ring ##R/\mathfrak{p}## is an integral domain, and ##x_{n+1}## is invertible then...
The following are taken from the two sources, 1) from this online page and the book An Introduction to Module Theory by: Ibrahim Assem, Flavio U. Coelho. In the Abelian Categories chapter in the module theory text on page 157, right after presenting IV.2.21 Definition, the authors states "Image and coimage may or may not exist, but if they do, then they are unique up to isomorphism (because so are kernels and cokernels). Also in the reference url page above, the authors present two...
When decomposing a representation ##\rho## of a finite group ##G## into irreducible representations, we can find the number of times the representation contains a particular irrep ##\rho_0## through the character inner product $$ \langle \chi, \chi_0\rangle = \frac{1}{|G|} \sum_{g\in G} \chi(g) \chi_0(g)^*$$ where ##\chi## and ##\chi_0## are the characters of ##\rho## and ##\rho_0##, respectively. Since all group elements in the same conjugacy class have the same characters, this may be...
Back
Top