2
$\begingroup$

I have an application that tracks an image and estimates its position and orientation. The orientation is given by a quaternion, and it is modified by an angular velocity every frame.

To predict the orientation I calculate the differential quaternion basing on the angular rate $\vec \omega$ and the previous quaternion $\vec q$. I found these equations.

$$q_x=\frac{1}{2}(w_x q_w+w_y q_z-w_z q_y) $$ $$q_y=\frac{1}{2}(w_y q_w+w_z q_x-w_x q_z) $$ $$q_z=\frac{1}{2}(w_z q_w+w_x q_y-w_y1 q_x)$$ $$q_w=-\frac{1}{2}(w_x q_x+w_y q_y-w_z q_z)$$

Is this approach correct? Should I use $\vec \omega$ or do I need to take into account the time interval between frames $\vec \omega\Delta t $?

After this, the predicted quaternion $\hat q$ would be the sum of the previous one and the differentiation, wouldn't it?

3 Answers 3