Quaternion Differentiation

8.4k Views Asked by At

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?

1

There are 1 best solutions below

0
On

If you know both the orientation and the angular velocity at every frame, this paper on Hermite Quaternion Curves might be useful for interpolation, http://graphics.cs.cmu.edu/nsp/course/15-464/Fall05/papers/kimKimShin.pdf

However, curve derivative calculation is difficult/expensive with this approach.