CS-184: Computer GraphicsLecture #19: Forward and Inverse KinematicsProf. James O’BrienUniversity of California, BerkeleyV2011-F-19-1.02Today•Forward kinematics•Inverse kinematics•Pin joints•Ball joints•Prismatic joints3Forward Kinematics•Articulated skeleton•Topology (what’s connected to what)•Geometric relations from joints•Independent of display geometry•Tree structure•Loop joints break “tree-ness”4Forward Kinematics•Root body•Position set by “global” transformation•Root joint•Position•Rotation•Other bodies relative to root•Inboard toward the root•Outboard away from root5Forward Kinematics•A joint•Joint’s inboard body•Joint’s outboard body6Forward Kinematics•A body•Body’s inboard joint•Body’s outboard joint•May have several outboard joints7Forward Kinematics•A body•Body’s inboard joint•Body’s outboard joint•May have several outboard joints•Body’s parent•Body’s child•May have several children8Forward Kinematics•Interior joints•Typically not 6 DOF joints•Pin - rotate about one axis•Ball - arbitrary rotation•Prism - translation along one axis9Forward Kinematics•Pin Joints•Translate inboard joint to local origin•Apply rotation about axis•Translate origin to location of joint on outboard body10Forward Kinematics•Ball Joints •Translate inboard joint to local origin•Apply rotation about arbitrary axis•Translate origin to location of joint on outboard body11Forward Kinematics•Prismatic Joints •Translate inboard joint to local origin•Translate along axis•Translate origin to location of joint on outboard body12Forward Kinematics•Composite transformations up the hierarchy13Forward Kinematics•Composite transformations up the hierarchy14Forward Kinematics•Composite transformations up the hierarchy15Forward Kinematics•Composite transformations up the hierarchy16Forward Kinematics•Composite transformations up the hierarchy17Inverse Kinematics•Given•Root transformation•Initial configuration•Desired end point location•Find•Interior parameter settings18Inverse KinematicsEgon Pasztor19Inverse Kinematics•A simple two segment arm in 2DSimple System: A Two Segment ArmWarning: Z−up Coordinate System20Inverse Kinematics•Direct IK: solve for the parametersDirect IK: Solve for and21Inverse Kinematics•Why is the problem hard?•Multiple solutions separated in configuration spaceWhy is this a hard problem?Multiple solutions separated in configuration space22Inverse Kinematics•Why is the problem hard?•Multiple solutions connected in configuration spaceWhy is this a hard problem?Multiple solutions connected in configuration space23Inverse Kinematics•Why is the problem hard?•Solutions may not always exist24Inverse Kinematics•Numerical Solution•Start in some initial configuration•Define an error metric (e.g. goal pos - current pos)•Compute Jacobian of error w.r.t. inputs•Apply Newton’s method (or other procedure)•Iterate...25Inverse Kinematics•Recall simple two segment arm:Simple System: A Two Segment ArmWarning: Z−up Coordinate System26Inverse Kinematics•We can write of the derivativesSimple System: A Two Segment Arm27Inverse KinematicsSimple System: A Two Segment ArmDirection in Config. Space28Inverse KinematicsThe Jacobian (of p w.r.t. θ)Example for two segment arm29Inverse KinematicsThe Jacobian (of p w.r.t. θ) 30Inverse KinematicsSolving for and31Inverse KinematicsSolving for and Is the Jacobian invertible?32Inverse Kinematics•Problems•Jacobian may (will!) not always be invertible•Use pseudo inverse (SVD)•Robust iterative method•Jacobian is not constant•Nonlinear optimization, but problem is (mostly) well behavedProblems...Jacobian may (will) not be invertibleOption #1: Use pseudo inverse (SVD)Option #2: Use iterative methodJacobian is not constantNon−linear optimization... but problem is well behaved (mostly)33Inverse Kinematics•More complex systems•More complex joints (prism and ball)•More links•Other criteria (COM or height)•Hard constraints (joint limits)•Multiple criteria and multiple chains34Inverse Kinematics•Some issues•How to pick from multiple solutions?•Robustness when no solutions•Contradictory solutions•Smooth interpolation •Interpolation aware of constraints35Inverse KinematicsPrism Joints}}36Inverse KinematicsBall Joints37Inverse KinematicsBall Joints (moving axis)That is the Jacobian for this joint{38Inverse KinematicsBall Joints (fixed axis)That is the Jacobian for this joint{39Inverse Kinematics•Many links / joints•Need a generic method for building JacobianMany Links/JointsWe need a generic method of building Jacobian12a32b40Inverse Kinematics•Can’t just concatenate individual matricesMany Links/Joints12a32b41Inverse KinematicsMany Links/JointsTransformation from body to worldRotation from body to world42Inverse KinematicsMany Links/JointsNeed to transform Jacobians to commoncoordinate system (WORLD)2b312a2b343Inverse KinematicsMany Links/JointsNote: Each row in the aboveshould be transposed....44Suggested Reading•Advanced Animation and Rendering Techniques by Watt and Watt•Chapters 15 and
View Full Document