380 likes | 447 Views
CS 99k: Digital Actors. URL: http://robotics.stanford.edu/~latombe/cs99k/2000 Instructor: Jean-Claude Latombe Computer Science Department Stanford University. Computer Animated Characters. Toy Story (Pixar/Disney). Antz (Dreamworks). A Bug’s Life (Pixar/Disney).
E N D
CS 99k: Digital Actors URL: http://robotics.stanford.edu/~latombe/cs99k/2000 Instructor: Jean-Claude Latombe Computer Science Department Stanford University
Computer Animated Characters Toy Story (Pixar/Disney) Antz (Dreamworks) A Bug’s Life (Pixar/Disney) Tomb Raider 3 (Eidos Interactive) The Legend of Zelda (Nintendo) Final Fantasy VIII (SquareOne)
Autonomous Agents Definition: “An autonomous agent is a system situated within and a part of an environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future.” Franklin & Graesser, 1996 “Is it an Agent, or just a Program?” Proc. of 3rd Int. Workshop on Agent Theories
Animated Graphic Agent Basic definition: Animated character whose motion does not need to be explicitly defined by a user. Ultimate Goal: Fully-autonomous animated agents able to sense, act, and interact in changing virtual environments ? Other commonly-used terms: Digital Actor, Virtual Human
Goals vs. Motions Autonomous Goal Generation: Algorithm to decide what the character should do next (specifies high-level goal) Autonomous Motion Generation: Algorithm to generate underlying motion given a high-level goal
Example: Moving an Object Transfer Reach Return Grab Release
Virtual Clothes (MIRALAB / Univ. of Geneva) Two Classes of Motion • Primary (Active) Motion: gross body movements, facial animation • Secondary (Passive) Motion: clothes, skin, hair, env. effects Endgame (Stanford) Facial animation (Geri’s Game / Pixar)
Autonomy vs. Interactivity Completely Autonomous Urban / Factory Simulation Video Game Adversaries Historical Narratives Virtual Tour Guides Digital Actors Autonomy Semi-Autonomous Characters Key-frame Animation Systems Web Avatars User-controlled Off-line Real-time Interactivity
Playing Chess 1997 Geri’s Game (Pixar) 1994 ENDGAME (Stanford) 1999 Interactive Chess (Stanford)
q q q q q q 2 1 3 0 n 4 Animation Variables Q(t) Parts DOF L 19 68 H 51 118
OZ project (CMU) Marilyn (EPFL/Miralab) Synthetic Characters (MIT) Thalmann, et. Al. Bates, et. Al. Blumberg, et. Al. Artificial Fish (U. Toronto) Tu / Terzopoulos Motion Generation Techniques Scripting Kahn ‘79, Ridsdale ‘87, Haumann & Parent ‘88, Wilhelms ‘90, Strassmann ‘91, Bates, et al. ‘92, Perlin & Goldberg ‘96 Reactive Behaviors Brooks ‘85, Reynolds ‘87, Tu & Terzopoulos ‘94, Reich, et al. ‘94, Blumberg & Galyean ‘95 Kinematic Warping Bruderlin & Calvert ‘89, Witkin & Popovich ‘95, Unuma, et al. ‘95, Gliecher ‘98
Jack (U Penn) Human Dynamics (GaTech) ENDGAME (Stanford) HFAP (Microsoft) Koga, et. Al. Cohen, et. Al. Hodgkins, et. Al. Badler, et. Al. Motion Generation Techniques Physically-Based Simulation Armstrong & Green ‘85, Hahn ‘88, Baraff ‘89, McKenna & Zeltzer ‘90, Raibert & Hodgins ‘91, Mirtich ‘95, Ngo & Marks ‘93, Sims ‘94, Metaxas, et al. ‘97 Spacetime Constraints Isaacs & Cohen ‘87, Witkin & Kass ‘88, Rose, et al. ‘96, Gleicher ‘98, Popovic & Witkin ‘99 Motion Planning Lengyel, et at. ‘90, Ching & Badler ‘92, Koga, et al. ‘94, Bandi & Thalmann ‘97, Hsu & Cohen ‘98
Motion Planning for Digital Actors Manipulation Sensory-based locomotion
Applications • Videogames • Movies • Ergonomics • Training • Web page animation • Slide shows • E-commerce
Course Outline • Class 1: Introduction + Motion Representation • Class 2: Digital Actor Authoring and Runtime Software (Motivate)Guest speaker: Yotto Koga • Class 3: Geometric/Kinematic/Dynamic modeling of a Digital Actor • Class 4: Motion Generation TechniquesGuest speaker: Chris Bregler • Class 5: Motion PlanningGuest Speaker: Oussama Khatib
Course Outline (cont’d) • Class 6: Animation of Soft TissuesGuest speakers: Joel Brown and Stephen Sorkin • Class 7: Digital Actors with Sensing and MemoryGuest speaker: Josh Tenenbaum • Class 8: High-Level Behaviors and Man-Machine Interaction
qn q=(q1,…,qn) q3 q1 q2 Definition of an Object’s Configuration • The configuration of an object is a specification of the positions of all the points in this object relative to a fixed coordinate system • Usually it is expressed as a “vector” of position and orientation parameters
workspace robot reference direction q y reference point x Rigid Object Example Object’s configuration is: q = (x,y,q) In a 3-D workspace q would be of the form (x,y,z,a,b,g)
q2 q1 Articulated Object Example q = (q1,q2,…,q10)
C = S1 x S1 Configuration Space of a Moving Object • Space of all its possible configurations • The topology of this space is usually not that of a Cartesian space
Case of a Rigid Robot in 3-D Workspace • q = (x,y,z,a,b,g) • Other representation: q = (x,y,z,r11,r12,…,r33) where r11, r12, …, r33 are the nine components of a 3x3 rotation matrixr11 r12 r13 r21 r22 r23 r31 r32 r33with: • ri12+ri22+ri32 = 1 • ri1rj1 + ri2r2j + ri3rj3 = 0 • det = +1 the configuration space is a 6-D space (manifold) embedded in a 12-D Cartesian space. It is denoted by R3xSO(3)
z z z z 1 -> 2 -> 3 ->4 y f y q y y y x x x x Parameterization of SO(3) • Euler angles: (f,q,y) • Unit quaternion:(cos q/2, n1 sin q/2, n2 sin q/2, n3 sin q/2)
Metric in Configuration Space • A metric or distance function d in C is a map d: (q1,q2) d(q1,q2) > 0such that: • d(q1,q2) = 0 if and only if q1 = q2 • d(q1,q2) = d (q2,q1) • d(q1,q2) < d(q1,q3) + d(q3,q2) • Example: Given an object A and a point x of A, let x(q) be the point of the workspace occupied by x when the robot is at configuration q. A distance d is defined by:d(q,q’) = max ||x(q)-x(q’)|| over all points x of Awhere ||a - b|| denotes the distance between points a and b
q q’ A Specific Example: Metric in R2 x S1 • Let q = (x,y,q) and q’ = (x’,y’,q’) with q and q’ in [0,2p) • d(q,q’) = sqrt[(x-x’)2 + (y-y’)2 + a2]where a = min{|q-q’| , 2p-|q-q’|} • d(q,q’) = sqrt[(x-x’)2 + (y-y’)2 + (ra)2]where r is the maximal distance between the reference point and a robot point
q q q q q q 1 n 2 0 4 3 t(t) Notion of a Path • A path in C is a piece of continuous curve connecting two configurations q and q’:t : s in [0,1] t(s) in C • Other possible constraints: finite length, smoothness, … • A trajectory is a path parameterized by time
q t2 t1 t3 q’ Homotopic Path • Two paths with the same endpoints are homotopic if one can be continuously deformed into the other • R x S1 example:Paths t1 and t2 are homotopicPaths t1 and t3 are not homotopicInfinity of homotopic classes
Configuration Space Connectedness • C is connected, meaning that every two configurations can be connected by a path • C is simply-connected if any two paths connecting the same endpoints are homotopicExample: R2 or R3 • Otherwise C is multiply-connectedExamples: S1 and SO(3) are multiply connectedIn S1, infinity of homotopic classesIn SO(3), only two homotopic classes
Obstacles in Configuration Space • A configuration is collision-free, or free, if the robot placed at this configuration has no intersection with the obstacles in the workspace • The free space is the set of all free configurations • A C-obstacle is the set of all configurations where the robot collides with a given workspace obstacle • A configuration is semi-free if the robot at this configuration touches obstacles without overlap
Rigid Robot Translating in 2-D CB = B A = {b - a | a in A, b in B}
A Remark on the Topology of the Free Space • The robot and the obstacles in the workspace are modeled as closed subsets. This means that they contain their boundaries • One can show that the C-obstacles are closed subsets of the configuration space C • Consequently, the free space F is an open subset of C. Hence, each free configuration is the center of a ball of non-zero radius entirely contained in F • The semi-free space is a closed subset of C. Its boundary is a superset of the boundary of F
Free and Semi-Free Paths • A free path is one that lies entirely in the free space • A semi-free path is one that lies entirely in the semi-free space