3d rotation representation for multiple turns

88 Views Asked by At

Currently I am learning to use quaternions to represent rotations in the 3D world. The task is to make the object rotate for a given angle in certain time. I am now wondering which type of rotation representation I should use and what kind of measure I should use to get the difference between two rotations.

Quaternion is useful and popular in such a field and it greatly satisfies all my need except for one thing. The measure I am using right now is like $$ d(q_1,q_2)=1-(q_1\cdot q_2)^2 $$ since $-q$ and $q$ represent the same rotation. The problem is that if I want the object to rotate $360^{\circ}$, while it doesn't rotate at all, the distance of such two quaternions is zero then. I think it is not a problem of the measure since the quaternion itself does not contain the status imformation of the accumulative angle with respective to the difference of $2k\pi$.

I am wondering if there is a kind of rotation representation which is easy to use as quaternions while at the same time saves the information of the accumulative angle. Euler angles and rotation matrices cannot solve the problem. Or should I track along the trajectory to finish the job. Also, I am thinking about somehow differentiate the whole process and integrate back to get the trajectory information but I could not figure it out clearly. Is it a good way to try?

Appreciate your help.