From: "Bob Dengle" <[EMAIL PROTECTED]>
Sent: Monday, June 25, 2001 7:45 PM
> Hi.
>
> Thanks for the info. I was busy seaching graphics and game
development sites
> for articles on inverse kinematics hoping there was
information on CCD. :-)
>
> The best resource i came up with was Chris Welman's PhD thesis
on Inverse
> Kinematics. It discusses methods for implementing an ik
system, but there
> isnt any source to go with :-(. It can be downloaded in .ps
format from
>
> ftp://fas.sfu.ca/pub/cs/theses/1993/ChrisWelmanMSc.ps.gz
Yeah. Welman's paper remains one of the best and most
comprehensive treatments. But don't go looking for source.
Fact is that you probably don't want to. Java 3D will do much
of the work for you, and much of the ugly little detail that the
C++ and *gag* Javascript programmers have to wallow in we can do
with a couple of calls to getLocalToVworld().
To make it work, you mark the scene graph nodes that you want to
coincide, run the forward kinematics with your dependent
transforms set at the initial guess, and then you can get the
error (as a Transform3D) with a couple of getLocalToVworld()
calls, an inversion, and a multiply. Of course, you have to
take apart the resulting Transform3D to get the displacements
and the angles. Then, if you're using any of the
derivative-based IK routines - building the full Jacobian or CCD
for example - you can approximate the derivatives that you need
directly on the scene graph by tweaking each of the dependent
joints and measuring the changes in the error. (They come out
as the columns of the Jacobian.) What you do with them from
there on depends on your system and your goals.
I have no idea how this approach compares performance-wise with
a hand-coded system or how much of it gets done on hardware, but
the economy of expression is certainly attractive.
I did this for a simple one-degree-of-freedom, one
pin-constraint, determinate system in
http://www.brockeng.com/VMech/IK/IKSG.PDF . Because the example
system is so simple, I finish by simply inverting the Jacobian,
but the front half setup is applicable to any of the
Jacobian-based systems or CCD, for example.
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".