unilab.tasks.motion_tracking.common.tensor_rotation

Device-resident rotation primitives shared by tensor task owners.

Functions

quat_apply(quat_wxyz, vector)

Apply broadcast-compatible wxyz quaternions to vectors.

quat_apply_inverse(quat_wxyz, vector)

Rotate vectors by the inverse of broadcast-compatible unit quaternions.

quat_conjugate(quat_wxyz)

Conjugate broadcast-compatible unit quaternions in wxyz order.

quat_from_euler_xyz(roll, pitch, yaw)

Convert broadcast-compatible XYZ Euler angles to wxyz quaternions.

quat_mul(left_wxyz, right_wxyz)

Multiply broadcast-compatible wxyz quaternions without a host detour.

quat_roll_pitch(quat_wxyz)

Return roll and pitch in radians from broadcast-compatible wxyz quaternions.

quat_to_axis_angle(quat_wxyz)

Convert batched unit wxyz quaternions to axis-angle vectors.

quat_to_rot6(quat_wxyz)

Flatten the first two rotation-matrix columns of wxyz quaternions.

unilab.tasks.motion_tracking.common.tensor_rotation.quat_apply(quat_wxyz, vector)[source]

Apply broadcast-compatible wxyz quaternions to vectors.

Parameters:
Return type:

Tensor

unilab.tasks.motion_tracking.common.tensor_rotation.quat_apply_inverse(quat_wxyz, vector)[source]

Rotate vectors by the inverse of broadcast-compatible unit quaternions.

Parameters:
Return type:

Tensor

unilab.tasks.motion_tracking.common.tensor_rotation.quat_conjugate(quat_wxyz)[source]

Conjugate broadcast-compatible unit quaternions in wxyz order.

Parameters:

quat_wxyz (Tensor)

Return type:

Tensor

unilab.tasks.motion_tracking.common.tensor_rotation.quat_from_euler_xyz(roll, pitch, yaw)[source]

Convert broadcast-compatible XYZ Euler angles to wxyz quaternions.

Parameters:
Return type:

Tensor

unilab.tasks.motion_tracking.common.tensor_rotation.quat_mul(left_wxyz, right_wxyz)[source]

Multiply broadcast-compatible wxyz quaternions without a host detour.

Parameters:
Return type:

Tensor

unilab.tasks.motion_tracking.common.tensor_rotation.quat_roll_pitch(quat_wxyz)[source]

Return roll and pitch in radians from broadcast-compatible wxyz quaternions.

Parameters:

quat_wxyz (Tensor)

Return type:

tuple[Tensor, Tensor]

unilab.tasks.motion_tracking.common.tensor_rotation.quat_to_axis_angle(quat_wxyz)[source]

Convert batched unit wxyz quaternions to axis-angle vectors.

This follows the NumPy owner’s canonicalized atan2/Taylor form so tensor observations preserve the established numerical semantics near zero angle.

Parameters:

quat_wxyz (Tensor)

Return type:

Tensor

unilab.tasks.motion_tracking.common.tensor_rotation.quat_to_rot6(quat_wxyz)[source]

Flatten the first two rotation-matrix columns of wxyz quaternions.

Parameters:

quat_wxyz (Tensor)

Return type:

Tensor