dual_quat_interpolate — Interpolate two dual quaternions.
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 the documentation of this chapter (Transformations / Dual Quaternions).
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.
Dual quaternion as the start point of the interpolation.
Dual quaternion as the end point of the interpolation.
Default value: 0.5
Suggested values: 0.0, 0.25, 0.5, 0.75, 1.0
Interpolated dual quaternion.
pose_to_dual_quat, screw_to_dual_quat, dual_quat_normalize
dual_quat_to_hom_mat3d, dual_quat_to_pose, dual_quat_to_screw
dual_quat_compose, dual_quat_conjugate, serialize_dual_quat, deserialize_dual_quat, dual_quat_trans_line_3d, quat_interpolate