Difference between revisions of "Inverse Kinematics"

(New page: right It turns out I have written a lot of Inverse Kinematics algorithms. I didn't even realize how many different algorithms I've tried for solving IK unti...)
 
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Image:Rock_climber_140.png|right]]
[[Image:Rock_climber_140.png|right]]
It turns out I have written a lot of Inverse Kinematics algorithms.
It turns out I have written a lot of Inverse Kinematics solvers using a lot of different IK algorithms.


I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page.  The list looks something like this:
I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page.  The list looks something like this:
Line 15: Line 15:
* rigid body dynamics solver
* rigid body dynamics solver
** augmented coordinates
** augmented coordinates
*** explicit with Lagrange Multipliers, LCP joint limits
*** explicit with [[How to Simulate a Ponytail|Lagrange Multipliers]], [[The Mixed Linear Complementarity Problem|LCP]] joint limits
*** implicit with stiff springs
*** implicit with stiff springs
** generalized coordinates
** generalized coordinates

Latest revision as of 02:18, 31 January 2009

Rock climber 140.png

It turns out I have written a lot of Inverse Kinematics solvers using a lot of different IK algorithms.

I didn't even realize how many different algorithms I've tried for solving IK until I started writing this page. The list looks something like this:

  • simple serial analytical IK
  • Cyclic Coordinate Descent (CCD)
    • serial and tree structured
    • with joint limits from the root
    • with child-child joint limits
    • dynamically re-rooted
    • 2 Degree of Freedom (DOF), 3 DOF, and 6 DOF
    • sequential euler angle joint solver
    • numerical quaternion joint solver
  • rigid body dynamics solver
    • augmented coordinates
    • generalized coordinates
      • explicit with springs
      • implicit Featherstone with stiff springs
  • particle-based solver (like SHAKE, RATTLE, Jakobsen)
    • dense constraint approach to branching nodes
    • sparse branching with multiple passes

Yikes! I hope to make each of those a link to a detailed description of the technique and its pros and cons in the future.

For now, here is my 2002 Game Developers Conference lecture, titled My Adventures in Inverse Kinematics. It's a description of the CCD-based approach I took for a while on my indie rock climbing game.

This page was last edited on 31 January 2009, at 02:18.