2011 Notes
Basic concept:
- Specific IK (end-effectors to angles)
- Generalized IK (constraints to poses)
- multiple constraints
- other kinds of “rigs” and objects
- other kinds of constraints
- priorities, objective functions, …
- Kinematics vs. Dynamics
- just the pose – not concerned about how it gets there
- two kinds of getting there
- interactive dragging
- animation (the pose is only 1 frame of a motion)
- The general math problem
- Forward kinematics p=f(q)
- Inverse kinematics q = f^-1(p)
General Issues
- Non-Linear
- May be No Solutions (singular)
- May be Many Solutions
Features to want
- generality
- handles different types of objects / systems
- handles different types of constraints
- handles different numbers of constraints
- robustness (finds a solution if there is one)
- singularity free
- chooses good answers (if there are many)
- provides a good mechanism for saying what is desireable
- naturalness
- joint limits
- priorities / secondary objectives
- damping (close to previous solution)
- speed
- repeatability / predictability
Three general Strategies
- Analytic
- Numerical
- Example-Based
Analytic
- fast/closed form
- deal with under-constrained by algorithm design
- easiest solution to find
- fewest joints metric
- easy to implement
- works OK for small changes (and small numbers of joints)
Numerical
- Search based hacks
- Linearization: the jacobian
- Jacobian transpose (gradient descent)
- Local linearization – Newton’s method
- Under-determined system? Least squares!
- pseudo inverse (J^T J)
- Conditioning issues
- singular configurations
- near-singular configurations
- Damping
- limit “velocities” (penalize bigger answers)
- good: avoids big answers in the under-specified case
- bad: avoids big answers even when they are necessary
Example-Based
- lookup table
- half-way isn’t necessarily half way (since non-linear)
- interpolate a set of examples
- regularly spaced examples (Wiley & Hahn)
- RBF interpolation (Rose ‘01)
- lots of examples, then interpolation becomes less of an issue
- but need to choose the right example (could have many far apart)