dual_quat_interpolateπ
Short descriptionπ
dual_quat_interpolate β Interpolate two dual quaternions.
Signatureπ
dual_quat_interpolate( dual_quaternion DualQuaternionStart, dual_quaternion DualQuaternionEnd, real InterpPos, out dual_quaternion DualQuaternionInterpolated )
Descriptionπ
The operator dual_quat_interpolate interpolates the two dual
quaternions DualQuaternionStart and DualQuaternionEnd
at the interpolation position InterpPos.
For a brief introduction to dual quaternions, the used notation, and the
relationship between dual quaternions and screws, see
βSolution Guide III-C - 3D Visionβ.
For interpolations, the position InterpPos must lie within the
interval \([0,1]\). However, values outside this interval are also
possible, which then correspond to an extrapolation. For
\(\textrm{InterpPos}=0\), the interpolated dual quaternion
DualQuaternionInterpolated corresponds to
DualQuaternionStart. For \(\textrm{InterpPos}=1\), the
interpolated dual quaternion DualQuaternionInterpolated corresponds
to DualQuaternionEnd.
The interpolation is performed by using screw linear interpolation (ScLERP).
If both DualQuaternionStart and DualQuaternionEnd are unit
dual quaternions, DualQuaternionInterpolated will be a unit dual
quaternion as well. Hence, dual_quat_interpolate can be used to
smoothly interpolate between two 3D rigid transformations.
Note that the interpolation of the rotation parts of
DualQuaternionStart and DualQuaternionEnd is performed
identically to the interpolation of quaternions, i.e., the screw angle
is interpolated linearly (see quat_interpolate). The interpolation
of the translation part is done by linearly interpolating the screw
translation.
It is possible to pass a tuple of values for InterpPos. In this
case, a tuple of interpolated DualQuaternionInterpolated is
returned, one for each value in InterpPos. This is more
efficient than calling dual_quat_interpolate multiple times with
a single value for InterpPos.
Execution informationπ
Execution information
-
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
-
Multithreading scope: global (may be called from any thread).
-
Processed without parallelization.
Parametersπ
DualQuaternionStart (input_control) dual_quaternion β (real)
Dual quaternion as the start point of the interpolation.
DualQuaternionEnd (input_control) dual_quaternion β (real)
Dual quaternion as the end point of the interpolation.
InterpPos (input_control) real(-array) β (real)
Interpolation parameter.
Default: 0.5
Suggested values: 0.0, 0.25, 0.5, 0.75, 1.0
DualQuaternionInterpolated (output_control) dual_quaternion(-array) β (real)
Interpolated dual quaternion.
Combinations with other operatorsπ
Combinations
Possible predecessors
pose_to_dual_quat, screw_to_dual_quat, dual_quat_normalize
Possible successors
dual_quat_to_hom_mat3d, dual_quat_to_pose, dual_quat_to_screw
See also
dual_quat_compose, dual_quat_conjugate, serialize_dual_quat, deserialize_dual_quat, dual_quat_trans_line_3d, dual_quat_trans_point_3d, quat_interpolate
Moduleπ
Foundation