Already asked this question on mathexchange but didn't got any promising answers so posting it here Since I'm from a CG background.
I really can't understand how and why gimbal lock occurs using euler angles. First of all let me clear this "I know that gimbal lock occurs when 2 gimbals/axes coincide thus losing 1 degree of freedom"
However what I'm interested in why the axes are coinciding in the first place when they are supposed to remain perpendicular when we move anyone.
According to wikipedia here :
The general problem of decomposing a rotation into three composed movements about intrinsic axes was studied by P. Davenport, under the name "generalized Euler angles", but later these angles were named "Davenport angles" by M. Shuster and L. Markley.
Davenport proved that any orientation can be achieved by composing three elemental rotations using non-orthogonal axes.
That's what I want to hear about more. Why "non-orthogonal" ? I can't see any problems with making the axes orthogonal? What does making the axes non-orthogonal give us?
2) After the above one has been answered. How is this all tied up to rotational matrices? How can we achieve gimbal lock through the matrices when they only rotate a given point/vector around global axis. For example If i multiply a column vector with a Rotation matrix around X-axis Rx
and then with Ry
It will rotate around the global X-axis first, then global Y-axis second. So how can I achieve the lock situation using matrices?
EDIT:-
To make it more clear I've also heard about rotation orders like in the order Y-Z-X
when Y axis rotates then Z
and X
rotate with it but when Z
rotates only X
rotates with it. thus making the axes non-orthogonal. I am assuming that's what it means by non-orthogonal mentioned in the wiki article. Here is a picture.
As you can see in the Y-Z-X order, the Y axis remains there as in 3rd picture causing the axes to coincide...