Euler Angles¶
Euler angle attitude representation.
Provides the EulerAngleOrder enum defining the 12 standard Euler angle
rotation sequences, and the EulerAngle class representing an attitude
as three successive rotations.
The EulerAngleOrder values are contiguous integers 0--11, suitable for
use as branch indices in jax.lax.switch for JIT-compatible dispatch.
EulerAngle
¶
Attitude represented as three successive rotations about specified axes.
Internal storage is always in radians. The use_degrees parameter on
the constructor converts degree inputs to radians on construction.
This class is registered as a JAX pytree. The three angle scalars are
leaves; the order (an EulerAngleOrder) is auxiliary data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
order
|
EulerAngleOrder
|
Rotation sequence (e.g. |
required |
phi
|
float
|
First rotation angle. |
required |
theta
|
float
|
Second rotation angle. |
required |
psi
|
float
|
Third rotation angle. |
required |
use_degrees
|
bool
|
If |
False
|
order
property
¶
Rotation sequence.
phi
property
¶
First rotation angle in radians.
psi
property
¶
Third rotation angle in radians.
theta
property
¶
Second rotation angle in radians.
from_euler_angle(e, order)
classmethod
¶
Create from another EulerAngle with a different order.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
e
|
EulerAngle
|
Source euler angle. |
required |
order
|
EulerAngleOrder
|
Target rotation sequence. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EulerAngle |
EulerAngle
|
Equivalent euler angle in the target order. |
from_euler_axis(ea, order)
classmethod
¶
Create from an EulerAxis.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ea
|
EulerAxis
|
Source euler axis. |
required |
order
|
EulerAngleOrder
|
Target rotation sequence. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EulerAngle |
EulerAngle
|
Equivalent euler angle. |
from_quaternion(q, order)
classmethod
¶
Create from a Quaternion.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
q
|
Quaternion
|
Source quaternion. |
required |
order
|
EulerAngleOrder
|
Target rotation sequence. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EulerAngle |
EulerAngle
|
Equivalent euler angle. |
from_rotation_matrix(r, order)
classmethod
¶
Create from a RotationMatrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
r
|
RotationMatrix
|
Source rotation matrix. |
required |
order
|
EulerAngleOrder
|
Target rotation sequence. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EulerAngle |
EulerAngle
|
Equivalent euler angle. |
from_vector(vec, order, use_degrees=False)
classmethod
¶
Create from a 3-element vector [phi, theta, psi].
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
vec
|
Array
|
Array-like of shape (3,). |
required |
order
|
EulerAngleOrder
|
Rotation sequence. |
required |
use_degrees
|
bool
|
If |
False
|
Returns:
| Name | Type | Description |
|---|---|---|
EulerAngle |
EulerAngle
|
New instance. |
to_euler_angle(order)
¶
Convert to EulerAngle with a (possibly different) order.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
order
|
EulerAngleOrder
|
Target rotation sequence. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EulerAngle |
EulerAngle
|
Equivalent euler angle in the target order. |
to_euler_axis()
¶
to_quaternion()
¶
to_rotation_matrix()
¶
Convert to RotationMatrix.
Returns:
| Name | Type | Description |
|---|---|---|
RotationMatrix |
RotationMatrix
|
Equivalent rotation matrix. |
EulerAngleOrder
¶
Bases: IntEnum
The 12 standard Euler angle rotation sequences.
Each member specifies the axes for three successive rotations. For
example, XYZ means rotate first about X, then Y, then Z.
Values are contiguous integers 0--11 for use as jax.lax.switch
branch indices.
Attributes:
| Name | Type | Description |
|---|---|---|
XYX |
X-Y-X symmetric sequence (index 0). |
|
XYZ |
X-Y-Z Tait-Bryan sequence, also known as Roll-Pitch-Yaw (index 1). |
|
XZX |
X-Z-X symmetric sequence (index 2). |
|
XZY |
X-Z-Y Tait-Bryan sequence (index 3). |
|
YXY |
Y-X-Y symmetric sequence (index 4). |
|
YXZ |
Y-X-Z Tait-Bryan sequence (index 5). |
|
YZX |
Y-Z-X Tait-Bryan sequence (index 6). |
|
YZY |
Y-Z-Y symmetric sequence (index 7). |
|
ZXY |
Z-X-Y Tait-Bryan sequence (index 8). |
|
ZXZ |
Z-X-Z symmetric sequence (index 9). |
|
ZYX |
Z-Y-X Tait-Bryan sequence, also known as Yaw-Pitch-Roll (index 10). |
|
ZYZ |
Z-Y-Z symmetric sequence (index 11). |