[Soc-2005-dev] Inverse Kinematics
Ton Roosendaal
ton at blender.org
Wed Jul 27 13:28:47 CEST 2005
Hi,
>> - DOF joints
>> We need to define the format how to express a "DOF". End-users would
>> prefer Euler here I guess.
>
> I'm not convinced using Eulers would be a good idea, since they have
> two problems for 3DOF and 2DOF XZ joints:
> a) singularity at 90 degrees (gimbal lock)
> b) don't define an intuitive motion range, since for example the Z
> range
> would not define how far can be rotated over the Z axis from the
> rest
> pose, but rather how far can be rotated after rotations over the
> other
> axes.
> It would in my opinion be best to use a swing (XZ) + twist (Y)
> decomposition
> for these cases. Swing is then an axis angle, and twist is a simple
> rotation
> over the Y axis after the swing. The swing component then nicely
> defines
> how far ca be rotated over the X and Z axes. It still has singularity
> at 180
> degrees, but that's mostly beyond joint limits (and singularity simply
> cannot
> be avoided when using 3 parameters).
All PoseChannels have rotations stored as relative WRT to the bone's
restposition. It's local even, so the parent rotations don't play a
role.
The problem is then mostly in the API to the IK itself... since it
accepts only the endresult 3x3 matrices of PoseChannels+Bones, without
knowledge of what 'rest position' is.
To make it even more complex, when IK gets applied, all constraints +
actions were done already, and possibly even a previous IK round.
What is possible though, is to give the IK module another 3x3 matrix
denoting its restposition. The solver then could evaluate joint limits,
based on only these options we provide in the UI:
- Single Axis DOF
either X or Z axis. (should be simple, but can be unstable!)
- Swing DOF
both X+Z axes, we can call this the "Swing", and it is based on the
maximum angular difference of the Y component of the two 3x3 matrices
provided
to the IK solver
- Roll DOF
the Y-axis rotation freedom, can be combined with either one of the
above.
Is this what you proposed?
-Ton-
------------------------------------------------------------------------
--
Ton Roosendaal Blender Foundation ton at blender.org
http://www.blender.org
More information about the Soc-2005-dev
mailing list