From 19c5363dbea9e265eb95948eb2cb73986bbb6926 Mon Sep 17 00:00:00 2001 From: Alexander Fabisch Date: Sun, 6 Oct 2024 17:57:41 +0200 Subject: [PATCH] Update documentation of dual quat. multiplication --- .../_dual_quaternion_operations.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/pytransform3d/transformations/_dual_quaternion_operations.py b/pytransform3d/transformations/_dual_quaternion_operations.py index 20053c06..6b12893a 100644 --- a/pytransform3d/transformations/_dual_quaternion_operations.py +++ b/pytransform3d/transformations/_dual_quaternion_operations.py @@ -66,12 +66,18 @@ def dq_q_conj(dq): def concatenate_dual_quaternions(dq1, dq2): - """Concatenate dual quaternions. + r"""Concatenate dual quaternions. - Suppose we want to apply two extrinsic transforms given by dual - quaternions dq1 and dq2 to a vector v. We can either apply dq2 to v and - then dq1 to the result or we can concatenate dq1 and dq2 and apply the - result to v. + We concatenate two dual quaternions by dual quaternion multiplication + + .. math:: + + (\boldsymbol{p}_1 + \epsilon \boldsymbol{q}_1) + (\boldsymbol{p}_2 + \epsilon \boldsymbol{q}_2) + = \boldsymbol{p}_1 \boldsymbol{p}_2 + \epsilon ( + \boldsymbol{p}_1 \boldsymbol{q}_2 + \boldsymbol{q}_1 \boldsymbol{p}_2) + + using Hamilton multiplication of quaternions. .. warning:: @@ -93,6 +99,11 @@ def concatenate_dual_quaternions(dq1, dq2): dq3 : array, shape (8,) Product of the two dual quaternions: (pw, px, py, pz, qw, qx, qy, qz) + + See Also + -------- + pytransform3d.rotations.concatenate_quaternions + Quaternion multiplication. """ dq1 = check_dual_quaternion(dq1) dq2 = check_dual_quaternion(dq2)