jaxtransform3d.transformations.norm_dual_quaternion#
- jaxtransform3d.transformations.norm_dual_quaternion(dual_quat)[source]#
Normalize unit dual quaternion.
A unit dual quaternion has a real quaternion with unit norm and an orthogonal real part. Both properties are enforced by this function.
We use a two-step normalization procedure (see [2] for details):
Multiply the dual quaternion \(\sigma = p + q \epsilon\) with the normalization factor \(\frac{1}{\sqrt{s}} = \frac{1}{\sqrt{p^T p}}\) for the real quaternion to obtain \(\sigma' = \frac{\sigma}{\sqrt{s}}\), which ensures that the norm is \(1 + t' \epsilon\).
Multiply \(\sigma' = p' + q' \epsilon\) with the normalization factor \((1 - \frac{t'}{2} \epsilon)\) for the dual quaternion (since s’ = 1) to obtain \(\sigma'' = p' + q' \epsilon - p'^T q' p' \epsilon\).
- Parameters:
- dual_quatarray-like, shape (…, 8)
Dual quaternion to represent transform: (pw, px, py, pz, qw, qx, qy, qz)
- Returns:
- dual_quat_normarray, shape (…, 8)
Unit dual quaternion to represent transform with orthogonal real and dual quaternion.
See also
dual_quaternion_squared_norm
Computes the squared norm of a dual quaternion.
References
[1]enki (2023). Properly normalizing a dual quaternion. https://stackoverflow.com/a/76313524
[2]Alexander Fabisch (2025). Normalizing dual quaternions. https://alexanderfabisch.github.io/normalizing-dual-quaternions.html