quat2eul(quat) and dcm2Angle(R) difference for ZYX sequence

8 views (last 30 days)
I've converted a quaternion to Euler angle using quat2eul(q,'ZYX') and a rotation matrix to Euler angle with function dcm2Angle(R,'ZYX'). However, the resulted graph is inverted (upside down). Example , if yaw angle from quaternion is up, yaw angle from dcm2Angle is down. How could that happen ?
Any help would be apperciated.
Thanks

Accepted Answer

James Tursa
James Tursa on 7 May 2020
Edited: James Tursa on 9 May 2020
MATLAB uses two different quaternion conventions in their toolboxes. In particular, the quaternion convention used in the Aerospace Toolbox is essentially the conjugate of the quaternion convention used in their Robotics Toolbox. See these links for more details of that difference:
The quat2eul( ) function comes from the Robotics Toolbox.
The dcm2Angle( ) function comes from the Aerospace Toolbox.
So these functions come from toolboxes with different definitions of quaternion conventions, and how to convert between quaternions and direction cosine matrices and Euler angles will be different between them.
Bottom line is you cannot mix & match functions from these toolboxes and expect consistency. Depending on what you are doing, one can give you the opposite answer as the other. You need to determine what quaternion convention you will be using, and then use the appropriate functions from the appropriate toolbox that uses the same convention.
The Robotics Toolbox "rotation matrix" is in fact a direction cosine matrix ... just another term for the same thing. It is the conversions between it and quaternions and Euler Angles that are different from the Aerospace Toolbox.

More Answers (1)

Ameer Hamza
Ameer Hamza on 7 May 2020
dcm2angle does not take the rotation matrix as input. It takes direction cosine matrix (DCM). to convert rotation matrix to Euler angles use rotm2eul() https://www.mathworks.com/help/robotics/ref/rotm2eul.html
  1 Comment
Serhii Bahdasariants
Serhii Bahdasariants on 22 Feb 2022
I don't think there is a difference in numerical values of the rotation and direction cosine matrices, is there?

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!