the dimension of $ \dot{\mathrm{Q}}(t)$ is 4x1 but the following product is 4x4 $$ \dot{\mathrm{Q}}(t)=\frac{1}{2}\mathrm{Q}(t)\otimes\overline{\Omega}(t)\ , (1) $$ equation (1) is part of the dynamic attitude system of rigid body

syms q0 q1 q2 q3 w1 w2 w3 real
Q=[q0 q1 q2 q3]' % quaternion
W=[w1 w2 w3]     % angular velocity
W_bar=[0 W]
Q_dot=0.5*kron(Q,W_bar)  % derivative of the quaternion

the result is :

Q =


W =

[ w1, w2, w3]

W_bar =

[ 0, w1, w2, w3]

Q_dot =

[ 0, (q0*w1)/2, (q0*w2)/2, (q0*w3)/2]
[ 0, (q1*w1)/2, (q1*w2)/2, (q1*w3)/2]
[ 0, (q2*w1)/2, (q2*w2)/2, (q2*w3)/2]
[ 0, (q3*w1)/2, (q3*w2)/2, (q3*w3)/2]
  • $\begingroup$ @Qmechanic would you consider removing the complex-numbers tag? I've edited my answer to explain why these are not complex numbers. $\endgroup$ – user197851 Jul 24 '18 at 17:03
  • $\begingroup$ @LonelyProf: From the tag wiki: "The complex-number tag includes quaternion, octonions,... " $\endgroup$ – Qmechanic Jul 24 '18 at 17:49

Your expression for quaternion multiplication is wrong. It is not the Kronecker (or outer) product, although some people use the same symbol $\otimes$ to represent it. Multiplying two 4-element quaternions together yields another 4-element quaternion. We need to take care with the sign convention, and the convention of body-fixed or space-fixed angular velocity, but I believe the formula you are looking for is (in matrix multiplication form) $$ \begin{pmatrix} \dot{Q}_0 \\ \dot{Q}_1 \\ \dot{Q}_2 \\ \dot{Q}_3 \end{pmatrix} = \frac{1}{2} \begin{pmatrix} Q_0 & -Q_1 & -Q_2 & -Q_3 \\ Q_1 & Q_0 & -Q_3 & Q_2 \\ Q_2 & Q_3 & Q_0 & -Q_1 \\ Q_3 & -Q_2 & Q_1 & Q_0 \end{pmatrix} \begin{pmatrix} 0 \\ \bar{\Omega}_1 \\ \bar{\Omega}_2 \\ \bar{\Omega}_3 \end{pmatrix} $$

Generally, if we write a quaternion as a combination of a scalar and a vector $\mathbf{A}= \bigl(a_0,\mathbf{a}\bigr)=\bigl(a_0,a_1,a_2,a_3\bigr)$, and similarly for $\mathbf{B}$ and $\mathbf{C}$, then the quaternion product may be expressed $$ \mathbf{C} = (c_0, \mathbf{c}) = \mathbf{A}\otimes\mathbf{B} = \bigl( a_0b_0-\mathbf{a}\cdot\mathbf{b},a_0\mathbf{b}+b_0\mathbf{a}+\mathbf{a}\times\mathbf{b} \bigr) $$ where $\cdot$ is the usual scalar product of two vectors, and $\times$ is the vector cross product. If we expand this into individual terms, we can see that it may be written in a similar form to my answer above $$ \begin{pmatrix} c_0 \\ c_1 \\ c_2 \\ c_3 \end{pmatrix} = \begin{pmatrix} a_0 & -a_1 & -a_2 & -a_3 \\ a_1 & a_0 & -a_3 & a_2 \\ a_2 & a_3 & a_0 & -a_1 \\ a_3 & -a_2 & a_1 & a_0 \end{pmatrix} \begin{pmatrix} b_0 \\ b_1 \\ b_2 \\ b_3 \end{pmatrix} $$

NB in the dynamics community these parameters can be called either "quaternions" or "Euler parameters". If you look on Wikipedia, you will see that the term "quaternion" refers to Hamilton's extension of complex numbers, and that usage is probably mathematically correct. There is also a close connection with (complex) Cayley-Klein parameters. However, in the current context, the parameters are all real, and we commonly refer to them as quaternions.


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.