Main Content

Rotation Angles to Rodrigues

Convert rotation angles to Euler-Rodrigues vector

  • Rotation Angles to Rodrigues block

Libraries:
Aerospace Blockset / Utilities / Axes Transformations

Description

The Rotation Angles to Rodrigues block converts the rotation described by the three rotation angles R1,R2,R3 into the three-element Euler-Rodrigues vector. The block Rotation Order parameter specifies both the rotation sequence as well as the order of the rotation angles in the input. For example, if Rotation Order has a value of ZYX, the block inputs are in the rotation order z-y-x (yaw, pitch, and roll). The rotation used in this block is a passive transformation between two coordinate systems. The rotation angles represent a series of right-hand intrinsic passive rotations from frame A to frame B. The resulting Euler-Rodrigues vector represents a right-hand passive rotation from frame A to frame B. For more information on Euler-Rodrigues vectors, see Algorithms.

Ports

Input

expand all

Rotation angles, in radians, from which to determine the Euler-Rodrigues vector. Values must be double.

Output

expand all

Euler-Rodrigues vector determined from rotation angles.

Data Types: double

Parameters

expand all

Rotation order, specifies the rotation order for the three input rotation angles.

The default limitations for the 'ZYX', 'ZXY', 'YXZ', 'YZX', 'XYZ', and 'XZY' sequences generate an R2 angle that lies between ±pi/2 radians (± 90 degrees), and R1 and R3 angles that lie between ±pi radians (±180 degrees).

The default limitations for the 'ZYZ', 'ZXZ', 'YXY', 'YZY', 'XYX', and 'XZX' sequences generate an R2 angle that lies between 0 and pi radians (180 degrees), and R1 and R3 angles that lie between ±pi (±180 degrees).

Rodrigues transformation is not defined for rotation angles equal to ±pi radians (±180 deg).

Programmatic Use

Block Parameter: rotationOrder
Type: character vector
Values: 'ZYX' | 'ZYZ' |'ZXY' | 'ZXZ' | 'YXZ' | 'YXY' | 'YZX' | 'YZY' | 'XYZ' | 'XYX' | 'XZY' | 'XZX'
Default: 'ZYX'

Algorithms

An Euler-Rodrigues vector b represents a rotation by integrating a direction cosine of a rotation axis with the tangent of half the rotation angle as follows:

b=[bxbybz]

where:

bx=tan(12θ)sx,by=tan(12θ)sy,bz=tan(12θ)sz

are the Rodrigues parameters. Vector s represents a unit vector around which the rotation is performed. Due to the tangent, the rotation vector is indeterminate when the rotation angle equals ±pi radians or ±180 deg. Values can be negative or positive.

References

[1] Dai, J.S. "Euler-Rodrigues formula variations, quaternion conjugation and intrinsic connections." Mechanism and Machine Theory, 92, 144-152. Elsevier, 2015.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2017a