Skip to content

dual_quat_conjugateDualQuatConjugateDualQuatConjugatedual_quat_conjugateT_dual_quat_conjugateπŸ”—

Short descriptionπŸ”—

dual_quat_conjugateDualQuatConjugateDualQuatConjugatedual_quat_conjugateT_dual_quat_conjugate β€” Conjugate a dual quaternion.

SignatureπŸ”—

dual_quat_conjugate( dual_quaternion DualQuaternion, out dual_quaternion DualQuaternionConjugate )void DualQuatConjugate( const HTuple& DualQuaternion, HTuple* DualQuaternionConjugate )static void HOperatorSet.DualQuatConjugate( HTuple dualQuaternion, out HTuple dualQuaternionConjugate )def dual_quat_conjugate( dual_quaternion: Sequence[float] ) -> Sequence[float]

Herror T_dual_quat_conjugate( const Htuple DualQuaternion, Htuple* DualQuaternionConjugate )

static HDualQuaternionArray HDualQuaternion::DualQuatConjugate( const HDualQuaternionArray& DualQuaternion )

HDualQuaternion HDualQuaternion::DualQuatConjugate( ) const

static HDualQuaternion[] HDualQuaternion.DualQuatConjugate( HDualQuaternion[] dualQuaternion )

HDualQuaternion HDualQuaternion.DualQuatConjugate( )

DescriptionπŸ”—

The operator dual_quat_conjugateDualQuatConjugate computes the conjugation DualQuaternionConjugatedualQuaternionConjugatedual_quaternion_conjugate of the input dual quaternion DualQuaterniondualQuaterniondual_quaternion.

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”.

The conjugation of a dual quaternion \(\hat{q} = q_{r} + \varepsilon q_{d}\) is given by \(\bar{\hat{q}} = \bar{q}_{r} + \varepsilon \bar{q}_{d}\), where \(\bar{q}_{r}\) and \(\bar{q}_{d}\) are the conjugations of the quaternions \(q_{r}\) and \(q_{d}\).

For the conjugation of quaternions see quat_conjugateQuatConjugate.

If DualQuaterniondualQuaterniondual_quaternion is a unit dual quaternion and, hence, represents a 3D rigid transformation, its inverse is its conjugate, i.e., \(\hat{q}^{-1}=\bar{\hat{q}}\). Consequently, DualQuaternionConjugatedualQuaternionConjugatedual_quaternion_conjugate represents the inverse 3D rigid transformation of DualQuaterniondualQuaterniondual_quaternion. Therefore, dual_quat_conjugateDualQuatConjugate can be used to invert a 3D rigid transformation analogously to pose_invertPoseInvert or hom_mat3d_invertHomMat3dInvert.

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πŸ”—

DualQuaterniondualQuaterniondual_quaternion (input_control) dual_quaternion(-array) β†’ (real)HTuple (double)HDualQuaternion, HTuple (double)Sequence[float]Htuple (double)

Dual quaternion.

DualQuaternionConjugatedualQuaternionConjugatedual_quaternion_conjugate (output_control) dual_quaternion(-array) β†’ (real)HTuple (double)HDualQuaternion, HTuple (double)Sequence[float]Htuple (double)

Conjugate of the dual quaternion.

Combinations with other operatorsπŸ”—

Combinations

Possible predecessors

dual_quat_composeDualQuatCompose, pose_to_dual_quatPoseToDualQuat, screw_to_dual_quatScrewToDualQuat

Possible successors

dual_quat_composeDualQuatCompose, dual_quat_to_hom_mat3dDualQuatToHomMat3d, dual_quat_to_screwDualQuatToScrew, dual_quat_interpolateDualQuatInterpolate, dual_quat_to_poseDualQuatToPose

Alternatives

pose_invertPoseInvert, hom_mat3d_invertHomMat3dInvert

See also

dual_quat_normalizeDualQuatNormalize, serialize_dual_quatSerializeDualQuat, deserialize_dual_quatDeserializeDualQuat, dual_quat_trans_line_3dDualQuatTransLine3d, dual_quat_trans_point_3dDualQuatTransPoint3d, quat_conjugateQuatConjugate

ModuleπŸ”—

Foundation