Using quaternion multiplication

The representation of rotations boiled down to picking points on $ {\mathbb{S}}^3$ and respecting the fact that antipodal points give the same element of $ SO(3)$. In a sense, this has nothing to do with the algebraic properties of quaternions. It merely means that $ SO(3)$ can be parameterized by picking points in $ {\mathbb{S}}^3$, just like $ SO(2)$ was parameterized by picking points in $ {\mathbb{S}}^1$ (ignoring the antipodal identification problem for $ SO(3)$).

However, one important reason why the quaternion arithmetic was introduced is that the group of unit quaternions with $ h$ and $ -h$ identified is also isomorphic to $ SO(3)$. This means that a sequence of rotations can be multiplied together using quaternion multiplication instead of matrix multiplication. This is important because fewer operations are required for quaternion multiplication in comparison to matrix multiplication. At any point, (4.20) can be used to convert the result back into a matrix; however, this is not even necessary. It turns out that a point in the world, $ (x,y,z) \in
{\mathbb{R}}^3$, can be transformed by directly using quaternion arithmetic. An analog to the complex conjugate from complex numbers is needed. For any $ h = a + bi + cj + dk \in {\mathbb{H}}$, let $ h^* = a - bi - cj - dk$ be its conjugate. For any point $ (x,y,z) \in
{\mathbb{R}}^3$, let $ p \in
{\mathbb{H}}$ be the quaternion $ 0+xi+yj+zk$. It can be shown (with a lot of algebra) that the rotated point $ (x,y,z)$ is given by $ h \cdot p \cdot
h^*$. The $ i$, $ j$, $ k$ components of the resulting quaternion are new coordinates for the transformed point. It is equivalent to having transformed $ (x,y,z)$ with the matrix $ R(h)$.

Steven M LaValle 2012-04-20