Inverse Kinematics Solver in C++

Written by Luis Cruz on Sunday, 21 August 2011. Posted in Academic Portfolio

Computer Animation | CS7496

Inverse Kinematics Solver in C++

In this project we formulate the problem of Inverse Kinematics as an unconstrained optimization. For each frame, a pose "q" is solved to be minimized; thus, we solved for a sequence of optimizations to obtain a motion. The input is a C3D file with 3D coordinates for each marker.

Project Video

Goal

  • Formulate the problem of inverse kinematics as an unconstrained optimization
  • For each frame, solve for a pose q that minimizes
    kinematics-eq01
  • Solve for a sequence of optimizations to obtain a motion

Greatest gradient descent

  • At each iteration of optimization, you need to compute gradient of current F(q)
    kinematics-eq02
  • Pick a value of alpha smaller than 1 to advance to the next iteration
    kinematics-eq03

Constraint derivatives

kinematics-eq04What do we need?
A direction to move joints in such way that the constraint handles move towards the goal

What do derivatives tell us?
A direction constraint handles move if joints move

 

 

 

 

 

kinematics-eq05

 

kinematics-eq06

For more information, download the following PDF:
Inverse Kinematics

Social Bookmarks

About the Author

Luis Cruz

I am pursuing my MS in Computer Science at Georgia Institute of Technology (GaTech) with emphasis in Computer Graphics. I received by BS in Computer Science at GaTech in 2009 with specialization in Software Engineering and Computer Graphics.

Leave a comment

You are commenting as guest.