I'm trying to find a solid proof of the relationship between the quaternion rate and angular velocity, but I keep running into the same problem.
Theorem:
If frame $B$ is rotating in frame $A$ at a constant angular velocity, then the rate of change of the quaternion is given by \begin{equation} \mathrm{\dot{q}} = \frac{1}{2} \begin{pmatrix} \boldsymbol\omega\\ 0 \end{pmatrix} \otimes \mathrm{q} \end{equation} where $\boldsymbol\omega\in\mathbb{R}^3$ is the angular velocity of frame $B$ in $A$.
Proof:
I'm mostly skipping through this proof.
A unit quaternion $\mathrm{q}$ describes a rotation of a vector via \begin{equation} \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} = \mathrm{q} \otimes \begin{pmatrix} \mathbf{v} \\ 0 \end{pmatrix} \otimes \mathrm{q}^* \end{equation} where $\mathbf{v}$ and $\mathbf{v}'$ is that vector described in a basis $A$ and $B$ respectively. Let $\boldsymbol\omega$ be the angular velocity of reference frame $B$ in $A$. Then by the Transport Theorem, the derivative in basis $A$ is \begin{equation} \frac{d}{dt} \mathbf{v}' = \frac{d}{dt} \mathbf{v} + \boldsymbol\omega \times \mathbf{v}' \end{equation} Affix $\mathbf{v}$ in $A$ (i.e. $\frac{d}{dt}\mathbf{v}=0$). Using that and expanding the derivative of $\mathbf{v}'$ gives \begin{equation} \mathrm{\dot{q}} \otimes \begin{pmatrix} \mathbf{v} \\ 0 \end{pmatrix} \otimes \mathrm{q}^* + \mathrm{q} \otimes \begin{pmatrix} \mathbf{v} \\ 0 \end{pmatrix} \otimes \mathrm{\dot{q}^*} = \begin{pmatrix} \boldsymbol\omega\times\mathbf{v}' \\ 0 \end{pmatrix} \end{equation} Or in terms of $\mathbf{v}'$ \begin{equation} \mathrm{\dot{q}}\otimes\mathrm{q^*}\otimes \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} + \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} \otimes \mathrm{q} \otimes \mathrm{\dot{q}^*} = \begin{pmatrix} \boldsymbol\omega\times\mathbf{v}' \\ 0 \end{pmatrix} \end{equation} Since the conjugate is the inverse of the quaternion \begin{equation} \mathrm{q}\otimes\mathrm{q^*} = 1 \implies \mathrm{\dot{q}} \otimes\mathrm{q^*}+\mathrm{q}\otimes\mathrm{\dot{q}^*} = 0 \implies \left(\mathrm{\dot{q}}\otimes\mathrm{q}^*\right)^*=-\mathrm{\dot{q}}\otimes \mathrm{q^*} \end{equation} which implies that $\mathrm{\dot{q}}\otimes\mathrm{q}^*$ is a pure quaternion (For a quaternion $\mathrm{p}$, $-\mathrm{p}=\mathrm{p^*}$ is only true for a quaternion with a zero scalar part). Let $(\mathbf{u}, 0) = \mathrm{\dot{q}}\otimes\mathrm{q}^*=-\mathrm{q}\otimes\mathrm{\dot{q}^*}$, then \begin{equation} \begin{pmatrix} \mathbf{u} \\ 0 \end{pmatrix} \otimes \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} - \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} \otimes \begin{pmatrix} \mathbf{u}\\ 0 \end{pmatrix} = \begin{pmatrix} \boldsymbol\omega\times\mathbf{v}'\\ 0 \end{pmatrix} \end{equation} The left-hand side is the quaternion commutator. Expanded it becomes \begin{equation} \begin{pmatrix} \mathbf{u} \\ 0 \end{pmatrix} \otimes \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} - \begin{pmatrix} \mathbf{v}'\\ 0 \end{pmatrix} \otimes \begin{pmatrix} \mathbf{u}\\ 0 \end{pmatrix} = \begin{pmatrix} \mathbf{u}\times\mathbf{v}'-\mathbf{v}'\times\mathbf{u} \\ \mathbf{u}\cdot\mathbf{v}'-\mathbf{v}'\cdot\mathbf{u} \end{pmatrix} = \begin{pmatrix} 2\mathbf{u}\times\mathbf{v}'\\ 0 \end{pmatrix} \end{equation} The vector part of the equation then becomes \begin{equation} 2\mathbf{u}\times\mathbf{v}' = \boldsymbol\omega\times\mathbf{v}' \end{equation} which only implies that $(2\mathbf{u}-\boldsymbol\omega)\times\mathbf{v}' = \mathbf{0}$. The relationship $2\mathbf{u}=\boldsymbol\omega$ is true only if $2\mathbf{u}\cdot\mathbf{v}'=\boldsymbol\omega\cdot\mathbf{v}'$. If the relationship is true then \begin{equation} 2\mathrm{\dot{q}}\otimes\mathrm{q^*} = \begin{pmatrix} \boldsymbol\omega \\ 0 \end{pmatrix} \end{equation} Or re-arranging \begin{equation} \mathrm{\dot{q}} = \frac{1}{2} \begin{pmatrix} \boldsymbol\omega \\ 0 \end{pmatrix} \otimes \mathrm{q} \end{equation}
Problem:
The problem is solving the $(2\mathbf{u}-\boldsymbol\omega)\times\mathbf{v}'=\mathbf{0}$ bit. First define $\mathbf{v}$ and $\mathbf{v}'$ so that they lie in a plane orthogonal to the axis of rotation. Then $\boldsymbol\omega\cdot\mathbf{v}'=0$ and you only have to prove that $\mathbf{u}\cdot\mathbf{v}'=0$: that $\mathbf{u}$ is also perpendicular with $\mathbf{v}'$. This proof states that since the two quaternions are pure quaternions, their commutator is equal to their cross product is equal to their quaternion product. In other words \begin{equation} \begin{pmatrix} 2\mathbf{u}\times\mathbf{v}'\\ 0 \end{pmatrix} = 2 \begin{pmatrix} \mathbf{u} \\ 0 \end{pmatrix} \otimes \begin{pmatrix} \mathbf{v}' \\ 0 \end{pmatrix} \end{equation} However this is only true if their dot product is zero: if $\mathbf{u}\cdot\mathbf{v}'=0$. I think I'm missing something in this proof. In section 1.5.1 (paraphrasing in my notation) they state that $|\mathbf{\dot{v}}'|=|2\mathbf{u}||\mathbf{v}|$ implies $\mathbf{u}\perp\mathbf{v}$, but how'd they get the norm relation? They reference the norm preserving property of the quaternion product $|\mathrm{p}\otimes\mathrm{q}|=|\mathrm{p}||\mathrm{q}|$, but I don't see where they're taking the quaternion product, just the cross product. And the cross product only preserves the norm if...$\mathbf{u}$ and $\mathbf{v}'$ are perpendicular.
So how can I show that the "vector" $\mathrm{\dot{q}}\otimes\mathrm{q^*}$ points in the axis of rotation?