Prof. James O’BrienInverse KinematicsComputer Graphics/AnimationSimple System: A Two Segment ArmWarning: Z−up Coordinate SystemDirect IK: Solve for and Why is this a hard problem?Multiple solutions separated in configuration spaceWhy is this a hard problem?Multiple solutions connected in configuration spaceWhy is this a hard problem?Solution may not existFrom Parent, page 185Numerical SolutionStart in some initial configurationCompute Jacobian of error w.r.t inputsDefine an error (e.g. goal pos − current pos)Use some numerical method to eliminate error as if Jacobian were constantIterate...Simple System: A Two Segment ArmWarning: Z−up Coordinate SystemSimple System: A Two Segment ArmSimple System: A Two Segment ArmDirection in Config. SpaceThe Jacobian (of p w.r.t. θ)Example for two segment armThe Jacobian (of p w.r.t. θ)Solving for andSolving for and Is the Jacobian invertible?Problems...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)More Complex SystemsMore complex joints (prism and ball)More linksOther criteria (COM over sup. poly.)Hard constraints (joint limits)Multiple chainsPrism Joints}}Ball JointsBall Joints (moving axis)That is the Jacobian for this joint{Ball Joints (fixed axis)That is the Jacobian for this joint{Many Links/JointsWe need a generic method of building Jacobian12a32bMany Links/Joints12a32bMany Links/JointsTransformation from body to parentTranslation PortionRotation Portion(May include scale as well)Many Links/JointsTransformation from body to worldRotation from body to worldMany Links/JointsJacobian is function of theta and error12a32bMany Links/JointsJacobian is function of theta and error12a2b33Many Links/JointsNeed to transform Jacobians to commoncoordinate system (WORLD)2b312a2b3Many Links/JointsNote: Each row in the aboveshould be transposed....Other criteria (COM over sup. poly.)Hard constraints (joint limits)Multiple
View Full Document