 Download Download Presentation Jason Clark (jason@essentialmath)

# Jason Clark (jason@essentialmath)

Télécharger la présentation ## Jason Clark (jason@essentialmath)

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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?