9
450 Chapter 12: Animation
axis, the solver plane should b e fixed. T herefore,
the Zero Plane Map defines a vector field on a
sphere. Given a point on the sphere, it produces
a tangential unit vector to be interpreted as the
normal to the zero plane.
1. Normal to the zero plane
Solver Plane Flipping
Itisamathematicalfactthattheredoesnotexist
a continuous vector field on a sphere. No matter
howhardyoutry,therewillalwaysbeapoint
onthespherewhereneighboringvectorschange
dramatically. Thisiswherethesolverplanewill
flip when the end effector axis approaches to it.
This is because, on one hand, the history
independentrequirementdemandsustoassign
a fixed vector to the singular point. On the other
hand, no matter what vector is a ssigned, it will be
dramatically different f rom some vectors assig ned
to the neighboring points.
Int ri nsi c R efer ence Fra me for t he S phere
InordertodefinetheZeroPlaneMap,weneed
to define a reference frame for the sphere. This
reference frame is intrinsic to the joint chain itself.
A sphere can be defined by the cent er, the
horizont al plane, and the meridian (zero
longitude). The center is assigned to the start joint.
Theposewhenallthejointanglesassume
preferred angles is particularly important. Let’s
call it the prefer red pose.
We use the solver plane at the preferred pose as the
horizontal plane. Since the swivel angle is used to
control t he start joint, the preferred angles at the
start joint are not so in trinsic. It is also reasonable
to define the horizontal plane with the solver plane
that is derive d by assigning zeroes to the start joint
and preferred angles to the other joints.
TheEEaxisdefinesthemeridian.Thesphereis
nowdefinedasshowninthefollowingfigure:
1. EE axis
All t he joints assume preferred angles. The Zero
Plane Map is to be defined on this sphere.
TheAPIfortheplug-insolvertodefineitsown
Zero Plane Map in fac t takes the EE axis and the
normal to the solver plane at the preferred pose:
virtual const IKSys::ZeroPlaneMap*
GetZeroPlaneMap(const Point3& a0,
const Point3& n0) const
where a0 and n0 are the EE axis and solver plane
at the preferred pose, respectively. Object of
ZeroPlaneMapisafunctionthatassignsaplane
normal to each point on the sphere.