Re: Defining Rotations Limits using Quaternions In 3d Space
- From: "oracle3001" <adam.hartshorne@xxxxxxxxx>
- Date: 30 Mar 2007 19:29:23 -0700
On Mar 30, 5:26 pm, hoffm...@xxxxxxxxxxxx wrote:
oracle3001 schrieb:
Hi,
This may be a stupid question, but I have recently discovered
quaternions as a method of defining rotations in 3d space. As an aside
I am from computer science background rather than a pure maths one.
What I am trying to achieve is the following. Imagine I am defining
the rotation that occurs between ones upper and lower arm at the elbow
joint. This has 3 (DOF) degrees of freedom and if it was to be defined
using euler angles it may be achieved using 3 such angles. The limits
of the overall motion allowed by the elbow joint would be achieved by
putting limits of each euler angle. However as I am sure you are aware
if you describe a series of euler angles, the problem of Gimbal lock
can occur.
Ok so rather than describing the possible rotations using euler
angles, I am looking to achieve this using one or more quaternions.
Any suggestions about how I could achieve this would be much
appreciated, with the main problem that I am grappling with is how I
can define limits of this quaternion based rotation in order to
enforce restrictions on the freedom of rotation(s) that mimic a real
joint.
Any help much appreciated,
Adam
Adam,
a rotation by quaternions describes the rotation with an angle
about an axis.
It is possible to replace the quaternion operator
X2 = Q * X1 * Q'
by the Cayley matrix C:
X2 = C * X1
On the other hand, it's possible to execute the rotation
as a sequence of three single axis Euler rotations:
X2 = T * X1
T = C is obvious, but T depends on the chosen Euler angle
system (12 possible sets). There is no generic assignment of
Euler angles to a rotation about an axis with an angle.
The example for the human arm is a difficult one:
The joint between upper arm and lower arm has just one
degree of freedom.
For an apparently fixed upper arm, the end of the lower arm
(hand) can be rotated by three angles. One by twisting
the two bones in the lower arm, one by the elbow joint and one
by rotating the upper arm in a spherical shoulder joint.
This says: we dont' have three Euler angles mechanically,
but one can ASSIGN three Euler angles.
Now we come to the limitations: the quaternion rotation
doesn't depend on mechanical joints, but once the Euler angle
system is defined, one can immediately check, whether each
Euler angle is in limits.
Unfortunately, the decomposition of quaternions into Euler
angles will fail exactly there where 'gimbal-lock' happens.
Best regards --Gernot Hoffmann
I think you misunderstood what I was saying a little. The information
you have provided is basically what I was stating, that I know I can
describe this problem using euler angles, but I don't want to do so. I
want to know how define the limits of a quaternion, which I can
imagine is basically a surface drawn out in space, but I don't know
how I define that mathematically.
Using my arm example, define the area in space that is an allowed
rotation in terms of quaternions.
.
- References:
- Defining Rotations Limits using Quaternions In 3d Space
- From: oracle3001
- Re: Defining Rotations Limits using Quaternions In 3d Space
- From: hoffmann
- Defining Rotations Limits using Quaternions In 3d Space
- Prev by Date: Celestial sphere projection
- Previous by thread: Re: Defining Rotations Limits using Quaternions In 3d Space
- Next by thread: Celestial sphere projection
- Index(es):
Relevant Pages
|