Title: CS 99k: Digital Actors
1CS 99k Digital Actors
- URL http//robotics.stanford.edu/latombe/cs99k/2
000 - Instructor Jean-Claude Latombe
- Computer Science Department
- Stanford University
2Computer Animated Characters
A Bugs Life (Pixar/Disney)
Toy Story (Pixar/Disney)
Antz (Dreamworks)
Tomb Raider 3 (Eidos Interactive)
Final Fantasy VIII (SquareOne)
The Legend of Zelda (Nintendo)
3Autonomous 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
4Animated 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
5Goals 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
6Example Moving an Object
Transfer
Reach
Return
Grab
Release
7 Two Classes of Motion
- Primary (Active) Motion gross body movements,
facial animation - Secondary (Passive) Motion clothes, skin, hair,
env. effects
Endgame (Stanford)
Facial animation (Geris Game / Pixar)
8Autonomy 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
9Playing Chess
1997 Geris Game (Pixar)
1994 ENDGAME (Stanford)
1999 Interactive Chess (Stanford)
10Animation Variables
Q(t)
Parts DOF L 19 68 H 51 118
11Motion 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
12Motion 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
13Motion Planning for Digital Actors
Manipulation
Sensory-based locomotion
14Applications
- Videogames
- Movies
- Ergonomics
- Training
- Web page animation
- Slide shows
- E-commerce
15Course 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
16Course Outline (contd)
- 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
17What is a Motion?
18What is a Motion ?
19Definition of an Objects 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
20Rigid Object Example
Objects configuration is q (x,y,q)
In a 3-D workspace q would be of the form
(x,y,z,a,b,g)
21Articulated Object Example
q (q1,q2,,q10)
22Configuration Space of a Moving Object
- Space of all its possible configurations
- The topology of this space is usually not that of
a Cartesian space
23Case 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
r33with - ri12ri22ri32 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)
24Parameterization 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)
25Metric 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)
- 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
26A 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
a2where a minq-q , 2p-q-q - d(q,q) sqrt(x-x)2 (y-y)2
(ra)2where r is the maximal distance between
the reference point and a robot point
27Notion 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
28Homotopic Path
- Two paths with the same endpoints are homotopic
if one can be continuously deformed into the
other - R x S1 examplePaths t1 and t2 are
homotopicPaths t1 and t3 are not
homotopicInfinity of homotopic classes
29Configuration 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
30Obstacles 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
31Disc Robot in 2-D Workspace
32Rigid Robot Translating in 2-D
CB B A b - a a in A, b in B
33Linear-Time Computation of C-Obstacle in 2-D
34Rigid Robot Translating and Rotating in 2-D
35C-Obstacle for Articulated Robot
36A 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
37Free 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
38Classes of Homotopic Free Paths