11
$\begingroup$

I'm currently writing the report on my master thesis project, where I use Android sensors to perform inertial navigation in a heavy industrial environment. In my application, I make use of quaternions to represent the rotation of the device, and I feel it necessary to include a short description of what quaternions are and why they are suitable to represent rotations.

When defining a rotation quaternion (with vector notation) representing a rotation of $\theta$ around a vector $u=(u_x, u_y, u_z)$ as:

$$ q=\left(\cos\left(\frac{\theta}{2}\right), u_x\sin\left(\frac{\theta}{2}\right), u_y\sin\left(\frac{\theta}{2}\right), u_z\sin\left(\frac{\theta}{2}\right)\right), $$

I think it is necessary to explain why there is a $\frac{1}{2}$ tied to the angle everywhere. I found some suggestions in the answer to this question, but I feel the answers given are either too simple:

The actual rotation is defined by the map $x↦qxq^*$. You get a $θ/2$ from $q$ on the left, and another $θ/2$ from $q^∗$ on the right, which adds up to a $θ$.

and

If it were $\cosθ+a\sinθ$ instead of $\cos(θ/2)+a\sin(θ/2)$, then rotation of $\pi$ about any axis would give you the same result.

... or way too in depth (especially the accepted answer). I feel like both of the quotes above are relevant to what I want to convey, but not quite there.

Related to the first quote, one answer to the question linked above suggests that the reason for using $\theta/2$ is to, given a vector $p$ to rotate expressed as a pure imaginary quaternion, keep the resulting rotated vector after a conjugation operation $qpq^*$ in the pure imaginary 3D space (essentially, the multiplication from the left rotates it $\theta/2$, but also moves it out of the imaginary 3D space - then the multiplication from the right moves it back into the imaginary 3D space and rotates it $\theta/2$ again for a full rotation of $\theta$).

There is also this proof on Wikipedia that shows that using $\theta/2$ makes the conjugation operation equivalent to Rodrigues's rotation formula. However, I feel like this proof is too much to include in my report.

Is there a concise (at most a few lines of text) way of conveying why one has to use $\theta/2$ in rotation quaternions?

It could be something along the lines of:

  • This is necessary to prevent overlap of positive and negative rotations around the same axis.
  • This is because the rotation is, in effect, applied twice during the conjugation operation described in [...].
  • ...
$\endgroup$
2
  • $\begingroup$ Is saying that unit quaternions are isomorphic to SU(2), which is a double cover of SO(3), too technical? $\endgroup$
    – krvolok
    Commented Jan 16, 2017 at 11:02
  • $\begingroup$ This page doesn't mention quaternions directly, but it does give a great intuition about where the half-angle thing comes from. I'd like to see the idea applied to quaternions directly. $\endgroup$
    – N. Virgo
    Commented Aug 19, 2018 at 1:44

5 Answers 5

5
$\begingroup$

Here is a graphical representation of what happens in the incorrect and the correct cases:

Why it is not correct to use full angle for quaternion rotation

Why it is correct to use pre/post multiplication for quaternion rotation by half/minus half angle

$\endgroup$
2
  • $\begingroup$ This is really a nice explanation. Sorry you got downvoted before. $\endgroup$ Commented Jul 3, 2019 at 15:00
  • $\begingroup$ I suggest to read the nice E. Omerdic presentation about quaternios link $\endgroup$
    – wmora2
    Commented May 16, 2023 at 17:46
4
$\begingroup$

Any rotation in a plane can be decomposed into reflections across two vectors in that plane. The angle between these vectors must be $\theta/2$. You can see this by considering, for example, the case in which the input vector to be rotated is identical to the first vector to reflect over. You can then use symmetry to show that the second vector to reflect over must bisect the angle of rotation.

Then, the quaternion used to represent this rotation is merely the result when you take those vectors, write them as quaternions, and multiply them.

Example: a rotation by $\pi/3$ about $k$. I can perform this rotation using two reflections. First, reflect across the $zx$-plane by muliplying $-jvj=v'$. then reflect across a plane that is angled $\pi/6$ relative to the first by multiplying by $-(j\sqrt{3}/2 + i/2)v' (j\sqrt{3}/2 + i/2)$.

Now just take the first reflected vector and substitute, and we get

$$v \mapsto \left(\frac{\sqrt{3}}{2} + \frac{k}{2}\right) v \left(\frac{\sqrt{3}}{2} - \frac{k}{2} \right)$$

Now, there's still a little voodoo magic left: why can we identify 3d vectors with pure imaginary quaternions and still get geometrically meaningful results? How would you know that you can multiply pure vectors with each other to perform reflections? These are questions I think may be better answered by considering quaternions as a subalgebra of a clifford algebra, but I concede that may be far out of the scope you wish to address.

$\endgroup$
1
  • $\begingroup$ This doesn't really answer the question? Sure, you can express a rotation with two half angle reflections, but the question is, why do you need to? $\endgroup$ Commented Feb 26 at 6:43
4
$\begingroup$

Every quaternion multiplication does a rotation on two different complex planes.

When you multiply by a quaternion, the vector part is the axis of 3D rotation. The part you want for 3D rotation. But you ALSO do a rotation in the complex plane consisting of the axis and the scalar term.

You can rotate on the other side ABA' to double the 3D rotation and cancel the second rotation. Since you don't want double the rotation, make each of them half as big.

$\endgroup$
4
$\begingroup$

I think the simpler way to explain the half angle is the analogy with rotations in a plane represented by complex numbers.

If we identify a vector $\vec v=(a,b)^T$ with a complex number $z=a+bi$, then a rotation about the origin of $\vec v$ by an angle $\theta$ is given by $R_{\theta}(z)= e^{\theta i } z$ . The idea of Hamilton was to find some generalization of this formula for three-dimensional rotations.

The quaternions can do such a generalization identifying a $3D$-vector with a pure imaginary quaternion $\mathbf{v}$ and using a pure imaginary versor $\mathbf{u}$ to identify the axis of rotation. But when we calculate the product $e^{\theta \mathbf{u}}\mathbf{v}$ we see that the result is not a pure imaginary quaternion , so it's not a vector.

We can find a pure imaginary quaternion only if we perform the multiplication $e^{\theta \mathbf{u}}\mathbf{v}e^{-\theta \mathbf{u}}$ , and this really represents a rotation about the axis $ u$, but the angle of rotation is now $2 \theta$.

$\endgroup$
3
  • $\begingroup$ This would answer the question if the second exponential didn't have that minus sign. $\endgroup$
    – Jules
    Commented Sep 7, 2018 at 22:34
  • 1
    $\begingroup$ @Jules How so ? It's the conjugate... $\endgroup$
    – Cedric H.
    Commented Oct 13, 2018 at 20:36
  • $\begingroup$ I do think it answers the question, but it might be useful to explain that the combination of a left-isoclinic rotation and a right-isoclinic rotation is a simple rotation. $\endgroup$
    – Brian Tung
    Commented Sep 22, 2022 at 1:40
1
$\begingroup$

I will put into algebraic terms using interesting commutation properties, the really nice explanation of Edin and Mad Physicist above.

The short answer is that for perpendicular inputs either way works. If we take the full angle approach of a single quaternion with no conjugate, it will rotate by the full angle. But it won't leave parallel inputs unaltered. Only the half-angle approach with the conjugate works for both, so that is the correct formulation. Read on for the long answer.

Consider the two cases of the input vector v being parallel and perpendicular to the rotation axis u, in the below formula.

$e^{\frac{\theta}{2} \mathbf{u}}\mathbf{v}e^{-\frac{\theta}{2} \mathbf{u}}$

This covers all possible cases as any input v can be resolved as the sum of a parallel and perpendicular component to u. First we deal with the parallel case v= ku, where we can set the scalar factor k to 1, without loss of generality.

Now since v = u, the expression commutes! (as there is only one vector in play, the order does not matter). So it cancels out as the exponents add up as follows:

$e^{\frac{\theta}{2} \mathbf{u}}\mathbf{u}e^{-\frac{\theta}{2} \mathbf{u}} = e^{\frac{\theta}{2} \mathbf{u}}e^{-\frac{\theta}{2} \mathbf{u}}\mathbf{u}=\mathbf{u}$

This implies that for vectors parallel to the rotation axis, the final result is unaltered as desired.

Now for the perpendicular case, we use the commutation property of perpendicular vectors only, ab = -ba, which can be seen in the basis rules ij=-ji, jk=-kj etc. Let x be perpendicular to u, then:

$e^{\frac{\theta}{2} \mathbf{u}}\mathbf{x}e^{-\frac{\theta}{2} \mathbf{u}}=e^{\frac{\theta}{2} \mathbf{u}}\mathbf{x} \left({cos\left(\frac{\theta}{2}\right)-\mathbf{u}sin\left(\frac{\theta}{2}\right)}\right)=e^{\frac{\theta}{2} \mathbf{u}} \left({cos\left(\frac{\theta}{2}\right)\mathbf{x}+\mathbf{u}\mathbf{x}sin\left(\frac{\theta}{2}\right)}\right)=e^{\frac{\theta}{2} \mathbf{u}} e^{\frac{\theta}{2} \mathbf{u}} \mathbf{x}= e^{\theta\mathbf{u}}\mathbf{x}$

This means that it amounts to the same approach as rotating by a single full angle quaternion and rotating by the angle theta around the axis u, just like in the case of complex numbers.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .