Avoiding gimbal lock

737 Views Asked by At

I am not really sure if I understand the phenomenon of gimbal lock correctly.

Say I have a vector $\begin{pmatrix} x\\ y\\ z \end{pmatrix}$.

And I want to keep the vector's length fixed but move it in a given direction with respect to the $x, y$ or $z$ axis - i.e. rotate it in that direction.

So, for instance, if I want to rotate it $30$ degrees about the $z$-axis, I would multiply by the matrix $$\begin{pmatrix} \cos(30°) & -\sin(30°) & 0\\ \sin(30°) & \cos(30°) & 0\\ 0 & 0 & 1\end{pmatrix}_.$$

And likewise for the other two axes. Will some sequence of these rotations eventually cause "gimbal lock?" Or will no problem arise using this method?

1

There are 1 best solutions below

5
On BEST ANSWER

Gimbal lock occurs when one of the rotation matrices reduces to the identity. Then you effectively reduce one degree of freedom.

Let $R_x(\alpha)$ denote a rotation matrix around $x$ by $\alpha$.

Then, a general rotation can be written as $R = R_x(\alpha) R_y (\beta) R_z(\gamma)$. Suppose that $R_x(\alpha)$ becomes the identity map. Then $R = R_y(\beta) R_z(\gamma)$ in the new coordinate frame, and hence there is no longer any notion about "rotation around $x$."