1 / 35

Jason Clark (jason@essentialmath)

Inverse Kinematics. Jason Clark (jason@essentialmath.com). Inverse Kinematics. Actors are animated in game. Animations are independent of the world Want to have more realistic response to what the Actors are interacting with. Need a mechanism for reacting to goals specified during the game.

busick
Download Presentation

Jason Clark (jason@essentialmath)

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Inverse Kinematics Jason Clark (jason@essentialmath.com)

  2. Inverse Kinematics • Actors are animated in game. • Animations are independent of the world • Want to have more realistic response to what the Actors are interacting with. • Need a mechanism for reacting to goals specified during the game. Essential Math for Games

  3. Kinematics • Have a hierarchical skeleton structure • Each joint is defined local to its parent • Rotation • Constant Translation • defines set for entire structure.Is the global position of end joint Essential Math for Games

  4. Kinematics • Consider the kinematic chain below. Essential Math for Games

  5. Inverse Kinematics • Animations can be thought of as driving the kinematics in a game • Want reaction to world. I.e. Position a limb based on a goal defined by game situation. • Need method given goal position to update to achieve it. Essential Math for Games

  6. Inverse Kinematics • Kinematics. • Therefore Inverse Kinematics is. As a general problem this is hard. G D1 D3 Q2 E Q1 Q3 D2 Essential Math for Games

  7. Types of solutions • Analytical • Equation that can be directly solved • Preferred, practically impossible as a general solution • Numerical • Expensive • In-accurate • Unfortunately only practical option for general solver. Essential Math for Games

  8. Three Common Methods • Jacobian (Numerical) • Cyclic Coordinate Descent. (Numerical) • Anthropomorphic. (Analytical? Depends) Essential Math for Games

  9. The Jacobian • What is it? A linear approximation to • Matrix of partial derivatives of entire system. • In this case, defined relative to • Defines how changes relative to instantaneous changes in the system. Essential Math for Games

  10. The Jacobian • Linear approximation Actual E Linear Approximation Essential Math for Games

  11. The Jacobian • Limiting discussion to positional goals only. Essential Math for Games

  12. The Jacobian Essential Math for Games

  13. Not quite right • Jacobian defines changes in relative to changes in • Want to know how a desired change in maps to changes in • Recall that the equation of inverse kinematics is defined as • Therefore we need Essential Math for Games

  14. Inverse Jacobian Problems • Typically system is over specified (under defined) • Ameliorate problem by limiting joints. E.g. Specify elbow as a 1DOF joint. • No guarantee it is invertible. • Typically not a square matrix. • Singularities. Essential Math for Games

  15. Cheat. Pseudo Inverse • Square so can be inverted. • But why is it okay to use this? • Principle of Virtual Work Essential Math for Games

  16. Principle of Virtual Work • Tends towards the right solution. (I.e. It’s the right idea, if not completely accurate) • Take small steps to minimize error. • Calculate error, and if too large adjust step size, or size of • Error = Essential Math for Games

  17. Calculating the Jacobian • Given angle and axis of rotation • is relative to as defined by • Velocity of relative to change in • Gives one column of Jacobian V1 V2 N2 E N1 Essential Math for Games

  18. Algorithm • Only considering positional goals. • Define the following variables – end effector – ith Joint position – ith Joint axis of rotation Essential Math for Games

  19. Algorithm • Calculate the Jacobian • Calculate: • Calculate: • Determine error = • If error > tolerance thenrepeat 4 till within tolerance. Essential Math for Games

  20. Algorithm • Calculate: • Apply to entire system • Repeat until Or max steps is reached. Essential Math for Games

  21. Addendum • Minimizes joint angle rates. Configuration produced may not be natural looking • Add gain values for each joint. Add “stiffness” I.e. Bias which joints are moved • Add constraints, Clamp joint angles. • Both these ideas slow down convergence of the algorithm. Need more steps • as force. transforms to internal velocities Essential Math for Games

  22. One last thing • As stated previously, the Jacobian is a linear approximation to the problem. • Using the pseudo inverse is an approximation to solve for intractability of the problem. • So already cheating, why not cheat more? Can simply use as approximation. Slower convergence, but much cheaper to compute than Essential Math for Games

  23. Cyclic Coordinate Descent • The Jacobian is hard. It deals with entire system as a whole. Good results, more complicated to code, and expensive. • That’s too much work, lets deal with each joint individually. • Heuristic only. Not as mathematically grounded as the Jacobian. Essential Math for Games

  24. CCD • Reduce problem to local consideration at each joint. Start at leaf and move up. • Calculate change in joint needed to minimize “error”. Error = • Calculate Essential Math for Games

  25. CCD • Calculate rotation necessary to align into • Modify current joint by and adjust entire chain below. This is important. • Move up chain and repeat. • Repeat over entire chain till. • Done! Essential Math for Games

  26. Addendum • Pretty easy. Much simpler than the Jacobian. • Problems. Takes more updates of chain and steps than Jacobian does. Simpler individual steps, need more of them. Essential Math for Games

  27. Addendum • Moves end joints first. Heuristic inherently favors them. Local minima problem • Results in unnatural configurations. E.g Wrist bent oddly to reach goal. Worse than Jacobian about this. • Basically Gauss-Seidel. SOR can help. Essential Math for Games

  28. Demo • Snake • From Jeff Lander • darwin3d.com/gdm/1998.htm Essential Math for Games

  29. Anthropomorphic • Other 2 solutions are general purpose solutions • Most games have people. We know something about them. • Standard principle of computer science. Use knowledge of problem domain to simplify problem Essential Math for Games

  30. Rainbow 6: Lockdown • Leave wrist alone. Inaccurate, but good enough and difficult to get right. • Treat elbow as a 1DOF joint. Not precisely accurate. But good enough. • Treat the shoulder as 3DOF joint with no constraints. Again, not entirely true but good enough. Essential Math for Games

  31. Rainbow 6: Lockdown • Leg can be run through same algorithm as Arm. (mostly) • Knee can be simulated as a 1DOF joint. (Elbow) • Hip can be simulated as a 3DOF joint (Shoulder) • Have second pass to fix Ankle. Essential Math for Games

  32. Algorithm • Elbow defines the distance between the shoulder and the end effector. • Simple Trig problem • Law of Cosines B Q A C Essential Math for Games

  33. Algorithm • After that, simply run one step of the CCD algorithm on the shoulder. • Done! Simple, accurate within a tolerable margin, and cheap. Essential Math for Games

  34. References • Welman, Chris, “Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation”, Simon Fraser University. 1993. • Meredith, Michael and Maddock, Steve, “Real-Time Inverse Kinematics: The Return of the Jacobian” University of Sheffield • Tolani, Goswami, and Badler, “Real-Time Inverse Kinematics Techniques for Anthropomorphic Limbs”, University of Pennsylvania. 2000 • Blow, Jonathan, “Oh My God! I Inverted Kine”. Game Developer. September 1998 • Parent, Rick, “Computer Animation: Algorithms and Techniques”, Morgan-Kaufmann, San Francisco, 2001. Essential Math for Games

  35. Questions?

More Related