my adventure with inverse kinematics
Download
Skip this Video
Download Presentation
My Adventure with Inverse Kinematics

Loading in 2 Seconds...

play fullscreen
1 / 39

My Adventure with Inverse Kinematics - PowerPoint PPT Presentation


  • 133 Views
  • Uploaded on

My Adventure with Inverse Kinematics. Chris Hecker definition six, inc. [email protected] What is this lecture about?. the path I took while solving a problem with inverse kinematics how I use math to model and [sometimes] solve problems decisions I made, both good and bad

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'My Adventure with Inverse Kinematics' - yamal


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
what is this lecture about
What is this lecture about?
  • the path I took while solving a problem with inverse kinematics
  • how I use math to model and [sometimes] solve problems
  • decisions I made, both good and bad
  • learn from my successes and failures
  • work in progress!
what isn t this lecture about
What isn’t this lecture about?
  • not an IK tutorial or introduction
  • not going to give you the One True Way to do IK
  • has nothing to do with graphics
  • not about my rock climbing game
      • Experimental Gameplay WorkshopFriday, 4pm - 7pm
takeaway
Takeaway
  • You will get insight into how IK on a whole human body is different from IK on a single arm.
  • You will see how IK is a building block, but not a complete solution to character animation.
prerequisites
Prerequisites
  • must be very comfortable with math
    • doesn’t mean you know tons of math
    • does mean you follow quickly and aren’t afraid of it
  • probably best if you’ve implemented a simple IK system
    • foot placement, arm grabbing door, etc.
talk structure linear with occasional branches
Talk Structure(linear with occasional branches)
  • ...
  • attempted solution
  • problem statement and discussion
  • related theory
  • attempted solution
  • problem statement and discussion
  • related theory
  • ...
problem how to move a guy with the mouse
Problem: How to move a guy with the mouse?
  • move like a [rock climbing] human
  • interactive
  • direct body/limb control
  • did not want to use physics
theory how to move a guy with the mouse

g

Theory: How to move a guy with the mouse?
  • inverse kinematics vs. forward kinematics
    • FK: p=f(q)
    • IK: q = f-1(p)
    • p is Euclidean, angles
    • q is configuration space

p

p = (x, y)

q = (q1, q2)

q2

q1

theory how to move a guy with the mouse cont

p

q2

q1

Theory: How to move a guy with the mouse?(cont.)
  • degrees of freedom (DOF)
      • incredibly important concept
  • “ways in which system can change”
      • configuration space
  • find DOF of system to understand it
  • control & constrain DOF to control it
  • examples
      • physical system, polynomial, etc.
  • fundamental task of IK is to control degrees of freedom to attain goal

p = (x, y)

q = (q1, q2)

solution how to move a guy with the mouse
Solution: How to move a guy with the mouse?
  • analytical IK
  • invert p = f(q) to get q from p
  • relatively easy for the 2D arm
    • inverse trig, some vector algebra
  • gets complicated as n increases
problem analytical ik can t handle human

g

Problem: Analytical IK can’t handle human.

p

  • human has lots of DOF
    • even 2D arm with shoulderhas more DOF than neededto reach goal
  • solving p = f(q) requirescertain characteristics

q3

q2

q1

p = (x, y)

q = (q1 , q2 , q3)

theory analytical ik can t handle human
Theory: Analytical IK can’t handle human.

p

  • p = f(q) is a set of nonlinear equations
    • generally no closed forms
    • must iterate numerically
  • must be square, nDOF = ngoal
  • over-, under-constrained system
    • “redundant manipulator”
    • ex. human reaching for point and/or orientation
  • vast literature on solving f(q) = p

q3

q2

q1

p = (x, y)

q = (q1 , q2 , q3)

solution analytical ik can t handle human

g

Solution: Analytical IK can’t handle human.

p

  • use Cyclic Coordinate Descent(CCD) to solve arms
    • iterative, recursive position-spacealgorithm
    • fast, easy, robust
    • start from last position
      • not path independent, but faster
    • I draw every outside iteration
      • looks like animation, but it’s not

q3

q2

q1

p = (x, y)

q = (q1 , q2 , q3)

problem ccd only handles serial chains

g1

g2

Problem: CCD only handles serial chains.

p2

p1

  • multiple goals are necessaryfor human
    • stack up vectors inp=f(q)
    • coupled at branches

q3

q5

q4

q2

q1

p = (x1, y1, x2, y2)

q = (q1 , q2 , q3 , q4 , q5)

theory ccd only handles serial chains

g1

g2

Theory: CCD only handles serial chains.

p2

p1

  • coupling between goals
  • either solvable alone,neither solvable together
  • how to distribute desired-angleerror?

q3

q5

q4

q2

q1

p = (x1, y1, x2, y2)

q = (q1 , q2 , q3 , q4 , q5)

solution ccd only handles serial chains
Solution: CCD only handles serial chains.

p2

p1

  • simply average desired angles atbranch parents to attainmultiple goals and distributeerror
    • q1 in example, imagine p1, p2pulled in opposite directions

q3

q5

q4

q2

q1

p = (x1, y1, x2, y2)

q = (q1 , q2 , q3 , q4 , q5)

problem drift on multiple goals
Problem: Drift on multiple goals.
  • average can’t satisfy all goals
  • or even prioritize them
  • I specifically want to drag climber hand with mouse and have other end effectors stay on holds

q

theory drift on multiple goals
Theory: Drift on multiple goals.
  • want a rigid constraint at end effectors
  • closed loops are hard, CCD doesn’t handle them, nor do common IK algorithms
    • must solve simultaneously
    • not hierarchical anymore
    • closed loops don’t have local behavior

q

solution drift on multiple goals
Solution: Drift on multiple goals.
  • attempt to “Gram-Schmidt” off any movement that would result in error

b

c

a

problem gram schmidt removes the wrong direction sometimes
Problem: Gram-Schmidt removes the wrong direction sometimes.
  • could have tried real Jacobian force mapping Gram-Schmidt
problem human is not rooted tree
Problem: Human is not rooted tree.
  • Which end effector (hand, foot) is the root?
  • There is no persistent fixed rootin a rock climber
    • or walking person
  • CCD must start at a fixed root
theory human is not rooted tree
Theory: Human is not rooted tree.
  • switching root is basically a datastructure problem
  • relative angles must change
    • joint limits (see below)
  • behavior will change slightly as well,since CCD isn’t symmetric withrespect to the root
solution human is not rooted tree
Solution: Human is not rooted tree.
  • just type it in
  • invert tree to new root
  • Caml is pretty good at thissort of thing
    • see last year’s GDC talk
  • dragging torso is done by inverting to a torso node, then changing the root position
    • the hands and feet are all end-effectors
    • hack!
problem joint limits
Problem: Joint limits
  • elbow can’t bend backwards
  • should lend believability and intuition
theory joint limits
Theory: Joint limits
  • inequality constraints: q³qmin
    • abandon all (most) hope of analytical solution
    • these inequalities are axis aligned planes in configuration space

qmax

q

qmin

solution joint limits
Solution: Joint limits
  • CCD makes parent-child limits easy
  • do min/max clamp in CCD inner iteration
  • easy, and rest of system compensates
  • issue: CCD doesn’t “know” about the joint limits
    • often compensates, but doesn’t know to avoid them
problem child child limits
Problem: Child-child limits
  • parent-child not enough with moving root
  • pelvis example:
    • left foot root
    • right foot root
    • chest root
problem child child limits28
Problem: Child-child limits
  • parent-child not enough with moving root
  • pelvis example:
    • left foot root
    • right foot root
    • chest root
problem child child limits29
Problem: Child-child limits
  • parent-child not enough with moving root
  • pelvis example:
    • left foot root
    • right foot root
    • chest root

?

theory child child limits
Theory: Child-child limits
  • both angles are dependent on each other, coupled
    • parent is fixed in CCD
    • constraints are now non-axisaligned planes in C-space
  • simultaneous solution necessaryat branches with child-childlimits
solution child child limits
Solution: Child-child limits
  • Good solution should:
    • satisfy constraints always
    • have zero error in goals if possible
    • have least squares error if not possible
  • Nonlinear Least Squares with Linear Inequalities: minimize (q1 - d1)2 + (q2 - d2)2 w.r.t. qmin12£ q1 - q2 £qmax12
    • lots of literature on NLSLI
    • I convert to LCP and use Lemke’s algorithm
    • works great!
accomplishments
Accomplishments
  • We extended CCD to handle:
    • multiple end effector goals
    • dynamically changing root node
    • arbitrary joint limits
problems
Problems
  • drift on multi-goals is still a problem
  • CCD doesn’t know about joint limits
  • sometimes non-physical movement
    • CCD isn’t doing physics, not conserving energy, or anything else for that matter
  • rooted hierarchies are inconvenient
  • how to control redundant DOF?
body knowledge system
Body Knowledge System
  • system to manage movement and keep it natural
    • “situation” & “reaction”
    • ex. joint limits handled in body knowledge
  • huge rules system
  • allocates redundant DOF
    • this is the key to natural movement!
body knowledge system cont
Body Knowledge System (cont.)
  • IK just a rough initial guess for body knowledge system; should be:
    • physically plausible
      • no added energy, etc.
    • easy to layer conflicting goals
    • able to cope with over-constrained goals
  • don’t know enough about this yet, but I think it will be more important than IK for good dynamic animation
what i didn t talk about
What I Didn’t Talk About
  • development process stuff
    • developing on lower dimensional subproblems
    • using visualizations to help debug math
    • Mathematica and Matlab for development and debugging
    • running multiple techniques on top of each other
  • physics-based techniques I tried
what i didn t try
What I Didn’t Try
  • I should have done a weighted average based on error for multi-goals, duh.
    • even weighted average wouldn’t be rigid
      • although could make weight very big...
      • similar to a stiff system
  • Wrong: “CCD must have fixed root”
    • now that I understand better,this isn’t actualy true
      • the root’s position is just more DOF
      • CCD probably wouldn’t deal with this very well?
what i didn t try cont
What I Didn’t Try (cont.)
  • pseudo-inverse methods
      • give explicit control over redundant DOF
  • data-based methods (model-based)
      • functions as lookup tables
  • totally ad-hoc methods
references
References
  • two great theses:
    • Paolo Baerlocher
    • Chris Welman
  • google & citeseer
  • GDC talks
    • David Wu
    • Ken Perlin
  • Jeff Lander’s articles & code
  • Experimental Gameplay Workshop
ad