4

Given a vector $p$, to rotate it by a quaternion $q$, we use the formula:

$$p' = q p \hat{q}$$

where $\hat{q}$ is the conjugate of $q$. But if we use rotational matrices, then it's just

$$p' = Rp$$

While it's clear why the matrices work this way, I just cannot develop any intuition on quaternion rotation formula. I realise the formula does work, but still my guts feel as if it was “rotate $p$ by $q$ and then compose it with the inverse rotation of $q$”. Maybe there is some simple explanation?

Zev Chonoles
  • 132,937
Balda
  • 41

2 Answers2

2

Lets try to develop the formula:

$$p' = q p \hat{q} = \left(\begin{array}{cc} \vec{p'} \\ 0\end{array} \right) = \left(\begin{array}{cc} \vec{u}\sin{\phi\over2} \\ \cos{\phi\over2}\end{array} \right) \otimes \left(\begin{array}{cc} \vec{p} \\ 0\end{array} \right) \otimes \left(\begin{array}{cc}- \vec{u}\sin{\phi\over2} \\ \cos{\phi\over2}\end{array} \right) $$

In which $\vec{u}$ and $\phi$ are the axis and angle of the rotation represented by the quaternion. After various transformation that I will omit for sake of brevity you obtain

$$ \vec{p'} = \vec{p}_\perp \cos{\phi} + \left( \vec{u}\times \vec{p}\right)\sin{\phi} + \vec{p_\parallel}$$

That is the 3D vector rotation formula. Moreover, considering both $$p' = q p \hat{q}$$ $$p' = Rp$$

You can derive the result:

$$\left(\hat{q}\right)^\oplus \left(q\right)^+ = \left(\begin{array}{cc}R & 0\\ 0 & 1\end{array}\right)$$

where R is the rotation you were referring to.

  • That seems to be correct :), though I am still troubled what is the intuition for this... – ntg Aug 17 '16 at 12:12
0

I will try to provide a simple intuition. Suppose q = $\hat i$,$q^{-1}=-\hat i$ and p = $\hat j$.

Now, $q*p = \hat k$ will give you a 90-degree rotation anticlockwise.

Similarly, $q^{-1}*p$ will give you a 90-degree rotation clockwise.

So we start thinking if these operations are done in succession wouldn't these operations cancel out each other?

The answer to this is as follows -

$q*p$ is not the same as $p*q$. So when you express your operations as $q*(p*q^{-1})$ you are actually performing a 180-degree rotation. To see this let us compute the result $\hat j* - \hat i = -\hat k, -\hat k*\hat i =-j$

Now let us perform $q^{-1}*(q*p) = -\hat i * \hat k = \hat j$ (cancel out operation)

The double cover property is important because, in the case of 2d, the addition of a single imaginary axis did the job. But in the 4d case, we have 3 extra imaginary axes that have to express 6 degrees of freedom. Hence in order to have closure on the 6 DoF we need to have the double cover.