Module: tfg.geometry.transformation.quaternion

This module implements TensorFlow quaternion utility functions.

A quaternion is written as \(q = xi + yj + zk + w\), where \(i,j,k\) forms the three bases of the imaginary part. The functions implemented in this file use the Hamilton convention where \(i^2 = j^2 = k^2 = ijk = -1\). A quaternion is stored in a 4-D vector \([x, y, z, w]^T\).

More details about Hamiltonian quaternions can be found on this page.

Functions

between_two_vectors_3d(...): Computes quaternion over the shortest arc between two vectors.

conjugate(...): Computes the conjugate of a quaternion.

from_axis_angle(...): Converts an axis-angle representation to a quaternion.

from_euler(...): Converts an Euler angle representation to a quaternion.

from_euler_with_small_angles_approximation(...): Converts small Euler angles to quaternions.

from_rotation_matrix(...): Converts a rotation matrix representation to a quaternion.

inverse(...): Computes the inverse of a quaternion.

is_normalized(...): Determines if quaternion is normalized quaternion or not.

multiply(...): Multiplies two quaternions.

normalize(...): Normalizes a quaternion.

normalized_random_uniform(...): Random normalized quaternion following a uniform distribution law on SO(3).

normalized_random_uniform_initializer(...): Random unit quaternion initializer.

relative_angle(...): Computes the unsigned relative rotation angle between 2 unit quaternions.

rotate(...): Rotates a point using a quaternion.