Re: Defining Rotations Limits using Quaternions In 3d Space



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


.



Relevant Pages

  • Re: Structured spacetime
    ... axes (timelike is the rotation axis, ... I can sort of imagine that, and to the extent I can see it ... cross product, just as electromagnetism is. ... Since the idea of a 'real' imaginary space isn't consistent with some fundamental assumtions of QM, the content of QM have to be rebuild with those quaternions alone ...
    (sci.physics.relativity)
  • Re: Rotation
    ... I don't understand quaternions, and I'm trying to only use code that I ... I think the key point for rotations is that you have to rotate ... When you construct a pure rotation matrix, ... Where C is the center point and theta, phi and gamma are your angles ...
    (microsoft.public.win32.programmer.directx.managed)
  • Re: Quaternions, Penrose Road to Reality ch. 11.3
    ... >>I'm attempting to gain a physical feeling for quaternions and have got ... > As for quaternions and the belt trick: The belt is a fun insight by ... and draw loops starting and ending there. ... > is that a 360 degree rotation path is *not* equivalent to a null path! ...
    (comp.graphics.algorithms)
  • Re: Defining Rotations Limits using Quaternions In 3d Space
    ... the rotation that occurs between ones upper and lower arm at the elbow ... using euler angles it may be achieved using 3 such angles. ... I am looking to achieve this using one or more quaternions. ... The example for the human arm is a difficult one: ...
    (comp.graphics.algorithms)
  • quaternions
    ... I have several papers on quaternions. ... "Fred Mellender" wrote:Is there a website or person anywhere that can explain ... Wannabe Geek ... rotation only, but I am noticing strange scaling effects as well. ...
    (microsoft.public.dotnet.languages.csharp)