[Robotics] IK Chain Joints ?

Benoit Bolsee benoit.bolsee at online.be
Tue Jul 14 16:42:58 CEST 2009


The joint information is lost after the IK constraint resolution, you
must recomputed from the pose channel matrix.
The localMatrix will not be useful in this case, it containts the
transformation matrix from the rest position to the current pose
position for the bone, this is not directly related to joint value
except for the root bone.

One thing you can do it get the poseMatrix for each bone down the chain,
starting from the root and compute the relative tranform from one bone
to the next by this formula: relativePose[n] =
inverse(poseMatrixTail[n-1])*poseMatrix[n]
where n is the bone for which you compute the joint values and
poseMatrixTail is simply poseMatrix where the 4th column is replaced by
tail.
For the root bone, poseMatrixTail is the identity matrix.
>From relativePose you can retrieve the joint value using euler formula. 
Note that this will give you joint value that are 0 when the bones are
aligned. This does not take the rest pose into account and will not
necessirily give you the correct join value (in Blender joint=0 when the
armature is in the rest pose by definition).

To get the real joint value, you will need to work the bone matrix. I
would have to think a bit more to find the correct formula.

Hope this helps,
Benoit

-----Original Message-----
From: robotics-bounces at blender.org [mailto:robotics-bounces at blender.org]
On Behalf Of Florian Lier
Sent: lundi 13 juillet 2009 22:03
To: Blender and Robotics
Subject: [Robotics] IK Chain Joints ?


Hello everybody,

I need some help concerning an IK Chain and "hinge" Joints.
I've moddeled a robot arm which has an ik solver at its ik-chain top.
The bones are limited (XYZ) to the appropriate DoF of the joints.
I can get the poseMatrix of each bone, no problem so far...BUT
the poseMatrix of each bone is a summation of its parents and the bone
LOC/ROT/SIZE of itself.
What I need is the angle (Quat/Matrix .. whatever) between one bone of
the chain
and its direct parent (like "real" joints which have one DoF). I
couldn't figure out how to compute
this correlation. Is there any approach?

If you need an impresion of the arm have a look at this:
http://vimeo.com/5503690

I've also tried the localMatrix...

THANK YOU...

Florian



More information about the Robotics mailing list