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 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 for three wind 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

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

Version History

Introduced in R2017a