CS 99k: Digital Actors URL: http://robotics.stanford.edu/~latombe/cs99k/2000 Instructor: Jean-Claude Latombe Computer Science Department Stanford University Computer Animated Characters A Bug’s Life (Pixar/Disney) Tomb Raider 3 (Eidos Interactive) Toy Story (Pixar/Disney) The Legend of Zelda (Nintendo) Antz (Dreamworks) 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 Grab Return Release 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) Virtual Clothes (MIRALAB / Univ. of Geneva) Autonomy vs. Interactivity Completely Autonomous Urban / Factory Simulation Historical Narratives Virtual Tour Guides Digital Actors Autonomy User-controlled Video Game Adversaries Semi-Autonomous Characters Key-frame Animation Systems Web Avatars Off-line Real-time Interactivity Playing Chess 1994 ENDGAME (Stanford) 1997 Geri’s Game (Pixar) 1999 Interactive Chess (Stanford) Animation Variables q0 q1 q2 qn Q(t) q4 q3 q0 (t ) Q (t ) qn (t ) t 0, T Parts DOF L 19 68 H 51 118 Motion Generation Techniques Scripting Kahn ‘79, Ridsdale ‘87, Haumann & Parent ‘88, Wilhelms ‘90, Strassmann ‘91, Bates, et al. ‘92, Perlin & Goldberg ‘96 OZ project (CMU) Artificial Fish (U. Toronto) Reactive Behaviors Brooks ‘85, Reynolds ‘87, Tu & Terzopoulos ‘94, Reich, et al. ‘94, Blumberg & Galyean ‘95 Bates, et. Al. Marilyn (EPFL/Miralab) Tu / Terzopoulos Synthetic Characters (MIT) Kinematic Warping Bruderlin & Calvert ‘89, Witkin & Popovich ‘95, Unuma, et al. ‘95, Gliecher ‘98 Thalmann, et. Al. Blumberg, 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 HFAP (Microsoft) Jack (U Penn) Spacetime Constraints Isaacs & Cohen ‘87, Witkin & Kass ‘88, Rose, et al. ‘96, Gleicher ‘98, Popovic & Witkin ‘99 Badler, et. Al. Cohen, et. Al. Human Dynamics (GaTech) ENDGAME (Stanford) Motion Planning Lengyel, et at. ‘90, Ching & Badler ‘92, Koga, et al. ‘94, Bandi & Thalmann ‘97, Hsu & Cohen ‘98 Hodgkins, et. Al. Koga, et. Al. 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 Techniques Guest speaker: Chris Bregler Class 5: Motion Planning Guest Speaker: Oussama Khatib Course Outline (cont’d) Class 6: Animation of Soft Tissues Guest speakers: Joel Brown and Stephen Sorkin Class 7: Digital Actors with Sensing and Memory Guest speaker: Josh Tenenbaum Class 8: High-Level Behaviors and Man-Machine Interaction What is a Motion? What is a Motion ? 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 q n q=(q1,…,qn) q1 q2 q3 Rigid Object Example workspace robot reference direction q y reference point x 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) Articulated Object Example q = (q1,q2,…,q10) q2 q1 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 C = S1 x S1 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 matrix r11 r12 r13 r21 r22 r23 r31 r32 r33 with: – 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) Parameterization of SO(3) Euler angles: (f,q,y) z z z z y 1 -> 2 -> 3 -> 4 f y q y y x x x x Unit quaternion: (cos q/2, n1 sin q/2, n2 sin q/2, n3 sin q/2) y Metric in Configuration Space A metric or distance function d in C is a map d: (q1,q2) d(q1,q2) > 0 such 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 A where ||a - b|| denotes the distance between points a and b 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’|} 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 Notion of a Path q0 q2 qn t(t) q4 q1 q3 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 Homotopic Path Two paths with the same endpoints are homotopic if one can be continuously deformed into the other R x S1 example: q t1 t2 t3 q’ Paths t1 and t2 are homotopic Paths t1 and t3 are not homotopic Infinity 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 homotopic Example: R2 or R3 Otherwise C is multiply-connected Examples: S1 and SO(3) are multiply connected In S1, infinity of homotopic classes In 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 Disc Robot in 2-D Workspace Rigid Robot Translating in 2-D CB = B A = {b - a | a in A, b in B} Linear-Time Computation of C-Obstacle in 2-D Rigid Robot Translating and Rotating in 2-D C-Obstacle for Articulated Robot 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 Classes of Homotopic Free Paths