Operator Reference
dual_quat_interpolate (Operator)
dual_quat_interpolate
— Interpolate two dual quaternions.
Signature
dual_quat_interpolate( : : DualQuaternionStart, DualQuaternionEnd, InterpPos : 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 . However, values outside this interval are also
possible, which then correspond to an extrapolation. For
InterpPos
=0, the interpolated dual quaternion
DualQuaternionInterpolated
corresponds to
DualQuaternionStart
. For 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
- 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.
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