Computer Animation. Rick Parent

Similar documents
4 Kinematic Linkages. Chapter 4. Kinematic Linkages. Department of Computer Science and Engineering 4-1

Jacobian: Velocities and Static Forces 1/4

autorob.github.io Inverse Kinematics UM EECS 398/598 - autorob.github.io

KINEMATICS FOR ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

This week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object.

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Jacobian: Velocities and Static Forces 1/4

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

CS 775: Advanced Computer Graphics. Lecture 3 : Kinematics

Articulated Characters

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

02/22/02. Assignment 1 on the web page: Announcements. Test login procedure NOW!

Kinematics. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

CS-184: Computer Graphics. Today. Forward kinematics Inverse kinematics. Wednesday, November 12, Pin joints Ball joints Prismatic joints

CS545 Contents IX. Inverse Kinematics. Reading Assignment for Next Class. Analytical Methods Iterative (Differential) Methods

Triangulation: A new algorithm for Inverse Kinematics

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps

Robotics kinematics and Dynamics

Applications. Human and animal motion Robotics control Hair Plants Molecular motion

Maths in Motion. Danny Chapman Cumberland Lodge - February Version for distribution. Procedural animation in video games

Kinematic Model of Robot Manipulators

Kinematics: Intro. Kinematics is study of motion

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions.

Lecture 18 Kinematic Chains

MTRX4700 Experimental Robotics

Inverse Kinematics. Given a desired position (p) & orientation (R) of the end-effector

A Detailed Look into Forward and Inverse Kinematics

A simple example. Assume we want to find the change in the rotation angles to get the end effector to G. Effect of changing s

Kinematics, Kinematics Chains CS 685

Lecture «Robot Dynamics»: Kinematic Control

Cecilia Laschi The BioRobotics Institute Scuola Superiore Sant Anna, Pisa

A New Algorithm for Measuring and Optimizing the Manipulability Index

Introduction to Robotics

Robotics I. March 27, 2018

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

Reading. Topics in Articulated Animation. Character Representation. Animation. q i. t 1 t 2. Articulated models: Character Models are rich, complex

Intermediate Desired Value Approach for Continuous Transition among Multiple Tasks of Robots

Kinematical Animation.

Motion Capture. Motion Capture in Movies. Motion Capture in Games

A New Algorithm for Measuring and Optimizing the Manipulability Index

Manipulator trajectory planning

COMP30019 Graphics and Interaction Kinematics

Applying Neural Network Architecture for Inverse Kinematics Problem in Robotics

Control of industrial robots. Kinematic redundancy

Trajectory Optimization

Maya Lesson 8 Notes - Animated Adjustable Desk Lamp

Singularity Management Of 2DOF Planar Manipulator Using Coupled Kinematics

EEE 187: Robotics Summary 2

Singularity Handling on Puma in Operational Space Formulation

Finding Reachable Workspace of a Robotic Manipulator by Edge Detection Algorithm

Lecture 2: Kinematics of medical robotics

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

NATIONAL UNIVERSITY OF SINGAPORE. (Semester I: 1999/2000) EE4304/ME ROBOTICS. October/November Time Allowed: 2 Hours

Chapter 4 Dynamics. Part Constrained Kinematics and Dynamics. Mobile Robotics - Prof Alonzo Kelly, CMU RI

3. Manipulator Kinematics. Division of Electronic Engineering Prof. Jaebyung Park

Robotics (Kinematics) Winter 1393 Bonab University

Chapter 3 : Computer Animation

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Industrial Robots : Manipulators, Kinematics, Dynamics

Serial Manipulator Statics. Robotics. Serial Manipulator Statics. Vladimír Smutný

Use of multilayer perceptrons as Inverse Kinematics solvers

Motion Control Methods for Skeleton Daniel Thalmann

Inverse Kinematics Programming Assignment

Overview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc.

MEM380 Applied Autonomous Robots Winter Robot Kinematics

Inverse Kinematics II and Motion Capture

METR 4202: Advanced Control & Robotics

3D Kinematics. Consists of two parts

Jacobians. 6.1 Linearized Kinematics. Y: = k2( e6)

Advanced Graphics and Animation

Table of Contents. Chapter 1. Modeling and Identification of Serial Robots... 1 Wisama KHALIL and Etienne DOMBRE

Lecture VI: Constraints and Controllers

Planar Robot Kinematics

1. Introduction 1 2. Mathematical Representation of Robots

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Kinematics of Closed Chains

Session #5 2D Mechanisms: Mobility, Kinematic Analysis & Synthesis

Resolution of spherical parallel Manipulator (SPM) forward kinematic model (FKM) near the singularities

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011

θ x Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position & Orientation & State 2 30-Jul

1724. Mobile manipulators collision-free trajectory planning with regard to end-effector vibrations elimination

TIEA311 Tietokonegrafiikan perusteet kevät 2018

KINEMATIC ANALYSIS OF 3 D.O.F OF SERIAL ROBOT FOR INDUSTRIAL APPLICATIONS

6.837 Computer Graphics Hierarchical Modeling Wojciech Matusik, MIT EECS Some slides from BarbCutler & Jaakko Lehtinen

Comparing FABRIK and neural networks to traditional methods in solving Inverse Kinematics

Solving IK problems for open chains using optimization methods

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

A Comparative Study of Prediction of Inverse Kinematics Solution of 2-DOF, 3-DOF and 5-DOF Redundant Manipulators by ANFIS

Manipulation: Mechanisms, Grasping and Inverse Kinematics

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1

Optimization of a two-link Robotic Manipulator

Kinematics. Why inverse? The study of motion without regard to the forces that cause it. Forward kinematics. Inverse kinematics

Planning, Execution and Learning Application: Examples of Planning for Mobile Manipulation and Articulated Robots

Lecture «Robot Dynamics»: Multi-body Kinematics

Lecture «Robot Dynamics»: Kinematics 3

Inverse KKT Motion Optimization: A Newton Method to Efficiently Extract Task Spaces and Cost Parameters from Demonstrations

Robot. A thesis presented to. the faculty of. In partial fulfillment. of the requirements for the degree. Master of Science. Zachary J.

Motion Capture & Simulation

Inverse Kinematics (IK)

Transcription:

Algorithms and Techniques Kinematic Linkages

Hierarchical Modeling Relative motion Parent-child relationship Simplifies motion specification Constrains motion Reduces dimensionality

Modeling & animating hierarchies 3 aspects 1. Linkages & Joints the relationships 2. Data structure how to represent such a hierarchy 3. Converting local coordinate frames into global space

Some terms Joint allowed relative motion & parameters Joint Limits limit on valid joint angle values Link object involved in relative motion Linkage entire joint-link hierarchy Armature same as linkage End effector most distant t link kin linkage Articulation variable parameter of motion associated with joint Pose configuration of linkage using given set of joint angles Pose vector complete set of joint angles for linkage Arc of a tree data structure corresponds to a joint Node of a tree data structure corresponds to a link

Use of hierarchies in animation Forward Kinematics (FK) animator specifies values of articulation variables global transform for each linkage is computed Inverse Kinematics (IK) animator specifies final desired global transform for end effector (and possibly other linkages) Values of articulation variables are computed

Forward & Inverse Kinematics

Joints relative movement

Comple Joints

Hierarchical structure

Tree structure

Tree structure

Tree structure

Relative movement

Relative movement

Tree structure

Tree structure

Implementation note Nodes & arcs NODE Pointer to data Data transformation Pointer to arcs ARC Transform of one net node relative to parent node Articulation transform Pointer to node

Implementation note Representing arbitrary number of children with fied-length data structure Use array of pointers to children In node arcptr[] Node points to first child Each child points to sibling Last sibling points to NULL In node: arcptr for 1 st child In arc: arcptr for sibling

Tree traversal L A dm traverse (arcptrmatri) { // concatenate arc matrices matri = matri*arcptr->lmatri matri = matri*arcptr->amatri; // get node and transform data nodeptr=acrptr->nodeptr push (matri) matri = matri * nodeptr->matri adata = transformdata(matridataptr) draw(adata) matri = pop(); } // process children If (nodeptr->arcptr!= NULL) { netarcptr = nodeptr-> arcptr while (netarcptr!= NULL) { push(matri) traverse(netarcptrmatri) matri = pop() netarcptr = netarcptr->arcptr } }

OpenGL Single linkage glpushmatri(); For (i=0; i<numdofs; i++) { } glpopmatri(); glrotatef(a[i]ais[i][0] ais[i][1] ais[i][2]); if (linklen[i]!= 0.0) { draw_linkage(linklen[i]); gltranslatef(0.0linklen[i]0.0); } OpenGL concatenates matrices A[i] joint angle Ais[i] joint ais linklen[i] length of link

Inverse kinematics Given goal position (and orientation) for end effector Compute internal joint angles If simple enough => analytic solution Else => numeric iterative solution

Inverse kinematics - spaces Configuration i space Reachable workspace Detrous workspace

Analytic inverse kinematics 2 2 L1 + L2 ( X + Y θ2 = a cos( 2L L 2 1 2 2 ) )

IK - numeric If linkage is too comple to solve analytically E.g. human arm is typically modeled as 3-1-3 or 3-2-2 linkage Solve iteratively numerically solve for step toward goal Desired change from this specific pose Compute set of changes to the pose to effect that change

IK math notation IK math notation ) ( 6 5 4 3 2 1 1 1 f y = ) ( ) ( ) ( 6 5 4 3 2 1 2 2 6 5 4 3 2 1 1 1 f y f y f y = = ) ( ) ( 6 5 4 3 2 1 4 4 6 5 4 3 2 1 3 3 f y f y = = ) ( ) ( 6 5 4 3 2 1 6 6 6 5 4 3 2 1 5 5 f y f y = = ( 6) 5 4 3 2 1 y 6 f 6 ( ) X Y = F

IK chain rule dy fi d fi 2 fi 3 fi 4 fi 5 fi = + + + + + dt 1 dt 2 dt 3 dt 4 dt 5 dt 6 i 1 6 dt Y & F = X X&

Inverse Kinematics - Jacobian Y& = F X X& V = J ( θ )θ & Desired motion of end effector Unknown change in articulation variables The Jacobian is the matri relating the two: it s a function of current variable ibl values

Inverse Kinematics - Jacobian V = J ( θ )θ & V = [ v v v ω ω ω ] & θ = [& θ ] 1 & θ2 & θ3 & θ4 & θ5 & θ6 y z y z Change in position Change in orientation J = p p p K θ 1 θ2 θ6 p y K θ 1 K α z α z θ 1 θ 6 Change in articulation variables Jacobian

IK computing the Jacobian an (need to convert to global coordinates) Change in orientation Change in position Only valid instantaneously

IK - configuration

IK compute positional change vectors induced by changes in joint angles Instantaneous positional change vectors Desired change vector One approach to IK computes linear combination of change vectors that equal desired vector

IK compute position and ais of joints Set identity matri for (i=0; i<numdofs; i++) { record_transformed_joint(i) glrotate(angle[i]ais[i][0]ais[i][1]ais[i][2]); append_rotation(angle[i]ais[i][0]ais[i][1]ais[i][2]); if (linklen[i]!= 0) { draw_linkage(linklen[i]); gltranslatef(0.0linklen[i]0.0); append _ translation(0linklen[i]0); } } record_endeffector();

IK append rotation If joint ais is: one of major aes: 3 cases ofsimple rotation Arbitrary ais angle-ais ais to matri conversion IK append translation Form translation matri Matri Transformed coordinate system Position Transforms ais of rotation

IK record joint information Joint position last column of matri Joint coordinate system upper left 33 submatri Joint ais transform local joint ais vector by matri

IK - singularity Some singular configurations are not so easily recognizable Near singular configurations are also problematic why?

Inverse Kinematics - Numeric Given Current configuration Goal position/orientation Determine Goal vector Positions & local coordinate systems of interior joints (in global coordinates) Jacobian V = J ( θ )θ & Is in same form as more recognizable : A = b Solve & take small step or clamp acceleration or clamp velocity Repeat until: Within epsilon of goal Stuck in some configuration Taking too long

Solving If J square compute inverse J -1 If J not square usually under-constrained: more DoFs than constraints Requires use of pseudo-inverse of fjacobian V = J & θ J T V = J T J & θ ( T = J J ) 1 T J V ( T 1 T J J ) J J & θ J + V = θ &

Solving Avoid direct computation of inverse by substitution solving A=B form then substituting back V J V J T T = J & θ β = & θ T = JJ β β = & θ

IK Jacobian solution

IK Jacobian solution - problem When goal is out of reach Bizarre undulations can occur As armature tries to reach the unreachable Add a damping factor

IK Jacobian w/ damped least squares J T 1 θ & ( ) = J J T Undamped form: V Damped form with user parameter: θ & = J ( JJ T + λ 2 I ) T 1 V

IK Jacobian w/ control term Physical systems (i.e. robotics) and synthetic character simulation (e.g. human figure) have limits on joint values IK allows joint angle to have any value Difficult (computationally epensive) to incorporate hard constraints on joint values Take advantage of redundant manipulators - Allow user to set parameter that urges DOF to a certain value Does not enforce joint limit constraints but can be used to keep jit joint angles at mid-range values

IK Jacobian w/ control term IK Jacobian w/ control term 1 ) ( z I J J V J θ + = + + & 2 ) ( ) ( ci i i z z I J J V J θ θ α θ = + ) ( = = + z I J J J V J V θ & 0 ) ( ) ( = = + z V z J J JJ V 0 0 = = V z V Change to the pose parameter in the form of the Change to the pose parameter in the form of the control term adds nothing to the velocity

IK Jacobian w/ control term All bias to 0 Top gains = {0.1 0.5 0.1} Bottomgains={01 {0.1 0.1 01 0.5} 05} & θ = J z + V + ( J = α ( θ θ i ( i ci + ) J 2 I ) 1 z

IK alternate Jacobian Jacobian formulated ltdto pull llthe goal toward the end effector Use same method to form Jacobian but use goal coordinates instead of end-effector coordinates

IK Transpose of the Jacobian Compute how much the change vector contributes to the desired change vector: Project tjoint change vector onto desired dchange vector Dot product of joint change vector and desired change vector => >Transpose of fthe Jacobian

IK Transpose of the Jacobian p = θ & J T V v α z p p y z y v v V 1 1 1 θ θ θ z y T p p J K K = y V ω ω = 2 α θ z T p J K z ω 6 θ 6 θ z p

IK cyclic coordinate descent Heuristic solution Consider one joint at a time from outside in At each joint choose update that best gets end effector to goal position In 2D pretty simple ais i J i Goal EndEffector

IK cyclic coordinate descent In 3D a bit more computation is needed

IK 3D cyclic coordinate descent Goal ais i J i Projected goal EndEffector First goal has to be projected onto plane defined by ais (normal to plane) and EF Second determine angle at joint

IK cyclic coordinate descent 3D Other orderings of processing joints are possible Because of its procedural nature Lends itself to enforcing joint limits Easy to clamp angular velocity

Inverse kinematics - review Analytic method Forming the Jacobian Numeric solutions Pseudo-inverse of the Jacobian J + with damping J + with control term Alternative Jacobian Transpose of the Jacobian Cyclic Coordinate Descent (CCD)

Inverse kinematics - orientation Change in orientation at end-effector is same as change at joint ais i J i EF

Inverse kinematics - orientation How to represent orientation (at goal at end-effector)? How to compute difference between orientations? How to represent desired change in orientation in V vector? How to incorporate into IK solution? Matri representation: M g M ef Difference M d = M ef -1 M g Use scaled ais of rotation: θ(a a y a z ): Etract quaternion from M d Etract (scaled) ais from quaternion E.g. use Jacobian Transpose method: Use projection of scaled djoint ais onto etracted t ais