0

I am familarizing with a common skinning techinque used in animation, the Dual Quaternion Skinning. Since the original paper is not long I am going through the math myself.

There's equation 3 which I cannot manage to derive.

$$ \left\lVert \hat{q} \right\rVert = \sqrt{\hat{q}^*\hat{q}} = \left\lVert q_0 \right\rVert + \epsilon \frac{\left\langle q_0,q_{\epsilon}\right\rangle}{\left\lVert q_0 \right\rVert} $$

Here $\hat{q}$ is a generic dual quaternion, which is expressed $\hat{q} = q_0 + \epsilon q_{\epsilon}$. Both $q_0$ and $q_\epsilon$ are normal quaternions and $\epsilon$ is the dual unit with the property $\epsilon^2 = 0$ and commutes with the quaternions unit. Moreover $\hat{q}^*$ denotes the conjugate.

I do believe the equality

$$ \sqrt{\hat{q}^*\hat{q}} = \left\lVert q_0 \right\rVert + \epsilon \frac{\left\langle q_0,q_{\epsilon}\right\rangle}{\left\lVert q_0 \right\rVert} $$

Can be proven by direct calculations however I tried this calculation several times but I cannot get it. I saw online and I find that at the end it should be same as the norm of a normal quaternion, so not the same expression.

How can I derive such expression?

user8469759
  • 5,285
  • $$ q^q = (q_0^ + \epsilon q_\epsilon^)(q_0 + \epsilon q_\epsilon) = q_0^q_0 + \epsilon(q_0^q_\epsilon + q_\epsilon^q_0) = ||q_0||^2 + 2\epsilon\langle q_0, q_\epsilon\rangle. $$ Since this is a pure dual number and $||q_0||^2$ is positive, you can apply the square root formula from the previous paragraph of the article. – Nicholas Todoroff Jan 02 '23 at 19:11
  • I am a bit confused how you got $$ \epsilon(q_0^q_\epsilon + q_\epsilon^q_0) = 2\epsilon\langle q_0, q_\epsilon\rangle. $$ Also where's the definition of $\langle \cdot,\cdot \rangle$ the paper doesn't seem to mention it for quaternions (although I can imagine) – user8469759 Jan 02 '23 at 23:52
  • $\langle\cdot,\cdot\rangle$ is almost certainly the Euclidean inner product, i.e. if $q_0$ and $q_\epsilon$ are represented as real vectors in the basis $1,i,j,k$ then $$\langle q_0, q_\epsilon\rangle = q_0\cdot q_\epsilon = q_{0w}q_{\epsilon w} + q_{0x}q_{\epsilon x} + q_{0y}q_{\epsilon y} + q_{0z}q_{\epsilon z}.$$ Since $||q||^2 = \langle q,q\rangle$ and $\langle\cdot,\cdot\rangle$ is symmetric, we can derive an expression via polarization: $$2\langle q_0, q_\epsilon\rangle = ||q_0 + q_\epsilon||^2 - ||q_0||^2 - ||q_\epsilon||^2 = q_0^q_\epsilon + q_\epsilon^q_\epsilon.$$ – Nicholas Todoroff Jan 03 '23 at 00:16

0 Answers0