In Clifford algebra all units forms a group, so we can construct a unit dual-quaternion from two quaternions q and t where q is a unit rotation quaternion and t is a pure quaternion representing the translation:

\[
d = (1 + \frac{1}{2}te)q = q + \frac{1}{2}tq e
\]

It's unit because

\begin{align}
d d^* &= (q + \frac{1}{2}tqe)(q^* - \frac{1}{2}q^*t e) \\
&= qq^* + (t - t)\frac{e}{2} \\
&= 1
\end{align}

Thus

\[d^{-1} = d^*\]

If there are 2 unit dual-quaternions \(d\) and \(c\) we have

\[
(dc)(dc)^* = dcc^*d^* = dd^* = 1
\]

Now we examine its action on \(R^3\). In Clifford algebra points can be represented with the form: \( w + ve\)

\[ e_{123} + (xe_{23} + ye_{31} + ze_{12})e \]

the action of the group on the space is given by

\begin{align}
& (q+\frac{1}{2}tqe)(w+ve)(q^* - \frac{1}{2}q^*te) = w + (qvq^* + h)e
\end{align}

Where

\[ h = t_x e_{23} + t_y e_{31} + t_z e_{12} \]

Another representation of points is using the translation subgroup: let \(1 + xe\) be a dual-quaternion that represents a element in \(R^3\), the action is

\begin{align}
& (q + \frac{1}{2}tq e)(1+xe)(q^* + \frac{1}{2}q^*te) \\
&= (q + qxe + \frac{1}{2}tqe)(q^* + \frac{1}{2}q^*te) \\
&= 1 + \frac{1}{2}te + qxq^*e + \frac{1}{2}te \\
&= 1 + (qxq^* + t)e
\end{align}

So the action on the elements of \(R^3\) is a rigid motion:

\[ v \mapsto qvq^* + t \]

We can combine dual-quaternions through multiplication

\begin{align}
& (q_2 + \frac{1}{2}t_2 q_2 e)(q_1 + \frac{1}{2}t_1 q_1 e) \\
&= q_2 q_1 + \frac{1}{2}(t_2 + q_2 t_1 q_2^*)q_2 q_1 e \\
&= (1 + \frac{1}{2}(t_2 + q_2 t_1 q_2^*))q_2 q_1 e
\end{align}

then we obtain

\[
v \mapsto q_2q_1vq_1^*q_2^* + q_2t_1q_2^* +t_2
\]

2016-07-09 3 comments

3 comments on “Dual Quaternion”

  1. GABRI says:

    great formulas!!!! see also
    sourceforge.net/projects/frc4/files/706
    bye from salsomaggiore IT 3 gen 2017

  2. Andrey says:

    Blending of dual quaternions can be elegantly computed in a vertex shader with complexity comparable to standard linear blending.

  3. Andrey says:

    The above blending of Dual Quaternions will compute a new Dual Quaternion which is guaranteed to represent only a rotation and a translation.

Leave a Reply

Your email address will not be published. Required fields are marked *