Rotate IMU data to obtain correct measurement data

Click For Summary
SUMMARY

The discussion focuses on the proper rotation of IMU data to align with the BODY frame for accurate measurements. The user is utilizing the angular velocity measurement vector ##\omega^b_{imu} = \begin{pmatrix} p\\q\\r\end{pmatrix}## in a Kalman filter, but the IMU's orientation differs from the BODY frame. The proposed solution involves applying a 180-degree rotation about the x-axis using the rotation matrix ##R_x(\phi)## to transform the measurement vector ##\omega^m_{imu}## into the correct frame. The discussion also touches on the implications of coordinate handedness in this context.

PREREQUISITES
  • Understanding of IMU (Inertial Measurement Unit) data and its representation
  • Familiarity with rotation matrices and their application in 3D transformations
  • Knowledge of Kalman filter implementation for sensor fusion
  • Basic concepts of coordinate systems and handedness in 3D space
NEXT STEPS
  • Research the implementation of rotation matrices in Python using NumPy
  • Learn about the mathematical foundations of Kalman filters for sensor data processing
  • Explore the effects of coordinate system transformations on IMU data accuracy
  • Investigate common pitfalls in aligning sensor data with reference frames
USEFUL FOR

This discussion is beneficial for robotics engineers, data scientists working with sensor fusion, and anyone involved in the calibration and alignment of IMU data in navigation systems.

hoddy
Messages
4
Reaction score
0
Hi

I have collected data from a IMU on a boat. Currently I am using the angular velocity measurement vector ##\omega^b_{imu} = \begin{pmatrix} p\\q\\r\end{pmatrix} ## for use in kalman filter, where superscript ##b## is BODY frame. The BODY frame is given be x-axis pointing forward, y-axis pointing starboard (right), and z-axis downwards. But I noticed that the IMU's orientation is not aligned with the BODY frame. The IMU axis is pointing: x forward, y left, and z upwards. The measurement vector is therefore denoted ##\omega^m_{imu} = \begin{pmatrix} p\\q\\r\end{pmatrix} ##, instead of the above, where ##m## is measurement frame. Can I then rotate 180 degrees about x-axis as follows:
##\omega^b_{imu} = R_x(\phi)\omega^m_{imu} = \begin{pmatrix}1 & 0 & 0\\0 & cos(\phi) & -sin(\phi)\\0 & sin(\phi) & cos(\phi)\end{pmatrix}\begin{pmatrix}p\\q\\r\end{pmatrix} = = \begin{pmatrix}1 & 0 & 0\\0 & -1 & 0\\0 & 0 & -1\end{pmatrix}\begin{pmatrix}p\\q\\r\end{pmatrix}##
to obtain the correct measurement data?
Thanks for any replies!
 
Engineering news on Phys.org
I assume the handedness of your coordinates isn't an issue. That would be you don't care if the axes a left or right-handed. If this is the case, why not just change the sign of Z?.
 
Your rotation matrix and equation looks good, but I must say I am a bit curious why you are unsure about that part but still fine with setting up a Kalman filter.
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
4K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 30 ·
2
Replies
30
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
Replies
4
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
Replies
3
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
31
Views
3K