According to https://stackoverflow.com/questions/22157435/difference-between-the-two-quaternions
I can get the difference between two quaternions as
diff * q1 = q2 ---> diff = q2 * inverse(q1)
where: inverse(q1) = conjugate(q1) / abs(q1)
and: conjugate( quaternion(re, i, j, k) ) = quaternion(re, -i, -j, -k)
Intuitively, I can understand this diff
as an "angular velocity" applied to q1
that brings it to q2
in unit time.
If I understood this section of Wikipedia correctly (which I probably don't)
Euler proved that the projections of the angular velocity pseudovector on each of these three axes is the derivative of its associated angle (which is equivalent to decomposing the instantaneous rotation into three instantaneous Euler rotations)
To actually get the angular velocity in the usual sense, I could just convert diff
into euler angles.
However, this gives me different results from other sources which calculate the angular velocity more rigorously.
I would assume the more rigorous calculation is correct. My question is, what went wrong in my understanding?
diff = q2 * inverse(q1)
. And with this "difference quaternion", I should be able to convert that to an angular velocity. My question is why my method of converting this "difference quaternion" to angular velocity is wrong. $\endgroup$