Fundamentals of Computer Animation

Slides:



Advertisements
Similar presentations
Jason Clark Inverse Kinematics Jason Clark
Advertisements

COMP Robotics: An Introduction
Inverse Kinematics Professor Nicola Ferrier ME 2246,
© 2011 Autodesk Freely licensed for use by educational institutions. Reuse and changes require a note indicating that content has been modified from the.
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
Forward and Inverse Kinematics CSE 3541 Matt Boggus.
Simulation and Animation
A Combined Optimization Method for Solving the Inverse Kinematics Problem of Mechanical Manipulators Roland Mai B659, Spring 2010 Indiana University.
Trajectory Generation
Inverse Kinematics Set goal configuration of end effector
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
1Notes  Handing assignment 0 back (at the front of the room)  Read the newsgroup!  Planning to put 16mm films on the web soon (possibly tomorrow)
Ch. 7: Dynamics.
“Inverse Kinematics” The Loop Closure Problem in Biology Barak Raveh Dan Halperin Course in Structural Bioinformatics Spring 2006.
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
Inverse Kinematics (part 2)
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 20: Inverse Kinematics Ravi Ramamoorthi Most slides courtesy.
Kinematics. ILE5030 Computer Animation and Special Effects2 Kinematics The branch of mechanics concerned with the motions of objects without regard to.
Inverse Kinematics.
CSCE 689: Forward Kinematics and Inverse Kinematics
Animation CS 551 / 651 Kinematics Lecture 09 Kinematics Sarcos Humanoid.
Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
1cs426-winter-2008 Notes  SIGGRAPH crunch time - my apologies :-)
역운동학의 구현과 응용 Implementation of Inverse Kinematics and Application 서울대학교 전기공학부 휴먼애니메이션연구단 최광진
Advanced Graphics (and Animation) Spring 2002
Definition of an Industrial Robot
February 21, 2000Robotics 1 Copyright Martin P. Aalund, Ph.D. Computational Considerations.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Kinematic Linkages.
Chap 5 Kinematic Linkages
Advanced Programming for 3D Applications CE Bob Hobbs Staffordshire university Human Motion Lecture 3.
Inverse Kinematics.
Inverse Kinematics Kris Hauser
Lecture 2: Introduction to Concepts in Robotics
Inverse Kinematics.
Simulation and Animation
Structure and Synthesis of Robot Motion Kinematics Subramanian Ramamoorthy School of Informatics 18 January, 2010.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
Review: Differential Kinematics
CS-378: Game Technology Lecture #13: Animation Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Kinematic Redundancy A manipulator may have more DOFs than are necessary to control a desired variable What do you do w/ the extra DOFs? However, even.
1cs426-winter-2008 Notes  Will add references to splines on web page.
Outline: Introduction Solvability Manipulator subspace when n<6
Trajectory Generation
Lecture 5: inverse kinematics.  The local and world matrix construction within the skeleton is an implementation of forward kinematics  Forward kinematics.
1cs426-winter-2008 Notes. 2 Kinematics  The study of how things move  Usually boils down to describing the motion of articulated rigid figures Things.
Inverse Kinematics CSIS 5838: Graphics and Animation for Gaming.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
Numerical Methods for Inverse Kinematics Kris Hauser ECE 383 / ME 442.
Singularity-Robust Task Priority Redundancy Resolution for Real-time Kinematic Control of Robot Manipulators Stefano Chiaverini.
Robotics Chapter 3 – Forward Kinematics
Velocity Propagation Between Robot Links 3/4 Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA.
Physically-Based Motion Synthesis in Computer Graphics
CSCE 441: Computer Graphics Forward/Inverse kinematics
Inverse Kinematics.
IK: Choose these angles!
Trajectory Generation
Character Animation Forward and Inverse Kinematics
Computer Animation cgvr.korea.ac.kr.
INVERSE MANIPULATOR KINEMATICS
3.7. Other Game Physics Approaches
Zaid H. Rashid Supervisor Dr. Hassan M. Alwan
Inverse Kinematics, Jacobians
CSCE 441: Computer Graphics Forward/Inverse kinematics
Computer Animation Algorithms and Techniques
Inverse Kinematics 12/30/2018.
© Sharif University of Technology - CEDRA By: Professor Ali Meghdari
Inverse Kinematics (part 2)
Outline: Introduction Solvability Manipulator subspace when n<6
Chapter 4 . Trajectory planning and Inverse kinematics
Chapter 3. Kinematic analysis
Presentation transcript:

Fundamentals of Computer Animation Inverse Kinematics

Example: 2-Link Structure

Forward Kinematics

Forward Kinematics

Example: 2-Link Structure

Inverse Kinematics

Inverse Kinematics

Inverse Kinematics : When useful? Want character to push a button or take a step can give the animator a good first step that he/she can later fine tune

Inverse Kinematics (IK) Examples Balance – keep center of mass over support polygon Control – positions vaulter’s hands on line between shoulder and vault Compute knee angles that will give runner the right leg length

What Makes IK Hard? Goal of "natural looking" motion Singularities Redundancy

Inverse Kinematics

Inverse Kinematics

Inverse Kinematics

What is Inverse Kinematics? Forward Kinematics End Effector ? Base

What is Inverse Kinematics? End Effector Base

Inverse Kinematics (IK) Analytical Solutions Iterative Methods (optimization-based methods) Incremental Constructions (matrix inversion techniques) Textbook

Inverse Kinematics (IK) Analytical Solutions Iterative Methods (optimization-based methods) Incremental Constructions (matrix inversion techniques)

Analytical Solutions

What does looks like? ? Base End Effector

Solution to Our example Number of equations : 2 Unknown variables : 3 Infinite number of solutions !

Redundancy System DOF > End Effector DOF Our example System DOF = 3

Redundancy A redundant system has infinite number of solutions Human skeleton has 70 DOF Ultra-super redundant How to solve highly redundant system?

Inverse Kinematics (IK) Analytical Solutions Iterative Methods (optimization-based methods) Incremental Constructions (matrix inversion techniques)

Iterative Methods for Complex IK Analytical solutions for IK problems are desirable because of their speed and exactness of solution. However, for complex kinematic problems, an analytical solution may not be possible. Simply adding another joint to the system greatly increases the complexity. A more general solution  Iterative Methods

Iterative Methods for Complex IK In an iterative solution, small adjustments are made to the joints to solve the inverse kinematics in a series of steps. This process is finished when the end effector reaches the goal within some tolerance.

Matrix Inversion or Optimization? The robotics community has established methods for solving the IK of an arbitrary system. Matrix inversion techniques: Complicated process Computationally very expensive Various problems due to numerical instabilities. Optimization-based methods: Avoid matrix inversion completely. Attempt to minimize the error in the system. More likely to produce Real-Time results Optimization-based IK method: Minimize the distance between the goal point and the end effector of the chain. How? by adjusting the joint angles  CCD Method

Cyclic-Coordinate Descent (CCD) Method (NOT in textbook) Wang and Chen. “A Combined Optimization Method for Solving the Inverse Kinematics Problem of Mechanical Manipulators.” IEEE Transactions on Robotics and Automation. Vol. 7, No. 4, August 1991, pp. 489-499. Welman, Chris. Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation. Masters Thesis,Simon Fraser University, 1993.

Cyclic-Coordinate Descent (CCD) Method Minimizing the system error by adjusting each joint angle one at a time. Starts at the last link in the chain and works backwards, adjusting each joint along the way.

Cyclic-Coordinate Descent (CCD) Method Create vector RE R: root of current link E: effector position Create Vector RD D: desired endpoint Angle a, so that RE becomes RD? PS : Common in games  player needs to face the opponent

Cyclic-Coordinate Descent (CCD) Method Direction to rotate about R?

Now move one link up the chain and repeat the process, continuing up the chain until the base joint is reached…

Cyclic-Coordinate Descent (CCD) Method This process is repeated until either the end effector is close enough to the desired position or the loop has repeated a set number of times. This break count is needed to allow for positions that are not reachable.

} while (quit_condition) do { Move one link up the chain; } while (quit_condition) // QUIT IF I AM CLOSE ENOUGH OR BEEN RUNNING LONG ENOUGH quit_condition = (tries++ < MAX_IK_TRIES && VectorSquaredDistance(&curEnd, &desiredEnd) > IK_POS_THRESH); #define MAX_IK_TRIES 100 // TIMES THROUGH THE CCD LOOP #define IK_POS_THRESH 1.0f // THRESHOLD FOR SUCCESS

Improving CCD (1) RESTRICTIONS ON DEGREES OF FREEDOM In many character hierarchies you may want to impose limits on the degrees of freedom (DOF) of an individual joint. This would keep an individual joint from rotating into a position that is physically impossible for a character to achieve. In some other IK methods, this can be a bit complicated. However, in the CCD method, such restrictions are easy!

Improving CCD (1) RESTRICTIONS ON DEGREES OF FREEDOM Each joint is a single analytical geometry problem  any limits on individual joints are simply figured into the problem. Updating the joint rotation: If (joint is outside the limits) then joint is clamped to those limit angles. The rest of the joints are then used to satisfy the problem during later steps.

Improving CCD (2) DAMPING The CCD method will rotate an individual joint to any angle needed to satisfy the problem at any step. Since the routine starts from the last joint and works in, the method tends to favor later joints. This bias may not always look natural.

Improving CCD (2) DAMPING Further, since each joint can swing wildly at each step, kinks are sometimes present in the resulting chain. By limiting the amount a single joint angle can change at each step, both of these effects can be controlled somewhat. Let’s see the effect both DOF restrictions and damping

Inverse Kinematics (IK) Analytical Solutions Iterative Methods (optimization-based methods) Incremental Constructions (matrix inversion techniques)

IK Incremental Constructions Configurations too complex for analytical solution ? Motion can be incrementally constructed At each time step, compute best way to change each joint angle to match the desired endpoint This computation forms the matrix of partial derivatives (Jacobian)

IK Incremental Constructions

IK -> Incremental Constructions w2 d2 End Effector q2 w2 x d2 - Compute instantaneous effect of each joint - Linear approximation to curvilinear motion - Find linear combination to take end effector towards goal position

IK -> Incremental Constructions

IK -> Incremental Constructions Solution only valid for an instantaneous step Angular affect is really curved, not straight line Once a step is taken, need to recompute solution

IK Incremental Constructions : Mathematics Unknowns End effector position and orientation Joint angles

IK Incremental Constructions : Mathematics V  vector of linear and rotational velocities and represents the desired change in the end effector Desired change  difference between current position/orientation to that specified by the goal configuration Unknowns (joint angle velocities)

IK Incremental Constructions : Mathematics

Using the Jacobian

IK Incremental Constructions : Example

IK Incremental Constructions : Example

Conflict Between Multiple Goals base

Conflict Between Goals base

Conflict Between Goals base

Conflict Between Goals base

Conflict Between Goals base

Handling Multiple Goals Weighted sum of each goal potential function Jacobian-based method Same formulation No weighting

Summary