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 $θ$.


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 [...].
  • ...
  • $\begingroup$ Is saying that unit quaternions are isomorphic to SU(2), which is a double cover of SO(3), too technical? $\endgroup$ – krvolok Jan 16 '17 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$ – Nathaniel Aug 19 '18 at 1:44

I think that the more simple 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$.

| cite | improve this answer | |
  • $\begingroup$ This would answer the question if the second exponential didn't have that minus sign. $\endgroup$ – Jules Sep 7 '18 at 22:34
  • $\begingroup$ @Jules How so ? It's the conjugate... $\endgroup$ – Cedric H. Oct 13 '18 at 20:36

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.

| cite | improve this answer | |

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.

| cite | improve this answer | |

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

| cite | improve this answer | |
  • $\begingroup$ This is really a nice explanation. Sorry you got downvoted before. $\endgroup$ – Mad Physicist Jul 3 '19 at 15:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.