tfg.geometry.transformation.quaternion.relative_angle

Computes the unsigned relative rotation angle between 2 unit quaternions.

tfg.geometry.transformation.quaternion.relative_angle(
    quaternion1,
    quaternion2,
    name=None
)

Defined in geometry/transformation/quaternion.py.

Given two normalized quanternions

\(\mathbf{q}_1\)
and
\(\mathbf{q}_2\)
, the relative angle is computed as
\(\theta = 2\arccos(\mathbf{q}_1^T\mathbf{q}_2)\)
.

Note:

In the following, A1 to An are optional batch dimensions.

Args:

  • quaternion1: A tensor of shape [A1, ..., An, 4], where the last dimension represents a normalized quaternion.
  • quaternion2: A tensor of shape [A1, ..., An, 4], where the last dimension represents a normalized quaternion.
  • name: A name for this op that defaults to "quaternion_relative_angle".

Returns:

A tensor of shape [A1, ..., An, 1] where the last dimension represents rotation angles in the range [0.0, pi].

Raises:

  • ValueError: If the shape of quaternion1 or quaternion2 is not supported.