Skip to content

Euler Axis

Euler axis (axis-angle) attitude representation.

Provides the EulerAxis class representing a rotation as a unit axis vector and a rotation angle. Internal storage is always in radians.

EulerAxis

Rotation defined by a unit axis and angle.

The axis is stored as a shape (3,) array and the angle as a scalar, both in the configured float dtype. Angles are always stored in radians.

This class is registered as a JAX pytree with (axis, angle) as leaves and no auxiliary data.

Parameters:

Name Type Description Default
axis Array

Rotation axis (need not be unit length; will be stored as-is).

required
angle float

Rotation angle.

required
use_degrees bool

If True, interpret angle as degrees. Default: False.

False

angle property

Rotation angle in radians.

axis property

Unit rotation axis of shape (3,).

from_euler_angle(e) classmethod

Create from an EulerAngle.

Parameters:

Name Type Description Default
e EulerAngle

Source euler angle.

required

Returns:

Name Type Description
EulerAxis EulerAxis

Equivalent euler axis.

from_euler_axis(ea) classmethod

Create from another EulerAxis.

Parameters:

Name Type Description Default
ea EulerAxis

Source euler axis.

required

Returns:

Name Type Description
EulerAxis EulerAxis

Copy.

from_quaternion(q) classmethod

Create from a Quaternion.

Parameters:

Name Type Description Default
q Quaternion

Source quaternion.

required

Returns:

Name Type Description
EulerAxis EulerAxis

Equivalent euler axis.

from_rotation_matrix(r) classmethod

Create from a RotationMatrix.

Parameters:

Name Type Description Default
r RotationMatrix

Source rotation matrix.

required

Returns:

Name Type Description
EulerAxis EulerAxis

Equivalent euler axis.

from_values(x, y, z, angle, use_degrees=False) classmethod

Create from individual axis components and angle.

Parameters:

Name Type Description Default
x float

Axis x-component.

required
y float

Axis y-component.

required
z float

Axis z-component.

required
angle float

Rotation angle.

required
use_degrees bool

If True, interpret as degrees.

False

Returns:

Name Type Description
EulerAxis EulerAxis

New instance.

from_vector(v, use_degrees=False, vector_first=True) classmethod

Create from a 4-element vector.

Parameters:

Name Type Description Default
v Array

Array-like of shape (4,).

required
use_degrees bool

If True, the angle component is in degrees.

False
vector_first bool

If True, v = [x, y, z, angle]. If False, v = [angle, x, y, z].

True

Returns:

Name Type Description
EulerAxis EulerAxis

New instance.

to_euler_angle(order)

Convert to EulerAngle.

Parameters:

Name Type Description Default
order EulerAngleOrder

EulerAngleOrder specifying the rotation sequence.

required

Returns:

Name Type Description
EulerAngle EulerAngle

Equivalent euler angle.

to_euler_axis()

Return a copy.

Returns:

Name Type Description
EulerAxis EulerAxis

New instance with same data.

to_quaternion()

Convert to Quaternion.

Returns:

Name Type Description
Quaternion Quaternion

Equivalent quaternion.

to_rotation_matrix()

Convert to RotationMatrix.

Routes through quaternion.

Returns:

Name Type Description
RotationMatrix RotationMatrix

Equivalent rotation matrix.

to_vector(use_degrees=False, vector_first=True)

Return as a 4-element vector.

Parameters:

Name Type Description Default
use_degrees bool

If True, output angle in degrees.

False
vector_first bool

If True, return [x, y, z, angle]. If False, return [angle, x, y, z].

True

Returns:

Type Description
Array

jnp.ndarray: Array of shape (4,).