Link: http://www.cnblogs.com/soroman/archive/2006/10/12/526163.html
In http://blog.donews.com/wanderpoet/archive/2005/07/04/453608.aspx
The following is a clear explanation of gimbal lock:
Gimbal lock
What's gimbal lock?
Gimbal lock is the phenomenon of two rotational axis of an object pointing in the same direction. actually, if two axis of the object become aligned, then we say that there's a gimbal lock. in other words, a rotation in one axis coshould 'override' a rotation in another, making you lose a degree of freedom.
What is a universal joint lock?
The Vientiane lock refers to the two rotating axes of an object pointing to the same direction. In fact, when the two rotating axes are parallel, we can say that the universal joint lock occurs. In other words, the rotation around one axis may overwrite the rotation of the other axis, thus losing one-dimensional degrees of freedom.
How gimbal lock occurred?
Generally speaking, it occurred when you rotate the object which only use Eular angles to denote it. the reason for this is that Eular angles evaluate each axis independently in a set order. let's see a certain scene. first the object travels down the X axis. when that operation is complete it then travels down the Y axis, and finally the Z axis. the problem with gimbal lock occurs when you rotate the object down the Y axis, say 90 degrees. since the X component has already been evaluated it doesn't get carried along with the other two axis. what winds up happening is the X and Z axis get pointed down the same axis.
Generally, the universal joint lock occurs in the rotation operation using Eular angles, because Eular angles rotates independently around the axis in sequence. Let's imagine a specific rotation scenario. First, the object first rotates around the X axis, then the Y axis, and finally the selection around the Z axis to complete a rotation operation: actually, you want to rotate around a certain axis. However, Eular angle divides the rotation into three independent steps.) When you rotate 90 degrees around the Y axis, the question of the universal joint lock arises, because the X axis has been evaluated, it is no longer rotated along with the other two axes, so that the X axis and the Z axis point to the same direction (they are equivalent to the same axis ).
Here's a pic showing what happened: universal joint lock symptom diagram:
The translation I added above is the translation of the post below. Original Translator: soroman
Maybe it's a bit difficult to understand. OK, let me show you a real sence.
It may be hard to understand. Let's look at a real scenario.
Say that we have a telephony and a tripod to put the telephon. the tripod is put on the ground. the top of the tripod holding the telephony is leveled with the horizon (reference plane) so that a Vertical Rotation Axis (we call it X axis) is perfectly vertical to the ground plane. the telephony can then be rotated around und 360 degrees in X axis so that it can scan the horizon in all the directions of the compass. zero degrees azimuth is usually set toward a heading of true north. A second horizontal axis parallel to the ground plane (we call it Y axis), enables the telephony to be rotated in elevation upward or downward from the horizon. the horizon is usually set at zero degrees and the telephcan be rotated + 90 degrees upward in elevation so that it is looking straight up toward the zenith or rotated-90 degrees downward so that it is looking vertically at the ground plane.
Suppose we have a telescope and a tripod used to hold the telescope. (We put the tripod on the ground so that the top of the tripod supporting the telescope is parallel to the ground plane (reference plane, so that the vertical axis of rotation (recorded as the X axis) is completely perpendicular to the ground plane. Now, we can rotate the X axis of the telescope 360 degrees to observe all the directions of the horizontal circle (centered on the telescope. The normal North orientation and azimuth angles are usually recorded as 0 degrees azimuth. The Second coordinate axis, that is, the horizontal coordinate axis parallel to the ground plane (recorded as the Y axis), allows the telescope to rotate up and down, and usually marks the elevation angle of the ground plane orientation as 0 degrees, the telescope can be raised to + 90 degrees to the top of the day, or down to 90 degrees to the foot.
OK, that's all we needed. every point in the sky (and the ground) can be referenced by only one unique pair of X and Y readings. for example an X of 90 degrees and Y of 45 degrees specifies a point exactly due east of the telephony and in a skyward direction half way up toward the zenith.
All right, everything is ready. Now, each point in the sky (including the ground) only needs a unique pair of X and Y degrees. For example, the points x = 90 degrees and Y = 45 degrees point to are located in the middle sky in the east direction.
Now let me show you how the gimal lock occurred. we detect a high flying aircraft, near the horizon, due east from the telocation (x = 90 degrees, y = 10 degrees) and we follow it (track it) as it comes directly toward us. the X angle stays at 90 degrees and the Y angle slowly increases. as the aircraft comes closer the y angle increases more rapidly and just as the aircraft reaches an y of 90 DEGRE ES (exactly overhead), it makes a sharp turn due south. we find that we cannot quickly move the telephtoward the south because the y angle is exactly + 90 degrees so we loose sight (loose track) of the aircraft. we have gimbal lock!
Now, let's take a look at how a universal joint deadlock occurs. Once, we detected a ground-mounted aircraft flying in the east direction of the telescope (x = 90 degrees, y = 10 degrees). We flew directly to us and followed it. The flight direction of an aircraft is to keep the X axis angle 90 degrees unchanged, while the y direction is gradually increasing. As the aircraft approaches, the y-axis angle increases faster and faster. When the y-axis angle reaches 90 degrees (about to surpass), it suddenly turns south and flies. At this time, we found that we could not direct the telescope to the south, because at this time, the y direction is 90 degrees, causing us to lose the tracking target. This is the deadlock of the universal node!
Why can't we keep the telescope in the south? Let's look at the coordinate changes, from (x = 90 degrees, y = 10 degrees) to (x = 90 degrees, y = 90 degrees), this process is no problem, the telescope slowly rotates to track the aircraft. When the aircraft reaches (x = 90 degrees, y = 90 degrees), the coordinates suddenly change to (x = 180 degrees, y = 90 degrees) (because it faces south ), x changes from 90 to 180 degrees, so the telescope needs to rotate the vertical axial X axis 180-90 = 90 degrees to catch up with the aircraft, but now the telescope is already parallel to the X axis, we know that Rao's rotation on its central axis does not change orientation, just like a screw, the orientation of the screw head remains unchanged. So the telescope points to the top of the sky. Then, as the plane is flying far and the coordinates change to (x = 180 degrees, Y <90 degrees), the y direction angle is reduced, and the telescope can only switch back to the east direction and look at the device to sigh. This means that using X and Y rotation angles (also known as orah angles) to target objects sometimes does not work as you think, as in the above example from (x = 90 degrees, y = 10 degrees) to (x = 90 degrees, y = 90 degrees), the orientation can be correct according to the Euclidean rotation, but from (x = 90 degrees, y = 90 degrees) to (x = 180 degrees, y = 90 degrees), and then to (x = 180 degrees, Y <90 degrees), the orientation after rotation according to the Euclidean angle is not correct .)
It's a example of 2D coordinate frame. it's very similar in 3D frame. we say that you have a vector which is parellel to the X axis. and we rotate it around und Y axis so that the vector is parellel to the Z axis. then we find that any rotations around Z axis will have no effect on the vector. we say that we have a gimbal lock
The above is an example of a two-dimensional coordinate system. Likewise, it is true for a three-dimensional coordinate system. For example, if there is a vector parallel to the X axis, we first rotate it until it is parallel to the Z axis, then we will find that any rotation of Rao Z cannot change the vector direction, that is, the universal joint deadlock.