Re: Defining Rotations Limits using Quaternions In 3d Space
- From: "Nils Haeck" <bla@xxxxxxx>
- Date: Sun, 1 Apr 2007 00:38:11 +0200
Since quaternions have 4 components, you would need a 4-dimensional volume
to describe the allowed values for the quaternion. This makes the problem
more complex than necessary, since you really want to define 3 degrees of
freedom.
If I were you, I'd try to define the coordinate system such that the second
Euler angle stays well out of the "90 deg" and "-90 deg" range, thus
avoiding the singularity. For many real-life joint types this is possible.
You then need to define a 3-dimensional volume with 3 axes A, B, C (the
Euler rotations around X, Y, Z). Points within the volume are rotations that
can be achieved by the joint.
There are many different ways to describe a 3D volume. You could do it with
a polygonal surface mesh, an octree, mathematical relations, blobs, distance
grids, surface planes making up a convex volume, bounding box, etc. Your
choice depends on how complex the volume is, and how important it is to stay
exactly within it. Many simple mechanical joint types have bounding boxes as
their volume, meaning that all axes can be rotated independently. But I'm
sure it's not so simple for a human arm, meaning that with a rotation
present around one axis, other axes' rotations will be limited in a certain
way.
If you want to stay away from Euler angles, you can also define your
rotation as a vector with a certain length. The vector direction is the axis
of rotation, and its length is the angle about which to rotate. This also
forms a 3D volume. Standard methods are available to go from this vector
definition to a rotation matrix and vice versa. It has advantages both ways:
it avoids the singularity issue, and it avoids having to go to a 4D
definition.
I once worked on optimizing such a rotational workspace. The workspace was
defined by the kinematic configuration of a motion platform for flight
simulation (a hexapod, aka Stewart platform). I approximated the actual
rotational workspace simply by a 3D ellipsoid. I could work with Euler
angles, since the Y rotation would never exceed the range of [-50, 50]
degrees (In fact, what I did was a bit more complex; it also included
translation so it was a 6D "hyper-ellipsoid").
Nils
www.simdesign.nl
.
- Follow-Ups:
- Re: Defining Rotations Limits using Quaternions In 3d Space
- From: Hans-Bernhard Bröker
- Re: Defining Rotations Limits using Quaternions In 3d Space
- Next by Date: for adolf: truly elegant posts - rinzu - (1/1)
- Next by thread: Re: Defining Rotations Limits using Quaternions In 3d Space
- Index(es):
Relevant Pages
|