Class-notes - Stanford AI Lab

advertisement
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
Download