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

Similar documents
Articulated Characters

Kinematics and Orientations

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

Computer Animation. Rick Parent

SM2231 :: 3D Animation I :: Basic. Rigging

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

BONE CONTROLLER ASSET VERSION 0.1 REV 1

Maya Lesson 8 Notes - Animated Adjustable Desk Lamp

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

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

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

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

CS 231. Inverse Kinematics Intro to Motion Capture. 3D characters. Representation. 1) Skeleton Origin (root) Joint centers/ bones lengths

Kinematics: Intro. Kinematics is study of motion

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

IntroductionToRobotics-Lecture02

TIEA311 Tietokonegrafiikan perusteet kevät 2018

Animator Friendly Rigging Part 3b

CS 231. Inverse Kinematics Intro to Motion Capture

Lecture 3: Linear Classification

Control of industrial robots. Kinematic redundancy

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps

Triangulation: A new algorithm for Inverse Kinematics

Lecture 18 Kinematic Chains

Lecture VI: Constraints and Controllers. Parts Based on Erin Catto s Box2D Tutorial

CS 775: Advanced Computer Graphics. Lecture 3 : Kinematics

#$ % $ $& "$%% " $ '$ " '

2D/3D Geometric Transformations and Scene Graphs

Kinematics. Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position.

Research Subject. Dynamics Computation and Behavior Capture of Human Figures (Nakamura Group)

Use of multilayer perceptrons as Inverse Kinematics solvers

Lecture «Robot Dynamics»: Kinematic Control

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

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

Optimization of a two-link Robotic Manipulator

animation projects in digital art animation 2009 fabio pellacini 1

Last Time? Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

The University of Missouri - Columbia Electrical & Computer Engineering Department EE4330 Robotic Control and Intelligence

Last Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

Announcements: Quiz. Animation, Motion Capture, & Inverse Kinematics. Last Time? Today: How do we Animate? Keyframing. Procedural Animation

Advanced Graphics and Animation

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

Lecture VI: Constraints and Controllers

Animation, Motion Capture, & Inverse Kinematics. Announcements: Quiz

Motion Capture & Simulation

CNM 190 Advanced Digital Animation Lec 10 : Inverse Kinematics & Automating Animation

Data-driven Approaches to Simulation (Motion Capture)

Kinematics of the Stewart Platform (Reality Check 1: page 67)

Keyframing an IK Skeleton Maya 2012

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

Planar Robot Kinematics

Jacobian: Velocities and Static Forces 1/4

Last Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

A 12-DOF Analytic Inverse Kinematics Solver for Human Motion Control

Animation Lecture 10 Slide Fall 2003

Jacobian: Velocities and Static Forces 1/4

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

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

Creating joints for the NovodeX MAX exporter

Self Assembly of Modular Manipulators with Active and Passive Modules

Grade 6 Math Circles November 6 & Relations, Functions, and Morphisms

Math 5320, 3/28/18 Worksheet 26: Ruler and compass constructions. 1. Use your ruler and compass to construct a line perpendicular to the line below:

Synthesis by Example. Connecting Motion Planning and Example based Movement. Michael Gleicher

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

Animation by Adaptation Tutorial 1: Animation Basics

Section 05: Solutions

Game Programming. Bing-Yu Chen National Taiwan University

Creating animation rigs that solve problems, are fun to use, and don t cause nervous breakdowns.

Inverse Kinematics Programming Assignment

Presets are the heart of Genoma. They can be added to so you can build up a library of reusable rig parts or even complete rigs to suit your

Chapter 3 : Computer Animation

Rigging / Skinning. based on Taku Komura, Jehee Lee and Charles B.Own's slides

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

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

Inverse Kinematics II and Motion Capture

Character Animation 1

Solving IK problems for open chains using optimization methods

10/25/2018. Robotics and automation. Dr. Ibrahim Al-Naimi. Chapter two. Introduction To Robot Manipulators

we now have a good understanding of 3d representations, rigid body transforms, camera projections, and the fixed function steps in graphics

Robotics kinematics and Dynamics

Lesson 1: Introduction to Pro/MECHANICA Motion

(Refer Slide Time 3:31)

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Motion for Computer Animation. Michael Gleicher Department of Computer Sciences University of Wisconsin, Madison

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

Chapter 5.2 Character Animation

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

Inverse Kinematics Software Design and Trajectory Control Programming of SCARA Manipulator robot

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

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

Retargetting Motion to New Characters. Retargetting Motion to New Characters. Page 1. Motion Retargetting. Motion Retargetting

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

Shade tutorial: Shoes for Poser.

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

Over-determinate Kinematic Analysis

COMP 175 COMPUTER GRAPHICS. Lecture 10: Animation. COMP 175: Computer Graphics March 12, Erik Anderson 08 Animation

What's the Slope of a Line?

Polar Coordinates. 2, π and ( )

Transcription:

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

Direct and inverse kinematics in animation Fast numerical methods for inverse kinematics by Bill Baxter My Adventures with Inverse Kinematics by Chris Hecker

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

Fast numerical methods for inverse kinematics by Bill Baxter

My Adventure with Inverse Kinematics Chris Hecker definition six, inc. checker@d6.com

What is this lecture about? the path I took while solving a problem with inverse kinematics how I use math to model and [sometimes] solve problems decisions I made, both good and bad learn from my successes and failures work in progress!

What isn t this lecture about? not an IK tutorial or introduction not going to give you the One True Way to do IK has nothing to do with graphics not about my rock climbing game

Takeaway You will get insight into how IK on a whole human body is different from IK on a single arm. You will see how IK is a building block, but not a complete solution to character animation.

Prerequisites must be very comfortable with math doesn t mean you know tons of math does mean you follow quickly and aren t afraid of it probably best if you ve implemented a simple IK system foot placement, arm grabbing door, etc.

Talk Structure (linear with occasional branches)... attempted solution problem statement and discussion related theory attempted solution problem statement and discussion related theory...

Problem: How to move a guy with the mouse? move like a [rock climbing] human interactive direct body/limb control did not want to use physics

Theory: How to move a guy with the mouse? inverse kinematics vs. forward kinematics FK: p=f(q) IK: q = f -1 (p) p = (x, y) q = (θ 1, θ 2 ) p θ 2 g p is Euclidean, angles q is configuration space θ 1

Theory: How to move a guy with the mouse? (cont.) degrees of freedom (DOF) n incredibly important concept ways in which system can change n configuration space find DOF of system to understand it control & constrain DOF to control it examples n physical system, polynomial, etc. fundamental task of IK is to control degrees of freedom to attain goal p θ 1 p = (x, y) q = (θ 1, θ 2 ) θ 2

Solution: How to move a guy with the mouse? analytical IK invert p = f(q) to get q from p relatively easy for the 2D arm inverse trig, some vector algebra gets complicated as n increases

Problem: Analytical IK can t handle human. human has lots of DOF even 2D arm with shoulder has more DOF than needed to reach goal θ 3 θ 2 p g solving p = f(q) requires certain characteristics θ 1 p = (x, y) q = (θ 1, θ 2, θ 3 )

Theory: Analytical IK can t handle human. p = f(q) is a set of nonlinear equations generally no closed forms must iterate numerically θ 3 p must be square, n DOF = n goal over-, under-constrained system redundant manipulator ex. human reaching for point and/or orientation vast literature on solving f(q) = p θ 1 θ 2 p = (x, y) q = (θ 1, θ 2, θ 3 )

Solution: Analytical IK can t handle human. use Cyclic Coordinate Descent (CCD) to solve arms iterative, recursive position-space algorithm fast, easy, robust start from last position n not path independent, but faster I draw every outside iteration n looks like animation, but it s not θ 3 θ 1 θ 2 p = (x, y) q = (θ 1, θ 2, θ 3 ) p g

Problem: CCD only handles serial chains. multiple goals are necessary for human stack up vectors in p=f(q) coupled at branches g 2 θ 5 p 2 θ 3 θ 4 θ 2 θ 1 p 1 g 1 p = (x 1, y 1, x 2, y 2 ) q = (θ 1, θ 2, θ 3, θ 4, θ 5 )

Theory: CCD only handles serial chains. coupling between goals either solvable alone, neither solvable together how to distribute desired-angle error? g 2 θ 5 p 2 θ 4 θ 3 θ 1 θ 2 p = (x 1, y 1, x 2, y 2 ) q = (θ 1, θ 2, θ 3, θ 4, θ 5 ) p 1 g 1

Solution: CCD only handles serial chains. simply average desired angles at branch parents to attain multiple goals and distribute error θ 5 p 2 θ 4 θ 3 θ 2 p 1 θ 1 in example, imagine p 1, p 2 pulled in opposite directions θ 1 p = (x 1, y 1, x 2, y 2 ) q = (θ 1, θ 2, θ 3, θ 4, θ 5 )

Problem: Drift on multiple goals. average can t satisfy all goals or even prioritize them I specifically want to drag climber hand with mouse and have other end effectors stay on holds θ

Theory: Drift on multiple goals. want a rigid constraint at end effectors closed loops are hard, CCD doesn t handle them, nor do common IK algorithms must solve simultaneously not hierarchical anymore closed loops don t have local behavior θ

Solution: Drift on multiple goals. attempt to Gram-Schmidt off any movement that would result in error b c a

Problem: Gram-Schmidt removes the wrong direction sometimes. could have tried real Jacobian force mapping Gram-Schmidt

Problem: Human is not rooted tree. Which end effector (hand, foot) is the root? There is no persistent fixed root in a rock climber or walking person CCD must start at a fixed root

Theory: Human is not rooted tree. switching root is basically a datastructure problem relative angles must change joint limits (see below) behavior will change slightly as well, since CCD isn t symmetric with respect to the root

Solution: Human is not rooted tree. just type it in invert tree to new root Caml is pretty good at this sort of thing see last year s GDC talk dragging torso is done by inverting to a torso node, then changing the root position the hands and feet are all end-effectors hack!

Problem: Joint limits elbow can t bend backwards should lend believability and intuition

Theory: Joint limits inequality constraints: θ θ min abandon all (most) hope of analytical solution these inequalities are axis aligned planes in configuration space θ max θ θ min

Solution: Joint limits CCD makes parent-child limits easy do min/max clamp in CCD inner iteration easy, and rest of system compensates issue: CCD doesn t know about the joint limits often compensates, but doesn t know to avoid them

Problem: Child-child limits parent-child not enough with moving root pelvis example: left foot root right foot root chest root

Problem: Child-child limits parent-child not enough with moving root pelvis example: left foot root right foot root chest root

Problem: Child-child limits parent-child not enough with moving root pelvis example: left foot root right foot root chest root?

Theory: Child-child limits both angles are dependent on each other, coupled parent is fixed in CCD constraints are now non-axis aligned planes in C-space simultaneous solution necessary at branches with child-child limits

Solution: Child-child limits Good solution should: satisfy constraints always have zero error in goals if possible have least squares error if not possible Nonlinear Least Squares with Linear Inequalities: minimize (θ 1 - d 1 ) 2 + (θ 2 - d 2 ) 2 w.r.t. θ min12 θ 1 - θ 2 θ max12 lots of literature on NLSLI I convert to LCP and use Lemke s algorithm works great!

Accomplishments We extended CCD to handle: multiple end effector goals dynamically changing root node arbitrary joint limits

Problems drift on multi-goals is still a problem CCD doesn t know about joint limits sometimes non-physical movement CCD isn t doing physics, not conserving energy, or anything else for that matter rooted hierarchies are inconvenient how to control redundant DOF?

Body Knowledge System system to manage movement and keep it natural situation & reaction ex. joint limits handled in body knowledge huge rules system allocates redundant DOF this is the key to natural movement!

Body Knowledge System (cont.) IK just a rough initial guess for body knowledge system; should be: physically plausible n no added energy, etc. easy to layer conflicting goals able to cope with over-constrained goals don t know enough about this yet, but I think it will be more important than IK for good dynamic animation

What I Didn t Talk About development process stuff developing on lower dimensional subproblems using visualizations to help debug math Mathematica and Matlab for development and debugging running multiple techniques on top of each other physics-based techniques I tried

What I Didn t Try I should have done a weighted average based on error for multi-goals, duh. even weighted average wouldn t be rigid n although could make weight very big... n similar to a stiff system Wrong: CCD must have fixed root now that I understand better, this isn t actualy true n the root s position is just more DOF n CCD probably wouldn t deal with this very well?

What I Didn t Try (cont.) pseudo-inverse methods n give explicit control over redundant DOF data-based methods (model-based) n functions as lookup tables totally ad-hoc methods