Re: euler angles ,
- From: Just d' FAQs <nobody-here@xxxxxxx>
- Date: Mon, 13 Mar 2006 20:02:04 -0600
On Sun, 12 Mar 2006 13:42:03 -0800, "quat" <spam@xxxxxxxx> wrote:
My book, "Computer Animation: Algorithms and Techniques,"
talks about fixed axis rotation where you rotate an object about each of the
three *fixed* coordinate axes in some order. I see how gimbal lock can
occur with this setup. It then talks about Euler angles, which is where the
rotations always happen along the updated object axes in some order. It
then implements euler angles in terms of fixed angles and shows they are
equivalent but with reverse ordering, so euler angle can have gimbal lock
too.
However, is this because of the fixed angle implementation? If you instead
maintained the object's look, up, and right vector and used arbitrary axis
rotations, would gimbla lock still be possible? I could not visualize a
case where a degree of freedom would be lost in this situation since the
object axes are always mutually orthogonal, one axis could never line up
with another.
The term "gimbal lock" gets thrown around with excess abandon, so it
is often hard to be sure exactly what phenomenon is under discussion.
In the physical world, a gimbal is a mount holding an object with pins
on opposite sides, allowing the object to rotate freely around the
axis through the pins. By nesting three gimbals, a gyroscope (or other
device) can be mounted so it rotates freely in space. However, at a
certain orientation of the second axis, the first and last axes become
collinear, restricting available rotations of the suspended gyroscope
to only two axes (two degrees of freedom). This is the original use of
the term "gimbal lock".
In computer graphics, we often use the term in a much broader sense to
refer to the mathematical incompatibility of 3D rotation space with a
vector description, of which Euler angles are the common example. This
incompatibility is a matter of topology, or of differential geometry,
subjects somewhat outside the zone of familiarity for many readers.
We can show that any 3D rotation leaves, not just a point, but a whole
line of points, fixed. The line is the axis of the rotation. Moreover,
we can recreate any 3D rotation from its axis and angle. With only one
axis, albeit a freely chosen line rather than a world or body axis, it
would appear that gimbal lock is impossible. However, this axis-angle
representation still presents incompatibilities with the true nature
of 3D rotations. For, suppose we set the angle to 359.9 degrees, and
consider all possible axes; large differences in axes make almost no
difference in the corresponding rotation matrix.
To illustrate, an axis of (1,0,0) and angle of 359.9 degrees yields
[1 0 0 ]
[0 0.999998 -0.001745]
[0 0.001745 0.999998]
while an axis of (0,1,0) and angle of 359.9 degrees yields nearby
[ 0.999998 0 0.001745]
[ 0 1 0 ]
[-0.001745 0 0.999998]
By contrast, the quaternions for these two nearby matrices are quite
near each other, as we prefer:
[(0.0008726645,0,0),-0.9999996192]
versus
[(0,0.0008726645,0),-0.9999996192]
This is the essence of preserving topology: nearness relationships
should be preserved.
.
- References:
- euler angles ,
- From: quat
- euler angles ,
- Prev by Date: Re: point in plane has been rotated
- Next by Date: Polygon-Polygon Intersection Test
- Previous by thread: Re: euler angles ,
- Next by thread: How to implement Retinex algorithm ?/
- Index(es):
Relevant Pages
|
Loading