Inverse Kinematics of Multi-Link Chains


PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

Let's assume we have an articulated skeleton arm with several links.
The arm is fixed in space at its root end.
The task is to get the end effector in a predescribed place Xgoal.



How should we go about solving this problem ?

Let's get inspiration from a (lazy, efficient?) humanoid:

Perhaps we want to move as few links (limbs) as possible.


Let's get inspiration from a chain immersed in a viscous medium: Demo on overhead projector...

End-element of chain moves towards target
-- if it moves sufficiently, it will exert a force on the second last chain element;
-- if that moves sufficiently, the 3rd last element will also start to move;
-- and so on.
The end-element moves the most, and the amount of movement gradually falls off towards the root.


Let's get inspiration from an optimization process based on gradient descent:


Interogate each variable in the state vector as to how much it can contribute towards the specified task;
-- form a vector with components that are proportional to the potential contributions;
-- take a SMALL step in that particular direction towards the target;
-- reevaluate the potential contributions of each variable,
-- ITERATE until target is reached.


PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT