CNM 190 CNM 190 Advanced Digital Animation Advanced Digital Animation Lec 10 : Inverse Kinematics & Automating Lec 10 : Inverse Kinematics & Automating Animation Animation Dan Garcia Dan Garcia , EECS (co-instructor) , EECS (co-instructor) Greg Niemeyer, Art (co-instructor) Greg Niemeyer, Art (co-instructor) Jeremy Huddleston Jeremy Huddleston , EECS (TA) , EECS (TA) A ski-jumping Luxo, Jr. from A ski-jumping Luxo, Jr. from Spacetime Constraints, Spacetime Constraints, 1988 1988
CNM 190 Advanced Digital Animation Lec 10 : Inverse Kinematics & Automating Animation. A ski-jumping Luxo, Jr. from Spacetime Constraints, 1988. Dan Garcia , EECS (co-instructor) Greg Niemeyer, Art (co-instructor) Jeremy Huddleston , EECS (TA). Dan Forward vs Inverse Kinematics - PowerPoint PPT Presentation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CNM 190CNM 190Advanced Digital AnimationAdvanced Digital Animation
Let’s Look at a 2D Let’s Look at a 2D Example (1)Example (1)
Two-jointed, robot Two-jointed, robot arm with red targetarm with red target
We can measure how We can measure how close we are at any close we are at any point (from a,b->x,y)point (from a,b->x,y)
If we did this for all If we did this for all a,b angles, we’d get a,b angles, we’d get the graph to the rightthe graph to the right Brightness is distance Brightness is distance
to the red goalto the red goal We only know answer We only know answer
Let’s Look at a 2D Let’s Look at a 2D Example (2)Example (2)
Two-jointed robot arm with Two-jointed robot arm with red goal targetred goal target
Rotating joint A moves the Rotating joint A moves the tip in tip in aa direction direction This gets us closer to the This gets us closer to the
solution solution Rotating joint B moves the Rotating joint B moves the
tip in tip in bb direction direction Here, this is of no useHere, this is of no use
Most joints can rotate both Most joints can rotate both clockwise and counter-clockwise and counter-clockwiseclockwise After After aa rotates a bit, we rotates a bit, we
need to reverse-rotate need to reverse-rotate b b to to extendextend
We do this entire process We do this entire process incrementally, with small incrementally, with small aa, , bb
Let’s Look at a 2D Let’s Look at a 2D Example (4)Example (4)
Two ways to calculate Two ways to calculate gradient:gradient: By measurement (move, calc)By measurement (move, calc) By calculation (thanks, By calculation (thanks,
Newton)Newton)
freespace.virgin.net/hugo.elias/models/m_ik2.htm
QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.
for each joint if 3D: axis = axis of rotation for this joint if 2D: axis = (0, 0, 1)ToTip = tip - joint_centreToTarget = target - tipmovement_vector = crossproduct(ToTip, axis) gradient = dotproduct(movement_vector, ToTarget) end loop
Let’s Look at a 3D Let’s Look at a 3D ExampleExample
You don’t need to You don’t need to always specify a always specify a fixed point in space fixed point in space for your end joint.for your end joint.
Alternatively, you Alternatively, you could specify could specify another locus of another locus of points and move to points and move to the closest point on the closest point on the surfacethe surface
rotation of a single rotation of a single joint and lock joint and lock othersothers
No unexpected No unexpected elbow/knee flippingelbow/knee flipping
Natural “arcs” by Natural “arcs” by defaultdefault
Works with multi-Works with multi-joints as expectedjoints as expected
IKIK Only need to move Only need to move
a single object to a single object to posepose
Can lock down an Can lock down an end effector (like end effector (like wrist or ankle) while wrist or ankle) while rest of body movesrest of body moves