dual_quat_normalize (Operator)

Name

`dual_quat_normalize` — Normalize a dual quaternion.

Signature

`dual_quat_normalize( : : DualQuaternion : DualQuaternionNormalized)`

Description

The operator `dual_quat_normalize` normalizes the input dual quaternion `DualQuaternion` and returns the normalized dual quaternion, which is also called a unit dual quaternion, in `DualQuaternionNormalized`.

For a brief introduction to dual quaternions, the used notation, and the relationship between dual quaternions and screws, see the documentation of this chapter (Transformations / Dual Quaternions).

The norm of a unit dual quaternion is 1, i.e., . This is equivalent to the following two conditions: where represents the conjugate quaternion of (see `quat_conjugate`).

A 3D rigid transformation can be represented by a unit dual quaternion.

Attention

If the norm of the real part of `DualQuaternion` is 0, `dual_quat_normalize` returns the error code 9310 (H_ERR_DQ_ZERO_NORM) because in this case no normalization is possible.

Execution Information

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Processed without parallelization.

Parameters

`DualQuaternion` (input_control)  dual_quaternion(-array) `→` (real)

Unit dual quaternion.

`DualQuaternionNormalized` (output_control)  dual_quaternion(-array) `→` (real)

Normalized dual quaternion.

Possible Predecessors

`dual_quat_compose`

Possible Successors

`dual_quat_to_hom_mat3d`

`dual_quat_interpolate`, `pose_to_dual_quat`, `screw_to_dual_quat`, `dual_quat_to_screw`, `dual_quat_to_pose`, `dual_quat_conjugate`, `serialize_dual_quat`, `deserialize_dual_quat`, `dual_quat_trans_line_3d`, `quat_normalize`