INTEGRATING SIMULATION AND ANIMATION APPROACHES FOR AUTONOMOUS ARTICULATED BODIES1 Paul A. Fishwick University of Florida Computer and Information Sciences Dept. Bldg. CSE, Room 301 Gainesville, FL 32611 email:
[email protected] .edu phone: (904) 392-1414 Hanns-Oskar A. Porr University of Pennsylvania Dept. of Computer and Information Sciences 200 S. 33 Street Philadelphia, PA 19104-6389 email:
[email protected] phone: (215) 898-1976
1
This is an expanded paper based on earlier work presented at the 1991 Winter Simulation Conference [23]
TR93-016 Computer and Information Sciences, University of Florida
2
ABSTRACT The simulation of autonomous agents requires eective use of both computer graphics and animation; however, there has not been sucient attention paid to the problem of seamlessly integrating traditional computer animation techniques with simulation model constructs. Such an integration is important since simulation output is becoming increasingly graphical. Our work demonstrates that discrete event methods within computer simulation play an important role in helping to organize animations. We discuss an animation of several articulated gures via the control aorded by discrete event modeling and simulation. We have found that multiple models consisting of discrete event and continuous components can provide an easier to understand description of a complex system. Also, the blending of animation keyframes and discrete events provided us with great expressibility in integrating animation and simulation approaches.
1 INTRODUCTION Computer simulation researchers view the world through collections of mathematical models. While model output can be graphical, this is often not seen as the primary goal. Instead, model validation against the real world phenomenon serves to pique the simulationist's interest. Conversely, computer graphics researchers working on animation clips are concerned with appealing graphical output, possibly at the expense of world validation. After all, for the average graphics researcher, the whole point of the modeling enterprise is to build animations that are visually appealing without regard to some a criterion of model delity against physical behavior. While these two worlds |computer simulation and animation| appear
TR93-016 Computer and Information Sciences, University of Florida
3
at odds, there is much to be gained from an integration. For the graphics researcher, simulation can oer a wide variety of modeling techniques. The evolution within graphics has been from keyframe models to physically based models; however, this can be seen more generally as a movement to the use of models as they are known within simulation | whether or not the models are composed of physics formulae. Therefore, with this broader view, automata models, stochastic models and network based models (Petri nets, Bond graphs, System Dynamics graphs) can be placed into the collection of possible model types used by computer animators. The focus on modeling is of key importance and not simply \models based on physics." For computer simulation, we will demonstrate that the use of the keyframe method can be directly incorporated into simulation models to represent higher levels of abstraction associated with physical movement. The integration of computer animation and simulation methodologies tells us that it is not necessary to always use either a high level (automata based) or low level (physically based) model structure. We can integrate a number of abstraction levels. This integration has two primary bene ts: 1) to better organize a system in terms of levels, and 2) to allow very fast execution of parts of the system through abstraction level traversal [19]. Badler et al. [3, 4] have produced a system that integrates AI, simulation and animation concepts. Tasks are speci ed in natural language [26, 17, 32] and are used to construct a model for simulation and animation. Our work on integrating animation with simulation most closely resembles Badler's approach since we are interested in a hierarchical methodology for computer animation | from natural language task description down to video frames. Our current concentration is focussed on the use of multiple mathematical models to drive the animation of complex systems. We have found that a exible and comprehensive multi-
TR93-016 Computer and Information Sciences, University of Florida
4
model [18, 24, 20] representation is necessary to control the animation of systems with
articulated objects in a detailed environment.
2 DISCRETE EVENT SIMULATION Table 1 displays a wide variety of simulation modeling types available for experimentation. [Table 1 about here.] As can be seen from table 1, discrete event models are dynamical models whose state variables take on a discrete number of values. While time is continuous in discrete event models, there are also a discrete number of time changes corresponding to the state changes. Discrete event modeling is useful for representing a system's dynamics at a fairly high abstraction level, and therefore complex systems can be eciently represented as a network or hierarchy of discrete event and continuous models [24, 20]. Key components of systems are well de ned in the systems literature [42] and include state, event and time. The state of the system represents the condition of the system objects
and varies over time. Events are speci c points in time where the state changes. Often, events have cognitive associations; that is, certain state/time pairs denote speci c actions that have natural language equivalents. For instance, the familiar barbershop model contains entities (people) that move through the system (shop) using two events: \arrival" and \departure." Figure 1 displays the process of modeling and simulating a barbershop. [Figure 1 about here.] In g. 1, The input to a simulation system such as SimPack [22] is the graph model speci cation. Models such as the barber shop model are constructed from queuing networks, and
TR93-016 Computer and Information Sciences, University of Florida
5
queuing networks are a form of procedural, data ow modeling where the barber (server) accepts entities (data) that ow through the system. Declarative, state-oriented modeling is also possible by emphasizing the current state of the barber or entities. The top two models in g. 1 display these two alternative modeling strategies: data ow vs. state transition. Given that events demarcate changes in state, we may form an event graph ( g. 1) that displays the event precedence in the barbershop. As people arrive into the stop every ten time units (i.e., dt = 10), they either (1) begin servicing immediately (if the barber is not busy), or (2) wait in a rst-come rst-serve queue until the barber is free. Servicing takes 20 time units.
3 COMPUTER ANIMATION In the following sections we will give an introduction to the eld of computer animation. We will describe the kinds of models that can be animated, as well as a wide range of tools and algorithms that are available today to specify a desired motion.
3.1 Geometry Models: Rigid And Articulated Bodies There are two types of basic models that can be animated: rigid and articulated bodies. A rigid body consists of just one single element, such as a sphere or leg. In an articulated body such as a human or a robot several rigid bodies are collected into a movable structure. For most articulated gures it is possible to organize all sub-objects in a hierarchical \articulation tree" as shown in gure 2. Such an object hierarchy has the advantage that if one link is moved, all of its descendants will also move. This is similar to real world behavior: If a human turns the torso, the arm, head, hands and ngers will also turn.
TR93-016 Computer and Information Sciences, University of Florida
6
[Figure 2 about here.] At this stage it is as though a sculptor has chiseled a statue out of a block of marble: All the limbs are there, but they cannot be moved. To enable movement, joints have to be placed inside of the structure. There are two basic types of joints available [15, 2]: revolute and prismatic (slider), as shown in gure 3. Both joints have only one \degree of freedom" (DOF): the revolute joint may only rotate over one axis, and the slider can only slide along one axis. It is possible to model any higher DOF joint by breaking it down into a \serial chain" of the above type joints. For example, the human shoulder is a spherical joint and has three DOFs. It can be modeled conceptually as three orthogonal revolute joints that lie on top of each other. [Figure 3 about here.] In a computer implementation there has to be a formal, canonical way to describe how the links are attached to each other. This can be done using the Denavit-Hartenberg [16, 2, 15] notation, which has become a standard in the robotics literature.
3.2 Animation Systems The task of a computer animation system is to allow the user to specify object motion in an easy to use, high level environment. There are several types of animation systems available, each one taking a fundamentally dierent approach in describing motion. In general it is possible to achieve the same animation with each of these types, but with some the user will have to put in a much higher degree of interaction than with others. Figure 4 shows some of the most successful and often used techniques.
TR93-016 Computer and Information Sciences, University of Florida
7
[Figure 4 about here.]
3.2.1 Programmed & Scripted Animation Programmed animation is the lowest level of motion control available since the motion is hardcoded inside a specially written program. Programmed animation is used only if an animator requires a special eect, or if a speci c motion is not handled by a general animation system [45]. The disadvantages are obvious: The user has to know a programming language, and the quality of the motion is directly tied to the quality of the programmer. Furthermore, if a dierent motion is to be used, the program has to be completely rewritten. Script animation involves a specialized programming language that produces graphics and animation [40, 14, 47]. Its advantage is that the user can create the animation in a more structured manner so that they do not have to worry about the low-level implementations.
3.2.2 Keyframe Animation Keyframe animation is one of the oldest computer animation techniques; since it was rst introduced [11] it has become one of the most popular types of creating animations with a computer [44, 30, 25]. The concept is an extension of how animation is traditionally done in 2D, for instance, in an animated cartoon. Here, a gure is hand drawn on a transparency by the master animator only at key points in the movement (at the beginning and the end). All in between frames are then lled in by an assistant animator using artistic judgement [49]. In the 3D case, the actual mathematical parameters that describe the position and orientation of an object are used for the interpolation. These parameters represent the body's DOFs. Every body has six DOFs (3 rotational, 3 translational) that determine how it is placed
TR93-016 Computer and Information Sciences, University of Florida
8
in Cartesian space. An articulated gure has additional DOFs, its joints, that describe the position of the links. All of these parameters uniquely determine the position and con guration of a body. The animator de nes the con guration (i.e., sets all DOFs) of an object only at key times in the movement, the keyframes. The computer is then used to calculate all in between frames by interpolating the individual DOFs using a spline curve technique [33]. The three most commonly used splines in animation are the Catmul-Rom spline [13], the Cardinal spline [43], and the Hermite spline [37], because the curve passes through the spline control points. [Figure 5 about here.]
3.2.3 Dynamics The quality of an animation created with any of the techniques described so far greatly depends on the skill of the animator. To have a motion sequence look realistic requires talent and training [34]. For this reason, much recent research in computer animation has involved taking the burden o the animator and placing it on the system which produces the animations automatically. One promising direction is dynamics which is concerned with applying the laws of physics to a computer model. There exist several techniques that describe the \equations of motion," such as the Newton-Euler, the Lagrangian [2, 15], the D'Alembert [31], the Gibbs-Appell [51], and the Armstrong notation [1, 50]. Dynamic simulation is capable of producing very realist looking motion, however the technique does suer from a number of aws:
TR93-016 Computer and Information Sciences, University of Florida
9
1. All systems developed for high-level dynamic simulation, (i.e., for human [10] and insect gaits [28, 36]) are non-general. The equations of motion must be explicitly developed for a particular model and are usually hardcoded in the system. To teach the system a new movement, the program has to be changed. 2. The systems are often dicult to control: The animation has to be speci ed in term of forces and torques [51], or boundary condition accelerations and velocities [53]. Both ways are unnatural for an animator.
3.2.4 Goal-Directed Animation In all of the systems described above, the animator is still forced to specify the motion in an unnatural way. Creating a natural animation system is the topic of goal-directed animation. In such a system, the animator states a goal in natural language (i.e., \the man stands up and takes a book o the shelve"), and the system produces an animation by processing the text. Such a high level system can produce an intermediate level animation script le [56, 12, 17] distinguishing between task level and animation level ( gure 6), or produce equational models [6, 7]. The animation level can be any of the animation systems described above. The main research focus of goal directed animation can thus be de ned as all problems dealing with the task level: to specify goals (tasks) and have the system automatically produce an animation. The task level itself can be divided further into a hierarchy of smaller sub-systems in a top down fashion [54, 56, 10, 12, 57] as shown in gure 6. There are three major issues involved here [54]: natural language processing, motion planning, and motor control.
TR93-016 Computer and Information Sciences, University of Florida
10
3.2.5 Natural Language Processing Having a computer understand natural language is in itself a signi cant research area in Arti cial Intelligence (AI), and it should be seen only indirectly as part of the goal-directed animation process. For that reason many high level animation systems use a modi ed, simpler natural language. Esakov and Badler [17] take a Simon Says approach, using commands such as \John, look at switch tw-1." Another system [46] does not allow pronouns in the language at all, and events have to be listed in a sequential order. Badler et al. [5] describe a system that uses a natural language processor program as the front end to the animation system. The program is used to extract a stream of simpler actions (tasks) out of the natural language input, which are piped into the animation program. [Figure 6 about here.]
3.2.6 Motion Planning Motion planning involves algorithms that combine, blend, or organize individual motions into one [41, 48], as well as the planning of an optimal, collision free path of motion in an arbitrary environment [8, 35]. Similar to natural language processing, there is much AI research involved. The system has to have a certain knowledge base: it has to know about its environment (i.e., what and where is a doorknob), and what skills a given object is capable of walking, running or grasping. Given all this knowledge, it is then possible for a program called the task manager [54] or task planner [17] to break down (or re ne) a task even further into individual skills. Zeltzer [57] suggests using a skill lattice for the re nement.
TR93-016 Computer and Information Sciences, University of Florida
11
3.2.7 Motor Control Motor control is concerned with implementing the skills by controlling the joint movements on a gure using special motor programs. Each skill can be seen as a dierent motor program. It has been shown that a skill can be modeled as a nite state automata (FSA). Figure 7 shows a simple FSA for walking. Several systems were build using this approach as a basis [54, 10, 9]. In previous implementation these motor programs were hardcoded as functions in a program, which made learning new skills and variations in exible. [Figure 7 about here.] While these systems certainly represent the future, they are still in the experimental stage. In the case of physical simulation and dynamics, it is awkward for a human to specify the animation in terms of physical parameters [53, 1]. In other instances, a system may have been designed only for a special case [10]. Thus, there still remains more research to be done in generating an easy-to-use, general animation system.
4 INTEGRATING SIMULATION AND ANIMATION To model a high level autonomous system, we chose to integrate a computer simulation with the traditional keyframe animation system. Figure 8 displays the order in which we proceeded. [Figure 8 about here.]
TR93-016 Computer and Information Sciences, University of Florida
12
4.1 Modeling First we begin with the simulator (stage 1). We use a set of tools called SimPack. SimPack [22, 21] permits the following types of modeling:
Finite state automaton with timed states.
Markov chain modeling.
Queuing networks.
Dierential, dierence equation and delay dierential equation modeling.
Pulse processes.
Stochastic Petri networks.
Bi-directional message passing networks.
Parallel network simulation with the Linda parallel computation model [27].
For our example, we chose the Petri net modeler. Petri nets can be thought of as a hybrid between procedural and declarative modeling as depicted in g. 1. In our simulation studies, we have created a two level timed Petri net to model the behavior of 5 articulated gures which comprise the dining philosopher's (DP) scenario. A Petri net model of DP is described by Peterson [38]. This model represents the concurrency of \eating" and the resource dependencies for each philosopher. Note that the places and transitions are labeled counter-clockwise (using concentric passes) starting with p0
and t0 respectively. We de ne DP as a 4-tuple containing places (P ), transitions (T ),
inputs (I ) and outputs (O) as follows:
TR93-016 Computer and Information Sciences, University of Florida 1.
S
=< P; T; I; O >
2.
P
= fp0; : : : ; p24g
3.
T
= ft0; : : : ; t19g
4. I : T ! P 1 5.
O
: T ! P1
6. : P ! Z0+ ; (p ) = 1 f or i 2 f0; : : : ; 9g else (p ) = 0 i
7. I (t0) = fp0; p1; p2g; I (t1) = fp2; p3; p4g 8. I (t2) = fp4; p5; p6g; I (t3) = fp6; p7; p8g 9. I (t4) = fp8; p9; p0g 10. I (t5) = fp10g 11. I (t6) = fp11g; I (t7) = fp12g 12. I (t8) = fp13g; I (t9) = fp14g 13. I (t10) = fp15g 14. I (t11) = fp16g; I (t12) = fp17g 15. I (t13) = fp18g; I (t14) = fp19g 16. I (t15) = fp20g 17. I (t16) = fp21g; I (t17) = fp22g 18. I (t18) = fp23g; I (t19) = fp24g 19. O(t0) = fp10g; O(t1) = fp11g 20. O(t2) = fp12g; O(t3) = fp13g 21. O(t4) = fp14g 22. O(t5) = fp15g; O(t6) = fp16g
i
13
TR93-016 Computer and Information Sciences, University of Florida
14
23. O(t7) = fp17g; O(t8) = fp18g 24. O(t9) = fp19g 25. O(t10) = fp20g; O(t11) = fp21g 26. O(t12) = fp22g; O(t13) = fp23g 27. O(t14) = fp24g 28. O(t15) = fp0; p1; p2g 29. O(t16) = fp2; p3; p4g; O(t17) = fp4; p5; p6g 30. O(t18) = fp6; p7; p8g; O(t19) = fp8; p9; p0g Two Petri nets are shown in gures 9 and 10. Fig. 9 displays the higher level net while g. 10 displays just the \eating" sub-net that replaces the shaded place in g. 9. [Figure 9 about here.] [Figure 10 about here.] Figures 9 and 10 can be compressed into one net, although it is useful to represent two levels of aggregation as shown. This model represents the well known \dining philosophers" problem in operating systems literature, although we are using it as a basis for modeling,
and not to solve analytic problems in concurrency. Each philosopher requires two forks to eat (no two adjacent philosophers, therefore, may eat simultaneously). The tokens within the Petri net represent the fork resource and general ow of control. Initially all tokens (or \markers") start out in the center of of the net in g. 9. Then, two philosophers grab their respective fork pairs the proceed to eat at some rate de ned by the modeler. The total action of any single philosopher is a period of eating followed by a period of rest. The eating process is shown in the rst three transitions and places of g. 10. If we
TR93-016 Computer and Information Sciences, University of Florida
15
consider the subprocess for the rst philosopher (starting with t0) then the transitions red while eating for level 2 (ref. g. 10) are: t0, t5 and t10. The eating process is described by three actions: 1. EATING1: The right hand is half way between the table and mouth. See gure 12. Example: transition t0. 2. EATING2: The right hand is at the mouth. See gure 13. Example: transition t5. 3. EATING1: See g. 12. Example: transition t10. The resting process (RESTING) is represented by a single net transition (example: transition t15
). The resting con guration is shown in gure 11. [Figure 11 about here.] [Figure 12 about here.] [Figure 13 about here.]
4.2 State and Event Trajectories In g. 8 we note that the model is input to the appropriate simulator in SimPack. Our Petri net model is simulated for some period of time; each transition can be arbitrarily set to some T . The output from the simulation is a single le consisting of a sequence of 3-tuples, as the following example illustrates: [... tuples deleted ...] 40
man3 RESTING
TR93-016 Computer and Information Sciences, University of Florida 45
man1 RESTING
46
man3 EATING1
65
man1 EATING1
74
man3 EATING2
82
man3 EATING1
85
man1 EATING2
89
man1 EATING1
90
man3 RESTING
16
[... tuples deleted ...]
The meaning of the individual elds in a tuple is as follows: 1. The time when the respective event (node ring) is to take place. An integer time is used here, as it corresponds directly to the frame number in the animation. 2. The animation object associated with the event. In this example, the object is one of the ve philosophers (man1 - man5). 3. The event to take place. This event corresponds to a keyframe as it was de ned previously in the animation program. For this particular animation, we used three keyframes to represent the eating sequence (EATING1 ! EATING2 ! EATING1) and one keyframe for the period of rest (RESTING). Note that we do not have to create keyframes for each of the ve philosophers, which would be a total of 20 keyframes. Rather, we de ne the sequence in the local coordinate frame of one generic object. Then, during the simulation we translate the keyframe to the global world coordinate of the respective philosopher.
TR93-016 Computer and Information Sciences, University of Florida
17
The output from the pre-processor is a le containing the now absolute keyframe descriptions for the whole animation as it is needed by the animation program. In the next stage, we use the keyframe animation program to produce the nished animation. It is possible to abstract the animation part of the simulation even further. All the keyframes that describe a given motion can be stored collectively in a "motion primitive." For this example we would create a motion primitive called eating, which only contains the three keyframes described above. The high level simulation can then access the whole motion collectively by initiating the corresponding motion primitive at the desired simulation time, simply by issuing a motion verb. To make the primitives more general, we came up with several ways to manipulate a motion primitive so that it can be combined spatially and temporally with other primitives [39]. Using this concept, it is possible to build up a complete "motion library" that can be used in the graphical simulation of a high autonomy system. For instance, motion libraries can be used to animate robots in a complex automated factory simulation, or to animate humans in the simulation of a bank teller system, in both cases at a high and abstract level.
4.3 Geometric Keyframe Modeling At some point in the modeling process we must create geometric models for the philosophers, and a formal speci cation for the constraints on the articulated gures. This is done in the XKEY system. XKEY provides an easy interactive environment for specifying an object's low level positions at each keyframe. Speci cally, XKEY provides:
A capability for loading, storing and interactively creating keyframes.
TR93-016 Computer and Information Sciences, University of Florida
18
Denavit-Hartenberg notation [16] which is used for setting up the articulation linkage and their associated degrees of freedom (DOF).
An interactive method for moving objects or sub-objects with respect to their DOF. All operations are performed using mouse interaction, e.g. dragging and rotating objects directly on the screen, and are therefor highly user friendly.
A multi-track [29] coordinator that includes cut, copy and paste of frames.
Cubic spline and linear interpolation of keyframe DOF variables.
Figure 14 displays the X-window screen for XKEY. [Figure 14 about here.] The models used are polygon based, and were created by using a CSG (Constructive Solid Geometry) approach where spheres are combined to form the limbs. The skull is the same as used by Zeltzer [55, 54]. The renderer supports Phong shading, texture/bump/re ection mapping, metal and spot light eects.
4.4 Dynamics and Video Often, the animation produced by keyframing methods is not very realistic looking because it is non-physical in nature. We are currently experimenting with the implementation of dynamic \ lters" to enhance the realism. The objects are assigned masses and inertias, and the algorithm then computes accelerations on the spline curve. We are currently investigating the following three methods:
Constrain the dynamics to follow the spline path exactly [28, 51].
TR93-016 Computer and Information Sciences, University of Florida
19
Constrain the dynamics to follow a path to some tolerance. This is often achieved through the use of spring-like forces attached to the path[52].
Constrain dynamics to pass through or near the keyframe points and use a method such as optimal control to obtain the path achieved by minimizing potential energy.
Obtaining fast physical object responses within an easy-to-use animation system is an active research problem. The result of our eorts is video footage on a professional 3/4" video recorder where each frame is stored one at a time. Figure 15 displays a sample frame from our DP video footage. [Figure 15 about here.]
5 CONCLUSIONS We have determined that a seamless integration of computer simulation and computer animation concepts is essential for studying large scale systems | in particular, systems that contain detailed articulated objects such as robots and human gures. We have demonstrated a method for combining discrete event modeling methods with keyframe computer animation. Our focus has been to combine methods used in computer simulation and animation to help in the development of an abstract testbed for the graphical simulation of complicated high autonomous systems. Such systems often contain discrete as well as continuous components and multiple models (i.e., multimodels) must be used to coordinate or control the animation. With the increased amount of physically based modeling research in the graphics eld, and the tendency toward more graphical realizations of model execution in the simulation eld, we see a need to integrate methodologies from both elds. This research
TR93-016 Computer and Information Sciences, University of Florida
20
represents a step in the direction of integration. For the future, we plan on building better high-end simulation modeling tools for combined discrete event/continuous models, and better low-end tools allowing the analyst to specify kinematic and dynamic constraints of the systems under study.
ACKNOWLEDGMENTS We would like to acknowledge Norman Badler at the University of Pennsylvania as providing the inspiration and valuable feedback for this integrated study.
References [1] Armstrong, W., and Green, M. The Dynamics of Articulated Rigid Bodies for Purposes of Animation. In Proceedings of Graphics Interface '85. Canadian Information Processing Society (Toronto, Canada, 1985), pp. 407{415.
[2] Asada, H., and Slotine, J. J. E. Robot Analysis And Control. John Wiley and Sons, New York, New York, 1986. [3] Badler, N. I., Korein, J., Korein, J., Radack, G., and Brotman, L. Positioning and Animating Human Figures in a Task-Oriented Environment. The Visual Computer 4, 1 (1985), 212 { 220.
[4] Badler, N. I., Manoochehri, K., and Walters, G. Articulated Figure Positioning by Multiple Constraints. IEEE Computer Graphics and Applications 7, 6 (June 1987).
TR93-016 Computer and Information Sciences, University of Florida
21
[5] Badler, N. I., Webber, B., Kalita, J., and Esakov, J. Animation from Instructions. In Making Them Move, N. I. Badler, B. Barsky, and D. Zeltzer, Eds. Morgan Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 51{93. [6] Beck, H. W., and Fishwick, P. A. Incorporating Natural Language Descriptions into Modeling and Simulation. Simulation Journal 52, 3 (March 1989), 102 { 109. [7] Beck, H. W., and Fishwick, P. A. Natural Language, Cognitive Models and Simulation. In Qualitative Simulation Modeling and Analysis, P. A. Fishwick and P. A. Luker, Eds. Springer Verlag, 1991, pp. 302 { 325. [8] Breen, D. Choreographing Goal-Oriented Motion Using Cost Functions. In Stateof-the-art in Computer Animation, N. Magnenat-Thalmann and D. Thalmann, Eds.
Springer Verlag, New York, New York, 1989, pp. 141{151. [9] Brooks, R. A Robot that Walks: Emergent Behaivor from a Carefully Evolved Network. In Making Them Move, N. I. Badler, B. Barsky, and D. Zeltzer, Eds. Morgan Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 99{108. [10] Bruderlein, A., and Calvert, T. of Walking.
Goal-Directed, Dynamic Animation
In Computer Graphics: SIGGRAPH '89 Conference Proceedings
(Boston,Massachusetts, 1989), ACM-SIGGRAPH, pp. 268{292. [11] Burtnyk, N., and Wein, M. Computer Generated Key Frame Animation. Journal of the SMPTE 80 (1971), 149{153.
TR93-016 Computer and Information Sciences, University of Florida
22
[12] Calvert, T. Composition of Realistic Animation Sequences for Multiple Human Figures. In Making Them Move, N. I. Badler, B. Barsky, and D. Zeltzer, Eds. Morgan Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 35{50. [13] Catmul, E., and Rom, R. A Class of Local Interpolating Splines. In Computer Aided Geometric Design, R. Arnhill and R. Riesenfeld, Eds. Academic Press, San Francisco,
California, 1974, pp. 317{326. [14] Chuang, R., and Entis, G. Shaded Computer Animation {Step by Step. IEEE Computer Graphics & Applications 3, 3 (1983), 18 { 25.
[15] Craig, R. Introduction to Robotics, Mechanics and Control, second edition. AddisonWesley Publishing Company, Inc., New York, New York, 1989. [16] Denavit, J., and Hartenberg, R. A Kinematic Notation for Lower Pair Mechanisms Bases On Matrices. Journal of Applied Mechanics 22 (1955), 215{221. [17] Esakov, J., and Badler, N. I. An Architecture for High-Level Human Task Animation Control. In In Knowledge Based Simulation, Methodology and Application;Advances in Simulation, Num. 4, P. Fishwick and R. Modjeski, Eds. Springer Verlag, New York,
New York, 1991, pp. 164{197. [18] Fishwick, P. A. The Role of Process Abstraction in Simulation. IEEE Transactions on Systems, Man and Cybernetics 18, 1 (January/February 1988), 18 { 39.
[19] Fishwick, P. A. Abstraction Level Traversal in Hierarchical Modeling. In Modelling and Simulation Methodology: Knowledge Systems Paradigms, B. P. Zeigler, M. Elzas,
and T. Oren, Eds. Elsevier North Holland, 1989, pp. 393 { 429.
TR93-016 Computer and Information Sciences, University of Florida
23
[20] Fishwick, P. A. Heterogeneous Decomposition and Coupling for Combined Modeling. In 1991 Winter Simulation Conference (Phoenix, AZ, December 1991), pp. 1199 { 1208. [21] Fishwick, P. A. Simpack: Getting Started with Simulation Programming in C and C++. In 1992 Winter Simulation Conference (Arlington, VA, December 1992), pp. 154 { 162. [22] Fishwick, P. A. Computer Simulation Model Design & Execution. Prentice Hall, 1993. (to be published as a textbook). [23] Fishwick, P. A., and Porr, H.-O. A. Using discrete event modeling for eective computer animation control. In Winter Simulation Conference (Phoenix, AZ, December 1991), pp. 1156 {1164. [24] Fishwick, P. A., and Zeigler, B. P. A Multimodel Methodology for Qualitative Model Engineering. ACM Transactions on Modeling and Computer Simulation 1, 2 (1992), 52 { 81. [25] Fortin, D. Lamy, J. F., and Thalman, D. A multiple track animator system. In Proceedings SIGGRAPH/SIGART Interdisciplinary Workshop on Motion: Representation and Perception (Toronto, Canada, 1983), pp. 180{186.
[26] Gangel, J. A Motion Verb Interface to a Task Animation System. Master's thesis, University of Pennsylvania, 1984. [27] Gelernter, D. H. Generative Communication in Linda. ACM Transactions on Programming Languages and Systems 7, 1 (January 1985), 80 { 112.
TR93-016 Computer and Information Sciences, University of Florida
24
[28] Girard, M., and Maciejewski, A. A. Computational Modeling for the Computer Animation of Legged Figures. In Computer Graphics: SIGGRAPH '85 Conference Proceedings (San Francisco, California, 1985), ACM-SIGGRAPH, pp. 263{270.
[29] Gomez, J. TWIXT: A 3-D Animation System. Computer & Graphics 9, 3 (1985), 291 { 298. [30] Hanrahan, P., and Sturman, D. Interactive animation of parametric models. Visual Computer 1 (1985), 260{266.
[31] Isaacs, P., and Cohen, M. F. Controlling Dynamic Simulations with Kinematic Constraint. In Computer Graphics: SIGGRAPH '87 Conference Proceedings (Anaheim, California, 1987), ACM-SIGGRAPH, pp. 214{223. [32] Kalita, J. Analysis of a Class of Action Verbs and Synthesis of Underlying Tasks in an Animation Environment. PhD thesis, University of Pennsylvania, 1990.
[33] Kochanek, D. Interpolating Splines with Local Tension, Continuity, and Bias Control. In Computer Graphics: SIGGRAPH '84 Conference Proceedings (Minneapolis, Minnesota, 1984), ACM SIGGRAPH, pp. 33{41. [34] Lasseter, J. Principles of Traditional Animation Applied to 3D Computer Animation. In Computer Graphics: SIGGRAPH '87 Conference Proceedings (Anaheim, California, 1987), ACM-SIGGRAPH, pp. 35{44. [35] Lengyel, J., Reichert, M., Donald, B., and Greenberg, D. P. Real-Time Robot Motion Planning Using Rasterizing Computer Graphics Hardware. In Com-
TR93-016 Computer and Information Sciences, University of Florida
25
puter Graphics: SIGGRAPH '90 Conference Proceedings (Dallas, Texas, 1990), ACM-
SIGGRAPH, pp. 327{335. [36] McKenna, M., and Zeltzer, D. Dynamic Simulation of Autonomous Legged Locomotion. In Computer Graphics: SIGGRAPH '90 Conference Proceedings (Dallas, Texas, 1990), ACM-SIGGRAPH, pp. 29{38. [37] Mortenson, M. Geometric Modeling. John Wiley & Sons, Inc., New York, New York, 1985. [38] Peterson, J. L. Petri Net Theory and the Modeling of Systems. Prentice-Hall, Inc., Englewood Clis, N.J., 1981. [39] Porr, H. O. High-Level Computer Animation using Motion Primitives created from Keyframes. Master's thesis, University of Florida, 1991. [40] Reynolds, C. Computer Animation with Scripts and Actors. In Computer Graphics: SIGGRAPH '82 Conference Proceedings (Boston, Massachusetts, 1982), ACM-
SIGGRAPH, pp. 289{296. [41] Reynolds, C. Flocks, Herds, and Schools: A Distributed Behavior Model. In Computer Graphics: SIGGRAPH '87 Conference Proceedings (Anaheim, California, 1987),
ACM-SIGGRAPH, pp. 25{34. [42] Singh, M. Systems and Control Encyclopedia: Theory, Technology, and Applications. Pergammon Press, 1987. (8 Volume set).
TR93-016 Computer and Information Sciences, University of Florida
26
[43] Smith, A. Spline Tutorial Notes. Technical Memo No. 77. In SIGGRAPH '83 Tutorial Notes: Introduction to Computer Animation (New Orleans, Louisiana, 1983), ACM-
SIGGRAPH, pp. 64{75. [44] Sturman, D. Interactive keyframe animation of 3-D articulated models. In Proceedings Graphics Interface '84 (Ottawa, Canada, 1984), pp. 35{40.
[45] Sturman, D. A Discussion of the Development of Motion Control Systems. In SIGGRAPH '87 Course 10, Computer Animation: 3-D Motion Seci cation and Control
(Anaheim, California, 1987), ACM-SIGGRAPH, pp. 1{15. [46] Takashima, Y., Shimazu, H., and Tomoto, M. Story Driven Animation. In Proceedings Computer Human Interface and Graphics Interface '87 (1987), ACM SIGCHI,
pp. 149{153. [47] Thalmann, D., and Magnenat-Thalman, N. MIRA-SHADING: a language for the synthesis and the animation of realistic images. In Frontiers in Computer Graphics. Springer Verlag, New York, New York, 1984, pp. 101{113. [48] van de Panne, M., Fiume, E., and Vranesic, Z. Reusable Motion Synthesis Using State-Space Contollers. In Computer Graphics: SIGGRAPH '90 Conference Proceedings (Dallas, Texas, 1990), ACM-SIGGRAPH, pp. 225{234. [49] White, T. The Animator's Workbook, Step-by-Step Techniques of Drawn Animation. Watson-Guptill Publications, New York, New York, 1988.
TR93-016 Computer and Information Sciences, University of Florida
27
[50] Wilhelms, J. Dynamics for Everyone. Appendix 1. In SIGGRAPH '87 Course 10, Computer Animation: 3-D Motion Speci cation and Control (Anaheim, California,
1987), ACM SIGGRAPH, pp. 145{146. [51] Wilhelms, J. Using dynamic analysis for animation of articulated bodies. IEEE Computer Graphics & Applications 7, 6 (1987), 12{27.
[52] Witkin, A., Fleischer, K., and Barr, A. Energy Constraints on Parameterized Models. In SIGGRAPH '87, Computer Graphics (1987), vol. 24, pp. 225 { 232. [53] Witkin, A., and Kass, M. Spacetime Contraints. In Computer Graphics: SIGGRAPH '88 Conference Proceedings (Atlanta, Georgia, 1988), ACM-SIGGRAPH,
pp. 159{168. [54] Zeltzer, D. Motor Control Techniques For Figure Animation. IEEE Computer Graphics & Applications 2, 9 (1982), 53{59.
[55] Zeltzer, D. Representation of Complex Animated Figures. In Graphics Interface '82 (1982), pp. 205 { 211. [56] Zeltzer, D. Task Level Graphical Simulation of 3D Computer Animation. The Visual Computer: The International Journal of Computer Graphics 1, 4 (1985), 249{259.
[57] Zeltzer, D. Task-level Graphical Simulation: Abstraction, Representation, and Control. In Making Them Move, N. Badler, B. Barsky, and D. Zelter, Eds. Morgan Kaufmann Publishers, Inc., San Mateo, California, 1991, pp. 28{38.
TR93-016 Computer and Information Sciences, University of Florida
28
AUTHOR BIOGRAPHIES PAUL A. FISHWICK is an associate professor in the Department of Computer and Information Sciences at the University of Florida. He received the BS in Mathematics from the Pennsylvania State University, MS in Applied Science from the College of William and Mary, and PhD in Computer and Information Science from the University of Pennsylvania in 1986. He also has six years of industrial/government production and research experience working at Newport News Shipbuilding and Dry Dock Co. (doing CAD/CAM parts definition research) and at NASA Langley Research Center (studying engineering data base models for structural engineering). His research interests are in computer simulation modeling and analysis methods for complex systems. He is a senior member of the IEEE and a member of the IEEE Society for Systems, Man and Cybernetics, IEEE Computer Society, the Society for Computer Simulation, ACM and AAAI. Dr. Fishwick was chairman of the IEEE Computer Society technical committee on simulation (TCSIM) for two years (19881990) and he is on the editorial boards of several journals including the ACM Transactions on Modeling and Computer Simulation, IEEE Transactions on Systems, Man and Cybernetics, The Transactions of the Society for Computer Simulation, International Journal of Computer Simulation, and the Journal of Systems Engineering.
HANNS-OSKAR A. PORR is a graduate student in the Department of Computer and Information Sciences at the University of Pennsylvania where he is currently working towards his Ph.D. degree as a member of the Computer Graphics Research Lab. He received a BS in Computer Science from the University of Utah in 1989, and a MS from the University of Florida in 1991. Prior to his academic career, he worked as a Computer Graphics Operator
TR93-016 Computer and Information Sciences, University of Florida
29
for the Electronic Graphics Group, Munich, West Germany. His research interests are in Computer Graphics, Computer Animation and Arti cial Intelligence.
TR93-016 Computer and Information Sciences, University of Florida
30
List of Figures 1
Dierent Levels of Barbershop Modeling
: : : : : : : : : : : : : : : : : : : :
31
2
Levels of abstraction
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
32
3
Basic types of joints
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
33
4
Animation systems
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
34
5
3-D computer keyframe interpolation
6
Goal-directed animation breakup
7
A simple FSA for walking
8
Simulation to Animation Pipeline
9
Level 1: Five Synchronized Figures
: : : : : : : : : : : : : : : : : : : : : :
35
: : : : : : : : : : : : : : : : : : : : : : : :
36
: : : : : : : : : : : : : : : : : : : : : : : : : : : :
37
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
10 Level 2: The Eating Process Sub-Network 11 Keyframe # 1 - Resting (RESTING)
38 39
: : : : : : : : : : : : : : : : : : :
40
: : : : : : : : : : : : : : : : : : : : : :
41
12 Keyframe # 2 - Eating Stage 1 (EATING1)
: : : : : : : : : : : : : : : : : :
42
13 Keyframe # 3 - Eating Stage 2 (EATING2)
: : : : : : : : : : : : : : : : : :
43
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
44
14 XKEY Interface :
15 Sample DP Video Frame :
: : : : : : : : : : : : : : : : : : : : : : : : : : : :
45
TR93-016 Computer and Information Sciences, University of Florida
31
Model Declarative Graph (state-oriented)
Procedural Graph (object-oriented)
arrival arrivals
IDLE
BARBER
BUSY departure
Event Graph
dt = 0
dt = 10 & server free
start_arrival
start_service
dt = 20
Implementation (Simulation Language)
SIMPACK Figure 1: Dierent Levels of Barbershop Modeling
end_service
TR93-016 Computer and Information Sciences, University of Florida
Figure 2: Levels of abstraction
32
TR93-016 Computer and Information Sciences, University of Florida
Figure 3: Basic types of joints
33
TR93-016 Computer and Information Sciences, University of Florida
Figure 4: Animation systems
34
TR93-016 Computer and Information Sciences, University of Florida
Figure 5: 3-D computer keyframe interpolation
35
TR93-016 Computer and Information Sciences, University of Florida
Figure 6: Goal-directed animation breakup
36
TR93-016 Computer and Information Sciences, University of Florida
Figure 7: A simple FSA for walking
37
TR93-016 Computer and Information Sciences, University of Florida
38
Keyframe Files Model Petri Net
SIMULATE (SimPack)
State & Event Trajectories
DYNAMICS
Interpolated Keyframes
RENDERER
Video
PRE-PROC Tracks w/ Keyframe Identifiers XKEY
Animation Script File
Figure 8: Simulation to Animation Pipeline
TR93-016 Computer and Information Sciences, University of Florida
39
t19
t15
LEGEND PLACE
t0 t4
TRANSITION
p0
MARKER
p9
p1
p3
p7 p4
t16
SUB-LEVEL NET
p8
p2
p5
t1
p6 t3
t2
t17
Figure 9: Level 1: Five Synchronized Figures
t18
TR93-016 Computer and Information Sciences, University of Florida EATING
40
RESTING
REPRESENTS
EATING1
EATING2
EATING1
Figure 10: Level 2: The Eating Process Sub-Network
RESTING
TR93-016 Computer and Information Sciences, University of Florida
Figure 11: Keyframe # 1 - Resting (RESTING)
41
TR93-016 Computer and Information Sciences, University of Florida
Figure 12: Keyframe # 2 - Eating Stage 1 (EATING1)
42
TR93-016 Computer and Information Sciences, University of Florida
Figure 13: Keyframe # 3 - Eating Stage 2 (EATING2)
43
TR93-016 Computer and Information Sciences, University of Florida
Figure 14: XKEY Interface
44
TR93-016 Computer and Information Sciences, University of Florida
Figure 15: Sample DP Video Frame
45
TR93-016 Computer and Information Sciences, University of Florida
46
List of Tables 1
Simulation Model Types
: : : : : : : : : : : : : : : : : : : : : : : : : : : : :
47
TR93-016 Computer and Information Sciences, University of Florida
Table 1: Simulation Model Types Discrete Space Continuous Space Discrete Time Discrete Time Discrete Time Dierence Equations Dierence Equations (with integer states) (with real states) Cellular Automata Finite State Automata Continuous Time Discrete Event Continuous Queuing Models Dierential Equations Digital Logic Models
47