Gimbal lock (continued)

Source: Internet
Author: User

I used to post an articleArticleHttp://www.cnblogs.com/soroman/archive/2006/10/11/526163.htmlis related to gimbal lock, which translates into a description of the universal deadlock in the 2D coordinate system. Later, I sorted out the gimbal lock problem in dimension 3 based on my views and some materials of bloger. It is a better understanding, as shown below:

In dimension 3, the commonly used coordinate Orientation System of the Euclidean angle uses the angle of rotation around the three axes to indicate the orientation of the object (RX, Ry, Rz) (note that the three axes are for the object coordinate system ). 1. The object is in the origin of the world coordinate system (XW, YW, ZW). At this time, the object coordinate system (XL, YL, Zl) and the world coordinate system (Here I use the right coordinate system.You can also use the left-hand coordinate system ). In this case, the object orientation is (0, 0, 0 ).


Figure 1: initial orientation of an object

Now start to rotate the object, first round the object coordinate system x axis (XL) to rotate 30 degrees (Here I want to see the negative direction along the axial axis, and the clockwise rotation is positive.You can also set your own rules, it doesn't matter, follow the rules), note that the object coordinate system has changed at this time, as shown in figure 2,


Figure 2: An object rotates 30 degrees around the X axis (XL) of the object Coordinate System

Then, rotate around the yl axis 90 degrees. Now, you will find that the ZL axis has been in the same axis as the X axis of the world coordinate system. See figure 3.

Figure 3: An object rotates 90 degrees around the coordinate system Y axis (yl)

Now, if the direction of the current object is indicated by the Euclidean angle, the coordinates are (30, 90, 0) and the rotation sequence is XL-> yl-> Zl. However, what is interesting is that if I continue to rotate again, now I rotate-40 degrees according to Zl. what did I find? Why does it feel that the shaft has been rotated once, although the axial direction is opposite? ^ _ ^, Anyway, the final coordinate should be (30, 90,-40), as shown in figure 4.

Figure 4: ZL rotation of an object around the coordinate system of an object-40 degrees

Well, back to the question above, since I felt that the two rotations were going around the same axis, what if I thought about all the rotations going around the same axis at the beginning? That is, first rotate around XL 30-(-40) = 70 degrees, then rotate around yl 90 degrees. ^_^ How about it? It has reached the same effect as the previous rotation. What does this mean? The coordinates (30, 90,-40) and (30-(-40), 90, 0) are the same. Even the coordinates (rx1, 90, rz1) and (rx2, 90, rz2) are the same, just meet the Rx1-Rz1 = Rx2-Rz2. When the Rx1-Rz1 is rx2, rz2 = 0, that is, in this case any rotation around the ZL axis can be done using the first around the XL axis. Or from another angle, an object can only rotate around two axes at present! That is, a degree of freedom of rotation is missing!This is the deadlock of the universal joint in the third dimension.

To sum up, we can say that an axis in the coordinate system of an object, such as a plus (-) 90 degree rotation on the Y axis, this makes the previous rotation round the X axis of the object coordinate system and the second rotation round the X axis of the object coordinate system the same (the same means that in the world coordinate system, the two rotation axes are in the opposite direction), resulting in a loss of degrees of freedom of rotation.

In fact, a system that uses three quantities to represent the orientation of a three-dimensional space will encounter this problem, unless it is expressed by four quantities, such as the Quaternary element.

In a two-dimensional situation, the universal joint deadlock of the ouarla corner system causes the telescope to be unable to track the location of the aircraft. In the words of someoneIn a coordinate system, continuous positions in space cannot be expressed by continuous coordinate values.. Let's see if this is the case in 3D mode? Cannot we track the orientation of an aircraft?

For example, the starting direction of an aircraft is 1, which corresponds to the orah coordinate (0, 0 ). Now, the aircraft rotates around XL 30 degrees, yl 40 degrees, and ZL 50 degrees sequentially. In the corresponding place, if the orah coordinates are used for tracking (30, 40, 50 ). The final orientation of the aircraft is shown in Figure 5.

Figure 5: Orientation of coordinates (30, 40, 50)

Now, the aircraft starts to turn around the XL axis to 1 degree. Now, the Euler's coordinates are correspondingly changed to (, 40, 50) for tracking. Is the orientation of the aircraft corresponding to the coordinates correct? It's actually right. No problem. Everything is OK.

In another case, the first position of the aircraft in Figure 1 is 30 degrees around XL, then 90 degrees around YL, and then rotates around zl-40 degrees, if the Euclidean coordinate is used for tracking (30, 90,-40), the orientation of the aircraft is 4. Now, the aircraft starts to turn around the XL axis to 1 degree. Now, the Euler coordinates are correspondingly changed to (,-40) for tracking, right? Look at the comparison. Using the coordinates, the aircraft will definitely not be able to match! The deadlock in universal joints is still so annoying.

This is also why the Euclidean angle interpolation is not suitable for expressing the rotation interpolation (equi-velocity) in the case of three dimensions. Use the square element interpolation, you can see: http://www.cnblogs.com/soroman/archive/2006/09/19/509597.html

 

 

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.