Mapping Coordinate Systems Using Quaternions

Click For Summary
SUMMARY

This discussion focuses on mapping accelerations from an inertial measurement unit (IMU) to its initial orientation using quaternions. The initial orientation is represented by the identity quaternion (1,0,0,0), while the current orientation is denoted as Q_{c}. The transformation to map accelerations involves the quaternion R, defined as R = Q^{-1}_{i}Q_{c}. The final acceleration reading in the initial orientation is given by \vec{a_{c}} = <-x,-y,z>, indicating a sign inversion for the x and y components when transitioning from the current to the initial orientation.

PREREQUISITES
  • Understanding of quaternion mathematics and operations
  • Familiarity with inertial measurement units (IMUs)
  • Knowledge of coordinate transformations
  • Basic experience with vector algebra
NEXT STEPS
  • Research quaternion rotation and its applications in 3D graphics
  • Explore the implementation of IMU data fusion techniques
  • Learn about the mathematical foundations of coordinate transformations
  • Investigate the effects of sensor noise on IMU readings
USEFUL FOR

This discussion is beneficial for robotics engineers, game developers, and anyone working with IMU data who needs to accurately map sensor readings to a fixed coordinate system.

ChuckFinley
Messages
2
Reaction score
0
During the course of working with inertial measurement units (IMU) I have run into a problem.

The issue is that an IMU reports accelerations relative to the IMU's orientation rather than it's initial orientation. The IMU's initial orientation is the identity quaternion (1,0,0,0). All changes in the IMU's orientation will be relative to the initial orientation.

With this in mind, I have tried to create a way to map the accelerations of the IMU's specific orientation to that of it initial orientation. e.x. If the IMU is rotated but not accelerated the acceleration in the initial orientation should be constant.


So far I have this.

Let Q_{i} be the quaternion that represents the IMU's initial orientation (1,0,0,0).
Let Q_{c} be the quaternion that represents the IMU's current orientation.
Let R be the quaternion that describes the quaternion that represents the quaternion required to rotate Q_{c} to Q_{i}.

Let \vec{a_{i}} be the acceleration reading from the IMU initial orientation.
Let \vec{a_{c}} be the acceleration reading from IMU's current orientation.


R = Q_{i} Q^{-1}_{c}

Then: (the 0 above the vector is to show the vector is being transformed to a quaternion where w = 0)

\left(\stackrel{\textbf{0}}{\vec{a_{i}}}\right) = R\left(\stackrel{\textbf{0}}{\vec{a_{c}}}\right) R^{-1}

But this above equation only works when the IMU is rotated around 1 axis from it's initial position. For example, the logic holds when rotated around X, but not when rotated around both X and Y.

Thanks so much!
 
Engineering news on Phys.org
I'm sorry you are not generating any responses at the moment. Is there any additional information you can share with us? Any new findings?
 
After some digging on the internet, I was able to look at some source code from another research paper.

The corrections that needed to be made are:

R = Q^{-1}_{i}Q_{c}

and

\vec{a_{c}} = &lt;-x,-y,z&gt;

Strangely, I don't understand why x and y become opposites but it does work. Any ideas on why this might be would be very nice!

Hope this helps anyone in the future that may run into the same problem.

Thanks again.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 7 ·
Replies
7
Views
23K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 14 ·
Replies
14
Views
3K
  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K