From: "Bob Dengle" <[EMAIL PROTECTED]>
Sent: Tuesday, June 26, 2001 2:27 PM


> ...
> I was thinking about the general technique behind CCD and I
thought of
> something. If you have a chain of bones pointing towards an
effector, why
> can't you use simple trigonometry to rotate the chain?
> ...

If I understand your proposal correctly, it is pretty much what
the bare CCD (Cyclic Coordinate Descent) method does.  To back
up a bit to make clear what we're _not_ talking about, there is
a class of IK methods that attempt to solve the whole Jacobian -
a set of simultaneous linearized equations.  In contrast, CCD
walks down a kinematic chain, minimizing the constraint mismatch
for each dependant degree of freedom in turn, and it makes as
many trips down the chain as it needs to converge.  As you
suggest, solution for each step is a single degree of freedom
equation that can be solved by trig.

Note that Java 3D has huge support for this.  1.) You can
measure the constraint mismatch vector using a couple of
getLocalToVworlds, 2.) you can avoid the trig altogether by
tweaking each dependant transform to get the derivative vector
d(mismatch)/d(dependant coordinate), and 3) you can solve for
the desired dependant setting to minimize the error with
algebra.  Cute.  I think that you can state your goal as
minimization of the norm of the difference between the error
(constraint mismatch) vector and the correction (derivative)
vector.  You get the magnitude of the change to the dependant
variable you're working on with just an arithmetic divide.  My
confidence on this follows directly from the fact that I haven't
tried to make it work yet.

This way, you've handed off to Java 3D all of the donkey work in
the form of getLocalToVworlds().

If you try to implement this, you'll probably become the world
expert on whether it's a good idea or not. :-)

> snip a procedure description that sounds to me a lot like CCD.

Cheers,

Fred Klingener
Brock Engineering

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to