View source on GitHub |
This module implements TensorFlow dual quaternion utility functions.
A dual quaternion is an extension of a quaternion with the real and dual parts and written as \(q = q_r + epsilon q_d\), where \(epsilon\) is the dual number with the property \(e^2 = 0\). It can thus be represented as two quaternions, and thus stored as 8 numbers. We define the operations in terms of the two quaternions \(q_r\) and \(q_d\), which are stored as 8-dimensional tensor.
Dual quaternions are extensions of quaternions to represent rigid transformations (rotations and translations). They are in particular important for deforming geometries as linear blending is a very close approximation of closest path blending, which is not the case for any other representation.
Functions
conjugate(...)
: Computes the conjugate of a dual quaternion.
conjugate_dual(...)
: Computes the conjugate (of dual numbers) in a dual quaternion.
from_axis_angle_translation(...)
: Converts an axis-angle rotation and translation to a dual quaternion.
from_rotation_translation(...)
: Converts a rotation matrix and translation vector to a dual quaternion.
inverse(...)
: Computes the inverse of a dual quaternion.
is_normalized(...)
: Determines if a dual quaternion is normalized or not.
multiply(...)
: Multiplies two dual quaternions.
norm(...)
: Computes the norm, which is in general a dual number.
point_to_dual_quaternion(...)
: Converts a 3D point to its dual quaternion representation.
to_rotation_translation(...)
: Converts a dual quaternion into a quaternion for rotation and translation.