how to calculate the result of Quaternion Rotation?

155 Views Asked by At

I just read this excellent material page:45 about Quaternion Rotation. I can not compute the result of rotation quaternion $p = [0,\boldsymbol{p}]$ where $\boldsymbol{p}$ is a vector, with $ q = [\omega, v], q^{-1}=[\omega,-v]$, both of q and $q^{-1}$ are unit vector.

When rotating $p$ with $p' = qpq^{-1}$, we finally get: $p'=(0, \boldsymbol{p}')$ and $\boldsymbol{p}'= \boldsymbol{p} + 2\omega(v\times \boldsymbol{p}) + 2(v\times(v\times \boldsymbol{p})) \tag{*}$

I'm trying to get the starred result.

Using cross product equation:
$$\begin{align} [\omega_{1}, v_{1}][\omega_{2}, v_{2}]=[\omega_{1}\omega_{2}-v_{1} \cdot v_{2}, \omega_{1}v_{2}+\omega_{2}v_{1}+v_{2}\times v_{1}] \end{align}$$ update edit: the formula above is wrong, which incur my error, the right version is: $$\begin{align} [\omega_{1}, v_{1}][\omega_{2}, v_{2}]=[\omega_{1}\omega_{2}-v_{1} \cdot v_{2}, \omega_{1}v_{2}+\omega_{2}v_{1}+v_{1}\times v_{2}] \end{align}$$


This is my try:
$$\begin{align} p' &=[\omega, v][0,\boldsymbol{p}][\omega, -v] \tag{1}\\ &= [-v\cdot\boldsymbol{p}, \omega\boldsymbol{p}+\boldsymbol{p} \times v][\omega, -v] \tag{2}\\ & = [-(v\cdot\boldsymbol{p})\omega+(\omega\boldsymbol{p}+\boldsymbol{p} \times v)\cdot(v),(v\cdot\boldsymbol{p})(v)+\omega(\omega\boldsymbol{p}+\boldsymbol{p}\times v)-v\times(\omega\boldsymbol{p}+\boldsymbol{p} \times v)] \tag{3}\\ & = [0,(v\cdot\boldsymbol{p})v+\omega^{2}\boldsymbol{p}+\omega(\boldsymbol{p}\times v)-\omega(v\times\boldsymbol{p})-v\times(\boldsymbol{p}\times v)] \tag{4}\\ & = [0,(v\cdot\boldsymbol{p})v+\omega^{2}\boldsymbol{p}-2\omega(v \times \boldsymbol{p})+v\times(v \times \boldsymbol{p})] \tag{5}\\ & = [0,v\times(v \times \boldsymbol{p})+\left \| v \right \|^{2}\boldsymbol{p}+\omega^{2}\boldsymbol{p}-2\omega(v \times \boldsymbol{p})+v\times(v \times \boldsymbol{p})] \tag{6}\\ & = [0,\boldsymbol{p}-2\omega(v \times \boldsymbol{p})+2(v\times(v \times \boldsymbol{p}))]\tag{7} \end{align}$$ with step 5 used
$a \times (b \times c)=(a \cdot c)b-(a \cdot b)c $
with step 6 used
$\omega^{2}+\left \| v \right \|^{2}=1$

which gives:
$\boldsymbol{p}'= \boldsymbol{p} - 2\omega(v\times \boldsymbol{p}) + 2(v\times(v\times \boldsymbol{p}))\tag{**}$

Note the $- 2\omega(v\times \boldsymbol{p}) $ in the double starred part. Where I am wrong ?

1

There are 1 best solutions below

3
On BEST ANSWER

Without checking for more errors, I am guessing it stems from this:

$$ [-v\cdot\boldsymbol{p}, \omega\boldsymbol{p}+\boldsymbol{p} \times v][\omega, -v]\label{2} $$ which would have introduced a sign error.

It should be $$ [-v\cdot\boldsymbol{p}, \omega\boldsymbol{p}+v \times \boldsymbol{p} ][\omega, -v]$$

Update: actually it appears you make this type of error several times. I'm not sure if it is a different convention you are using, but the standard one I'm using is the other way around. Crunching the numbers below.


The following revision seems to correct the problems I was detecting

$$\begin{align} p' &=[\omega, v][0,\boldsymbol{p}][\omega, -v] \tag{1}\\ &= [-v\cdot\boldsymbol{p}, \omega\boldsymbol{p}+v\times\boldsymbol{p} ][\omega, -v] \tag{2}\\ & = [-(v\cdot\boldsymbol{p})\omega+(\omega\boldsymbol{p}+ v\times \boldsymbol{p} )\cdot(v),(v\cdot\boldsymbol{p})(v)+\omega(\omega\boldsymbol{p}+v\times \boldsymbol{p})-(\omega\boldsymbol{p}+v\times \boldsymbol{p} )\times v] \tag{3}\\ & = [0,(v\cdot\boldsymbol{p})v+\omega^{2}\boldsymbol{p}+\omega(v\times\boldsymbol{p})-\omega(\boldsymbol{p}\times v)-(v\times\boldsymbol{p})\times v] \tag{4}\\ & = [0,(v\cdot\boldsymbol{p})v+\omega^{2}\boldsymbol{p}+2\omega(v \times \boldsymbol{p})+v\times(v \times \boldsymbol{p})] \tag{5}\\ & = [0,v\times(v \times \boldsymbol{p})+\left \| v \right \|^{2}\boldsymbol{p}+\omega^{2}\boldsymbol{p}+2\omega(v \times \boldsymbol{p})+v\times(v \times \boldsymbol{p})] \tag{6}\\ & = [0,\boldsymbol{p}+2\omega(v \times \boldsymbol{p})+2(v\times(v \times \boldsymbol{p}))]\tag{7} \end{align}$$