0

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?

  • There are several other resources that you should probably read: http://en.wikipedia.org/wiki/Gimbal_lock http://math.stackexchange.com/questions/1838/why-is-gimbal-lock-an-issue?rq=1 http://math.stackexchange.com/questions/8980/euler-angles-and-gimbal-lock?rq=1 – heropup May 30 '14 at 23:25
  • I've read all of these, but I'm not sure if I will still run into that problem because I believe my situation is slightly different - see my comment on the other answer. – user2258552 May 30 '14 at 23:51

1 Answers1

2

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$."

Emily
  • 35,688
  • 6
  • 93
  • 141
  • Right, but I'm doing rotations in sequence, and only about x, y, or z. I.e. I do not have "general rotations" - my rotations are only $R_x(\alpha), R_y(\beta), R_z(\gamma)$, but no combination of these. My coordinate frame is not changing. – user2258552 May 30 '14 at 23:52
  • When you apply a rotation matrix, the next rotation applies along the new coordinate axes. – Emily May 31 '14 at 00:04
  • But my axes remain x, y, and z - I'm not changing the coordinate axes. – user2258552 May 31 '14 at 04:53
  • You're missing the key. $ R_1$ rotates around your first set of axes. $ R_2$ rotates around the set of axes determined by $ R_1$, whether you like it or not. Play with some examples and see. – Emily May 31 '14 at 14:47
  • Hmm. Well, it indeed locked, so I guess I was wrong. I should review the math again, because this is too simple for me to misunderstand like this. – user2258552 May 31 '14 at 21:36