Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

quat2angle

Convert quaternion to rotation angles

Syntax

[r1 r2 r3] = quat2angle(q)
[r1 r2 r3] = quat2angle(q, s)

Description

[r1 r2 r3] = quat2angle(q) calculates the set of rotation angles, r1, r2, r3, for a given quaternion, q. q is an m-by-4 matrix containing m quaternions. Each element of q must be a real number. q has its scalar number as the first column.

Rotation angles are output in radians.

r1

Returns an m array of first rotation angles.

r2

Returns an m array of second rotation angles.

r3

Returns an m array of third rotation angles.

[r1 r2 r3] = quat2angle(q, s) calculates the set of rotation angles, r1, r2, r3, for a given quaternion, q, and a specified rotation sequence, s.

The default rotation sequence is 'ZYX', where r1 is z-axis rotation, r2 is y-axis rotation, and r3 is x-axis rotation.

Supported rotation sequences are 'ZYX', 'ZYZ', 'ZXY', 'ZXZ', 'YXZ', 'YXY', 'YZX', 'YZY', 'XYZ', 'XYX', 'XZY', and 'XZX'.

Examples

Determine the rotation angles from q = [1 0 1 0].

[yaw, pitch, roll] = quat2angle([1 0 1 0])
yaw =
     0
pitch =
    1.5708
roll =
     0

Determine the rotation angles from multiple quaternions.

q = [1 0 1 0; 1 0.5 0.3 0.1];
 [pitch, roll, yaw] = quat2angle(q, 'YXZ')
pitch =
    1.5708
    0.8073
roll =
         0
    0.7702
yaw =
         0
    0.5422

Assumptions and Limitations

The limitations for the 'ZYX', 'ZXY', 'YXZ', 'YZX', 'XYZ', and 'XZY' implementations generate an r2 angle that lies between ±90 degrees, and r1 and r3 angles that lie between ±180 degrees.

The limitations for the 'ZYZ', 'ZXZ', 'YXY', 'YZY', 'XYX', and 'XZX' implementations generate an r2 angle that lies between 0 and 180 degrees, and r1 and r3 angles that lie between ±180 degrees.

Introduced in R2007b

Was this topic helpful?