Computer Animation and Simulation 2000 (Proceedings of the Eurographics Workshop
on Animation and Simulation 2000, Interlaken Switzerland), Springer Wien, pp.59-71,
August 21-22, 2000

Motion Tracking with Dynamic Simulation
Masaki OSHITA and

Akifumi MAKINOUCHI

Graduate School of Information Science and Electrical Engineering, Kyushu University
6-10-1 Hakozaki, Higashi-Ku, Fukuoka, 812-8581, Japan
E-mail: moshita@db.is.kyushu-u.ac.jp, akifumi@is.kyushu-u.ac.jp

Abstract
This paper presents a physics-based real-time animation system for human-likearticulated figures. We introduce a novel method for tracking motion data using
dynamic simulation. By tracing a desired motion that is kinematically specified
by a user using dynamic simulation, our system produces a motion thatdynamically and realistically responds to a changing environment ensuring bothcontrollability and physical realism. A tracking controller uses a human strength
model as primary constraints, and controls joint angular acceleration within theavailable range of torque using inverse dynamics. As secondary constraints, thespatial accelerations of the center of mass and end-effectors are controlled.
Unlike existing dynamic controllers that control joint torque for each
degree-of-freedom (DOF) separately, our dynamic controller controls joint
angular acceleration considering the influence of all DOFs using a
pseudo-inverse matrix technique. In addition, this paper proposes two
extensions of the Newton-Euler inverse dynamics method. One is a proximate
solution for handling the closed loop problem. The other is for computing aminimum-moment point between the supporting segment of a figure and theground for simulating falling motions. We demonstrate the efficacy of ourapproach by applying our method to a simple lifting task and generating various
motions in response to the weight of the lifted load.

1

Introduction

Generating realistic human animation is a difficult challenge. Currently the mostefficient and practical method is motion capture. Because the motion data are
obtained from the movements of the real actors through the use of motion capturedevices, this technique provides very rich details and a high degree of physicalcorrectness. Recently, a number of techniques to reuse captured motion data havebeen proposed [10][17][6][5][29]. These techniques make it possible to retarget
captured motion sequences on another character that has a different skeleton or
apply them to another situation that has additional constraints. However, thesemethods use only kinematic constraints and do not include any notion of dynamics.
Therefore these methods do not guarantee physical realism and cannot handle
motions that dynamically and realistically respond to a changing environment (e.g.
carrying a heavy load, colliding with other, balancing or falling down). However,generating such a motion is currently the most important issue for real-time
applications such as electric game, virtual studio, and collaborative environments inwhich virtual humans move around and interact with the environments and eachother.
This paper presents a physics-based real-time animation system for human-likearticulated figures. We introduce a new method for tracking motion data using
dynamic simulation. Our system takes a kinematic motion sequence as an input.

1Based on the desired motion sequences, a tracking controller controls the joints of a
figure considering with the muscle strength of the human body, balance control, andspatial constrains of the motion. By tracking a kinematically specified motion using
dynamic simulation, our system produces various motions that dynamically andrealistically respond to a changing environment, ensuring both controllability andphysical realism. A desired motion consists of angular trajectories for each
degree-of-freedom (DOF) and optional constraints. A user of our system creates
these motion sequences using existing kinematic methods such as motion capture,
keyframe interpolation, inverse kinematics, motion synthesis, and transformation
techniques.
There are many systems for generating human animations using dynamic
simulation [12][16][24][4]. These methods control joint torques for each DOF anduse forward dynamics for computing joint angular accelerations based on the joint
torques. On the other hand, our method controls joint angular accelerations for all
DOFs directly and uses inverse dynamics for analyzing the torques required torealize the angular accelerations. By controlling angular accelerations in order totrack a desired motion and modifying the angular accelerations to satisfy themultiple constraints, our method generates dynamically changing motions ensuringcontrollability.
In this paper, we present a tracking algorithm for controlling joint angularaccelerations considering multiple constraints by using a pseudo-inverse matrix
technique. The tracking controller uses a human strength model as the primaryconstraints and controls the joint angular accelerations within the available torquerange that is achieved by the muscle strength. As secondary constraints, the spatial
accelerations of the center of mass and end-effectors are controlled. Unlike existing
dynamic controllers that determine joint torque for each DOF separately, ourdynamic controller determines joint angular accelerations considering the influencesof each DOF on the torque of other DOFs.
This paper also presents two extensions of the Newton-Euler method, which isone of the inverse dynamics methods. We introduce an approximate solution tohandle a closed loop structure in a multiple support phase of human-like articulated
figures. We also extend the Newton-Euler method with additional computations todetermine a minimum-moment point on the surface between the supporting segment(e.g. foot) and the ground, and compute the rotational acceleration around the point
for simulating falling over motions.
The remainder of this paper is organized as follows. The next section describes
how this work relates to other research efforts. Section 3 explains our dynamic
simulation system and data representations. Section 4 presents the extensions of the
Newton-Euler method. Section 5 introduces the tracking control algorithm. In
section 6, an experimental result is demonstrated and discussed.

2 Related Work
There are two main approaches for generating motions with dynamics: spacetime
constraints and dynamic simulation. In the spacetime constraints approach [28][7],an optimal motion trajectory is automatically determined from specified spacetime
constraints to minimize an objective function. Rose et al. [25] adapted this approachto articulated figures and proposed a keyframe interpolation technique between
specified postures minimizing the required torque which is calculated using an2

inverse dynamics during the motion segments. Komura et al.[15] introduced amuscle model and used an objective function to minimize muscle force instead ofjoint torque. These methods are effective for generating keyframe animations.
However, these methods cannot utilize existing motion data. Recently, Popović andWitkin [23] proposed a transformation technique which included the spacetime
constraints approach and notions of dynamics. They extract the essence of physicalproperties from an original motion for the simplified model using the spacetime
constraints approach. Then, they modify the extracted dynamic properties andreconstruct the resulting motion for the original articulated figure model. Thismethod can easily modify the dynamic properties of existing motion data. However,this method does not reflect the character's skeleton and strength. Although thespacetime constraints approach ensures both controllability and physical realism,
because solving an optimal problem requires an off-line process, it cannot produce
motions interacting with environments in real-time.
The dynamic simulation approach is used for animating figures as they interact
dynamically with an environment. These methods use a dynamic controller tocompute joint torques based on the current state and a desired motion. Forward
dynamics simulation then generates the resulting motions based on the joint torques.
Researchers have developed dynamic controllers that are specialized for a particularcharacter’s skeleton and a behavior such as walking [4][16][24] and athletic
movements [12]. These controllers use proportional-derivative (PD) servos tocompute joint torque based on the desired and current angle for each DOF. The PD
controller determines the output torque in proportion to the difference between thedesired state θ d ,θd and the current state θ ,θ (vector of angles and angularvelocities, respectively).

()τ = k p (θ d − θ ) + k v θd − θ .

(1)

The PD controller is easy to implement. However, it assumes nothing about the
dynamic characteristics of the system. Therefore, to produce stable and natural
looking motions, proportional gains kp and kv need to be tuned for both a character
and a motion through trial and error. Once the controllers have been fine tuned andsynchronized to each other, the method can produce expressive and physicallycorrect motions. However, although an algorithm that transforms a successful
controller on another character has been reported [11], it is still difficult to constructa controller that works successfully.
Recently, more advanced controllers have been proposed for tracking akinematicaly specified motion using an approach similar to ours. Zordan and
Hodgins [30] proposed a dynamic controller for general motions of the humanupper-body. They combine the PD controller and optimal control. Their systemdetermines optimal parameters kp and kv to minimize the error between the desired
and produced motion sequences. However, because determining the parameterrequires off-line process, this method is not suitable for real-time applications.
Kokkevis et al. [14] used Model Reference Adaptive Control (MRAC) instead of the
PD control scheme. They reported that the MRAC, based on feedback control,
controls DOFs successfully and relieves the user from having to set explicit
parameters. These controllers compute the torque for each DOF separately, notconsidering the influences of joint torque on another joint’s angular acceleration.
Therefore it seems to be difficult to adopt these controllers to the full-body motionthat includes the movement of the center of mass (e.g. walking and running) or3

needs the assistance of other DOFs for controlling some DOFs (e.g. lifting andswing). Unfortunately, these existing controllers have not yet been applied to such a
motion. These methods based on forward dynamics are aimed at generating natural
motions even if they take unnatural trajectories as an input. On the other hand, ourmethod assumes that input motion is already realistic, and is aimed at generating
natural and realistic motions when the original motion is difficult to realize due tolocking muscle strength, external forces, a collision with others, etc.
Some researchers have developed methods that modify an original motion using
dynamic simulation. Ko and Badler[13] developed a system modifying humanwalking motion with balance and comfort control using inverse dynamics. Theirsystem transforms the positions of the pelvis and torso, and the walking speeds in
response to the joint torque calculated by inverse dynamics in real-time. However,the computation of the modification does not include dynamics and depends onparameters that are tuned by hand. Therefore the method cannot handle anothermotion or interactions with the environment.

3

Dynamic Simulation System

The structure of the animation system presented in this paper is shown in Fig. 1. The
system consists of two main modules: dynamic controller and dynamic simulator.
On each simulation step, the dynamic controller computes joint angular acceleration
for all DOFs, based on a desired motion that is specified by a user. Then the
dynamic simulator updates the state of figures using dynamic simulation.
In standard physics-based animation systems[12][14][30], forward dynamics
computes joint angular accelerations based on joint torques generated by a dynamic
controller. However, in our system, the dynamic controller controls joint angularaccelerations taking into account the required torques using inverse dynamics. Given
the joint angular accelerations, the dynamic simulator computes the rotational
acceleration of the supporting segment of the figure (e.g. foot) based on the joint
angular accelerations (the details of this technique are described in section 4.2). The
states of all figures then are updated by an integral computation. In addition,
collision detection and response are performed. To handle collision, in the similar
way of previous works[14][20], we introduce two stages: impact and contact stage.
At the impact stage, when two figures collide with each other for the first time, animpact force works between them and changes their velocities. The variation of thevelocities is computed by solving a liner equation [20][14]. At the contact stage,
while the two figures contact with each other after the first impact, penetration
avoidance works to prevent their penetration. In many physics-based systems, aspring-damper is used to avoid penetration. However, it requires both forward
dynamics and a smaller time step for reducing error. Therefore we take anothersimple approach to control the angles directly using inverse kinematics. Inverse
dynamics then compute reacting forces. The reacting forces are considered in the
inverse dynamics of the next step of the simulation. If the figure want to remain incontact and the required torque is available, the two figures still contact. If therequired torque is not available, they part.
3.1 Human Body Model

Our system uses a human body model consisting of segments and joints. Each rigid

4

A User or High-level Application

Joint Angular Trajectories
Optional Constraints

Dynamic Controller

Specifies desired motions
Raw Mocap Data
Keyframe
Animation Clips

Tracking control with constraints

Joint Anguler Accelerations

Computing support rotation
Update the states by Integration

Dynamic Simulator

State of Characters

Collision detection
Collision response
Penetration avoidance

Graphics

Fig. 1: The structure of the animation system.

Fig. 2: The human body model.

segment is connected by a rotational joint. Each rotational joint has one, two, or
three DOFs. Each DOF has two limits to restrict joint angles within human natural
postures. In the experiments presented in this paper, we use a skeleton modelcomposed of 18 segments and 17 joints with a total of 39 DOFs (Fig. 2). For
dynamic simulation, the mass and moment of inertia of each segment are calculated
based on the polygonal geometry [12]. The polygonal geometry of the human bodyalso is used for collision detection and for determining a supporting point between
its surface and the ground.
The dynamic controller uses the available muscle strength of each DOF asconstraints. We adopt a simple muscle strength model [13][18]. The two muscle
strength functions, the values of maximum and minimum available torque, are used
for each DOF. Pandya et al. [21] showed by collecting human strength data thatthese values are expressed by functions of the joint angle and angular velocity. For
the experiments, we assign approximated strength functions to each DOF.
3.2 Motion Data Representation

A desired motion is specified by both joint trajectories and optional constraints. The
joint trajectories describe the joint angular displacements over time. These
trajectories are used to control the figure’s joint angular acceleration in the dynamic
controller. As optional constraints, spatially important segments or the center ofmass can be indicated. For some behavior, the position and/or orientation of somesegment or the center of mass are more important than individual joint angle. For
examples, in picking-up motion, the goal position of the hand is more important than
the joint angles along the arm. On the other hand, in walking motion, the horizontal
position of the pelvis and the center of mass are important to balance the upper body.
These constraints are indicated by a user for individual motion. The spatial ororiental trajectories are given by the user or automatically generated from the joint
angular trajectories. The dynamic controller uses these trajectories as the secondary
constraints. For a desired motion, motion capture data and any motion sequencecreated by other animation systems are used as an input to our system. To facilitate
the use of existing motion sequences, motion synthesis [3][22][25] and editing

5[17][6][10][23] techniques are available. Our system relies on these previous works.
Their detailed description is beyond the scope of this paper.

4

Extensions of the Newton-Euler Method

The dynamic controller uses inverse dynamics for tracking control. Given current
joint angles and angular velocities, and desired angular accelerations, inverse
dynamics computes the joint torques required to realize the angular accelerations.
The inverse dynamics problem is well defined, and systematic and efficient methods
exist for serial articulated structures. Of the two popular formulations(Newton-Euler and Lagrangian), we adopted the Newton-Euler method. It costs
O(n) where n is the number of DOFs of the figure. The Newton-Euler method
computes the torques through two stages: outward iteration and inward iteration.
During the outward iteration, accelerations of each segment are propagated from theroot to the end-effectors. Then, during the inward iteration, the joint torques arepropagated from the end-effectors to the root. For details of this algorithm, we refer
the reader to [8]. In the following discussion of this section, we assume that thereader is familiar with the Newton-Euler method.
4.1 Closed-loop Problem in Multiple Supports

Because the inverse dynamics methods are designed forserial structures, it cannot handle a closed loop structure
in a multiple support phase of human-like articulatedamfigures (e.g. Fig. 3). The difficulty of this problem comesfrom the indeterminacy of how much force and torque2
are distributed to each supporting segment. Ko andBadler [13] introduce an approximate solution for thel0
double support phase during walking motion. They
distribute the force and torque from the upper body ton0each leg in proportion to the relative distances between
the projection of the center of mass and the ankles.
However, their approximation does not consider the
dynamics of motion. Although there are more general
methods that treat a closed loop as a non-closed loopwith distance constraints [19], the methods need to solve
01
an optimization problem and are not suitable forreal-time systems. Therefore, we extend the Ko and Fig. 3: A multiple supports
Badler method for general postures and introduce phase.
dynamics.
When a number of segments make contact with the ground, we calculate thesupporting ratio α i for each segment i:

§
l · §
l ·
α i = ¨¨ a m ⋅ i ¸¸ ⋅ ¨¨ ni ⋅ i ¸¸(2)
li ¹ ©
li ¹©
where ni is a normal vector of the ground or the contact plane, li is a vector from thecontact point to the center of mass, and a m is a vector of acceleration of the centerof mass (Fig. 4). Equation (2) represents the inner product of a m and ni along the6direction of li. After determining the supporting ratio, we use the Newton-Euler
method distributing the force and torque proportional to a m [13]. To perform theiterations, we chose one segment whose supporting ratio is the largest on a common
path, while other segments on the path are neglected. Our solution has the advantagethat it is easily computed and reflects the dynamics of the movement of the center ofmass. For example, in Fig. 3, when the figure moves toward right side, theacceleration of the center of mass works on the right side, then the supporting ratioof the left hand becomes large.
4.2 Computing Rotational Acceleration around the Minimum-moment Point

In physics-based simulation systems for articulated figures, it is difficult to generate
an animation in which a figure falls over. To simulate such a motion, we should
determine the supporting point around where the figure rotates. For example, when afigure falls to right side, the supporting point exists on the right side of the right foot.
When a figure falls toward the back side, the supporting point exists at the heel ofthe foot. The supporting point is the minimum-moment point (MMP) at which themoment applied from the supporting segment to the ground is minimum. However,
it is difficult to determine where the MPP exists on the supporting surface. Most
physics-based systems [12] use a fixed MMP (e.g. middle of sole). In addition, forstable control, they sometimes introduce constraints that do not allow a figure to fall
down and perform a forward dynamics. Therefore they cannot simulate falling down
motions except on in which the direction of the figures falls over is already known
and the supporting points are given. Ko and Badler [13] approximate the position of
the MMP during human walking by means of monotonically advancing function
from the heel to the tip of the toe. Aydin and Nakajima [1] propose an approximate
solution to compute the position of the MMP. However, their algorithm
approximates the foot to a rectangle and does not consider rotation around the
supporting point.
We extend the Newton-Euler method to compute a MMP and rotational
acceleration around the MMP. First, we consider only one main support segment.
When a number of segments make contact with the ground, we chose one segment
whose supporting ratio is the largest. Generally, when a figure maintains balance,
there is a zero-moment point (ZMP) at which the moment applied from the support
segment to the ground is zero [13]. Therefore, we are able to determine whether arotation arises or not, by whether or not the ZMP exists on the supporting segment.
To compute the position of the ZMP, we extent the Newton-Euler method andperform additional computations. Given joint angular accelerations, theNewton-Euler method computes joint torques, and the force and moment that is
applied to the supporting segment from the previous joint (in Fig. 4, n1 and f 1
are the moment and the force, respectively). The moment n0 applied from the
supporting segment to the ground isn0 = n1 + l 01 × f 1 + l g × f g .

(3)

On assumption that the surface of the ground is flat, the vector l01 that makes
n0 zero is computed and then the position of the ZMP is determined. At this time, if
the ZMP exists inside of the supporting surface between the supporting segment andthe ground, no rotation arises (Fig. 4 (a)). On the other hand, if the ZMP exists

7

(b)

(a)
n1
fg

n1

l01

lg

f1

fg

f1
ZMP (MMP)

lg
n0

f0

l01

MMP

ZMP

f0

f0

Fig. 4: Posture and forces applied to the supporting segment in (a) a balanced posture and(b) a unbalanced posture.

outside of the surface, a rotation will arise around the MMP that is the closest point
to the ZMP (Fig. 4(b)). To determine this condition, our system uses the geometry of
the figure and contact information that is reported by the collision handler. The
rotational acceleration around the MMP is calculated by n0 and the moment ofinertia of all of the segments. Then the rotation acceleration is applied except whenother supporting segments prevent the rotation. For example, in Fig. 3, although the
MMP exist on the left edge of the left foot, rotation is prevented by the left hand.
Using our algorithm, given joint angular accelerations, the dynamic simulator
computes a rotation around a supporting point and generates an animation such thata figure falls over.

5

Motion Tracking Control

The dynamic controller computes joint angular accelerations on each simulation step.
This algorithm uses a pseudo-inverse matrix method that is a common technique forinverse kinematics[9]. First, initial angular accelerations are calculated for each
DOF to track a desired motion. Then, the angular accelerations are modified in orderto satisfy multiple constraints. As primary constraints, the angular accelerations are
restricted to be achieved only by available muscle strength. As secondary constraints,
the angular accelerations are modified to control the spatial accelerations of thecenter of mass and the end effectors. Secondary constraints are applied under thecondition that they exert no influence on the primary constraints. The remainder ofthis section describes each step of the algorithm in detail.
5.1 Determining Initial Angular Accelerations

The initial angular accelerations θinitial are calculated from the differences between
the current state θ curr ,θcurr (n dimensional vectors of joint angles and angularvelocities for each DOF) and the next state θ desired ,θdesired of the desired motion:θinitial = α θa + (1 − α )θv(4)

where θa is an angular acceleration meant to achieve the desired angle θ desired on
next step, θv is one to achieve the desired angular velocity θdesired . These values
are calculated for each DOF respectively using a differential equation that is used in
the dynamic simulation. Since we cannot satisfy both values, we use a blend
parameter α (currently, we use α = 0.2 ). On this step, a proportional control is8

used. However, unlike PD controllers, because all terms are computed in angularacceleration space, stabilization is ensured. If all following constraints are satisfiedin θinitial , it is used directly as the output.
5.2 Available Torque Constraints

As the primary constraints, the dynamic controller uses the range of available torqueof each DOF. The range of available torque (two vectors of maximum and minimum
torques) is obtained from the muscle strength curves described in section 3.1 as:

(

)

(

)

τ max = f 1 θ curr , θcurr , τ min = f 2 θ curr , θcurr .

(5)

The torques to drive the initial accelerations are calculated by the inverse dynamics
equation:()

τ initial = H (θ curr )θinitial + C θ curr ,θcurr + G (θ curr ) + K (θ curr )F

(

(6)

)

where H (θ curr ) represents the moment of inertia, and C θ curr ,θcurr , G (θ curr ) , andK (θ curr )F represent the influence on the torques due to coriolis and centrifugal,
gravity, and external force, respectively.
If the joint torque of some DOF exceeds its available range, the joint angularaccelerations of all DOFs are modified in order to reduce the torque of the DOFs.
Let ∆τ ′ be a k dimension vector represents the variations of toques for k DOFs
that exceed the available torque range. Comparing τ initial with τ max and τ min , thevariations of the joint torques ∆τ ′ are calculated:∆τ ′ = S 1 ∆τ

if τ initial ,i > τ max,i­τ max,i − τ initial ,i∆τ j = ®
¯τ min,i − τ initial ,iif τ initial ,i < τ min,i(7)

where S1 is a selection matrix from n dimensional vector ∆τ to k dimensional
vector ∆τ ′ , ∆θ is the n dimensional vector that is the variation of the angularaccelerations. The relation between ∆τ ′ (k dimension) and ∆θ′ (n dimension,n ≥ k ) is∆τ ′ = H ′ ∆θ′(8)

where H ′ is a k × n sub-matrix of the moment of inertia H (θ curr ) . The matrix
H ′ depends on only θ curr , the current joint angles. The H ′ is computed by using
the existing methods [26]. It costs O(n2) computational time. To solve the redundantlinier system (8), a pseudo-inverse matrix is used:∆θ′ = H ′ + ∆τ ′ + ( I − H ′ + H ′) x

(9)

(

(10)

H ′ + = H ′t H ′ H ′t)

−1

where H ′+ is the pseudo-inverse matrix of H ′ and x is a optimization vector thatis used in the secondary constraints. The first term in equation (9) is the least square
solution that minimizes the normal of ∆θ . The second term is the homogeneous
portion of the solution, partially performing a desired optimization x under theexact achievement of the primary constraints. This is achieved with the projection to9the null space of the linear transformation. A more detailed discussions of thepseudo-inverse matrix method can be found in [9][3][6].
To modify the initial angular accelerations θinitial in order to satisfy the primaryconstraints, using the first term of equation (9), the first variation of angularaccelerations ∆θ1 are calculated.

∆θ1 = H ′+ ∆τ ′(11)

However, the equations (8), (9), (10) and (11) take into account only k DOFs whose
torques exceed the available range. Therefore the modified angular accelerations∆θ1 may exceed the available range of the torques besides k DOFs. When suchexcess is present, the exceeded DOFs are added to the group of k DOFs,+
then H ′ and ∆θ1 are recomputed. This step is repeated until the primaryconstraints are satisfied. Because the moment of inertia matrix is regular [26][8], theanswer ∆θ1 is consistently achieved.
5.3 Spatial Constrains of the Center of Mass and End-Effectors

To control the positions and orientations of end-effecters, inverse kinetimatics
methods [9][6] are available. In addition, to control both them and the position of thecenter of the mass, we use an inverse kinetics method [3][1], witch employs a
pseudo-inverse matrix technique. The inverse kinetics equation is
+

(

)

+

+

x = J g ∆g + I − J g ⋅ J g J e ∆e(12)

where ∆g is the variation of the position of the center of mass, and ∆ e iscomposed of the variations of the position and/or orientation of the end-effectors.
The dimensions of ∆g and ∆e are depend on the constraints specified by a user
for individual motion. For example, when the horizontal position of the center ofmass and the spatial position of both hands are indicated, the dimension of ∆g will
be two and the dimension of ∆e will be six. J g is the Jacobian matrix thatprojects the variation of angles to the variation of the position of the center of mass.
In addition, J e projects the variation of angles to the variation of the position
and/or orientation of the end-effectors.
∆e = J e ∆θ .

∆g = J g ∆θ(13)

The desired variations of the position of the center of mass ∆g and the variationsof the position and/or orientation of the end-effectors ∆e are determined calculatedby the equationginitial = J g θinitial + ∆θ1()∆g = gdesired − ginitial

(14)

(

)

∆e = edesired − einitial(15)

einitial = J g θinitial + ∆θ1

where ginitial and einitial are the acceleration of the center of mass and theend-effectors, respectively, that are achieved by the joint angular accelerations
which are modified by the primary constraints. gdesired and edesired are thedesired spatial accelerations that are determined by the desired motion. The second

10variation of the angular accelerations ∆θ2 is calculated as()∆θ2 = I − H ′′+ S 2 H x(16)

where S 2 is a mapping matrix that selects only l dimensional vector from H x as
in equation (7), and I is the identity matrix. We note that l DOFs are selectedindependently of k DOFs used in the first modification. Then, as in equation (11),we repeat this computation until the torque of any DOF that is required to ∆θ2
does not exceed its available range.
5.4 Determining Output Angular Accelerations

Finally, the output joint angular accelerations θoutput are calculated by the equationθoutput = θinitial + ∆θ1 + ∆θ2 .

(17)

The full description of (17) is also expressed as

{

(

)

}

θoutput = θinitial + H ′+ S1∆τ + ( I − H ′′+ S 2 H ) J g + ∆g + I − J g + ⋅ J g J e + ∆e .

(18)This algorithm controls angular accelerations in order to achieve a resulting motionthat is close to the desired motion, while considering the influence of all DOFs,
within the available torque ranges, in the similar fashion as do human beings. As aresult, naturally and realistically changing motions are produced.

6

Experiments and Discussion

In this section, we show an experimental result generated by applying our method toa lifting task (Fig. 5, see Appendix). In the three animations, each figure tracks thesame motion, while it has a different weight load (1kg, 3kg and 4kg, respectively)
with its right hand. In this example, we used a keyframe motion sequence that is
made by a hand as a desired motion. The lifting motion consists of the trajectories of
all the DOFs and additional spatial constraints of the center of mass and the righthand. Our system works normally at 10fps on a PC (PentiumIII 600MHz Dual). The
duration between steps of this simulation is 1/30 second.
In the first animation (1kg), because the constraints are satisfied throughout theentire motion, the original motion is almost exactly tracked. In the second animation,
because of the load’s relatively heavy weight (3kg), the torques at the DOFs along
the right arm exceed the available ranges. In the tracking control, to reduce the stressof DOFs along the right arm, other DOFs (knee, back, etc) that have strongly
influence the right arm are forced to move slightly maintaining its balance. As aresult, resulting motion close to the original motion is produced, but with anattendant jerking motion. In the last example, because of the heavy load, the back of
the figure is forced to bend, and it then lost its balance and falls down. By producing
various motions in response to the stress on right arm, the efficacy of our methods isdemonstrated.
For this experiment, we used hand-tuned strength function. In our future research,
we will plan to clarify the differences of motions produced under different skeletaland strength conditions (e.g. man, woman and child) using actual human strength

11

data. In addition, because measuring human strength is a difficult work, we intend toconstruct the strength modes from a set of captured motion data.
The dynamic controller presented in this paper is intended only to trace a desired
motion. However, in human movements, when it is very difficult to realize a desired
motion, more sophisticated control schemes are sometimes used. For example, whena figure loses its balance, it does not only control the center of mass, but also
attempts to maintain its balance by moving its foots. If a figure cannot lift a loadusing only one hand, it automatically uses its other hand. In the future, we are going
to introduce such advanced behavior to the current low-level tracking controller.

7

Conclusion

In this paper, we present a physics-based animation system for articulated figures. A
new control algorithm to track an original motion using dynamic simulation is
introduced. The physics-based approach is not currently adopted in many real-time
applications since physics-based systems are difficult to construct and control.
However, on-line applications such as electric games or virtual environments haveserious limitations in that they cannot generate figures whose motions dynamicallychange in response to an environment in real-time. We believe that our approach will
break through these limitations. Even though a more sophisticated control scheme
might be required, the dynamic simulation and tracking control techniques that we
present in this paper will form a fundamental basis for further development in thearea of real-time computer animation.

Acknowledgements
A part of this research is supported by the Grant-in-Aid for Scientific Research(10308012) from the Ministry of Education, Science, Sports and Culture of Japan.

References
[1]
[2]
[3]

[4]
[5]
[6]
[7]
[8]

Yahya Aydin, and Masayuki Nakajima, “Realistic Articulated Character Positioning andBalance Control in Interactive Environments”, Proceedings of Computer Animation ’99,
pp.160-168, 1999.
Ronan Boulic, Pascal Be'cheiraz, Luc Emering, and Daniel Thalmann, “Integration of
Motion Control Techniques for Virtual Human and Avatar Real-Time Animation”,
Proceedings of the ACM International Symposium VRST'97, pp 111-118, 1997.
Ronan Boulic, Ramon Mas-Sanso, and Daniel Thalmann, “Complex Character
Positioning Based on a Compatible Flow Model of Multiple Supports”, IEEE
Transactions on Visualization and Computer Graphics, Vol.3, No.3, pp.245-261,
July-September 1997.
Armin Bruderlin, and Thomas W. Calvert, “Goal-Directed, Dynamic Animation of
Human Walking”, Computer Graphics (SIGGRAPH ’89 Proceedings), Vol.23, No.3,
pp.233-242, 1989.
Armin Bruderlin, and Lance Williams, “Motion Signal Processing”, SIGGRAPH ’95
Proceedings, pp.97-104, 1995.
Kwang-Jin Choi, and Hyeong-Seok Ko, “On-line Motion Retargetting”, Proceedings ofInternational Pacific Graphics, 1999.
Michael F. Cohen, “Interactive Spacetime Control for Animation”, Computer Graphics(SIGGRAPH ’92 Proceedings), Vol.26, No.2, pp.293-302, 1992.
Roy Featherstone, “Robot Dynamics Algorithms”, Kluwer, 1987.

12

[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]

[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]

Michael Girard, and A. A. Maciejewski, “Computational Modeling for the Computer
Animation of Legged Figures”, Computer Graphics (SIGGRAPH ‘85 Proceedings),
Vol.19, No.3, pp.263-270, 1985.
Michael Gleicher, “Retargetting Motion to New Characters”, SIGGRAPH ‘98
Proceedings, pp.33-42, 1998.
Jessica K. Hodgins, and Nancy S. Pollard, “Adapting Simulated Behaviors For New
Characters”, SIGGRAPH ’97 Proceedings, pp.153-162, 1997.
Jessica K. Hodgins, Wayne L. Wooten. David. C. Brogan, and James F. O’Brien,“Animating Human Athletes”, SIGGRAPH ’95 Proceedings, pp.71-78, 1995.
Hyeongseok Ko, and Norman I. Badler, “Animating Human Locomotion with Inverse
Dynamics”, IEEE Computer Graphics and Applications, Vol.16, No.2, pp.50-59, 1996.
Evangelos Kokkevis, Dimitris Metaxas, and Norman I. Badler, “User-Controlled
Physics-Based Animation for Articulated Figures”, Proceedings of Computer
Animation '96, 1996.
Taku Komura, Yoshihisa Shinagawa, and Tosiyasu L. Kunii, “A Muscle-based
Feed-forward Controller of the Human Body”, Computer Graphics Forum (Proceedingsof Eurographics ’97), Vol.16, No.3, pp.165-176, 1997.
Joseph Laszlo, Michiel van de Pann, and Eugene Fiume, “Limit Cycle Control and Its
Application to the Animation of Balancing and Walking”, SIGGRAPH ’96 Proceedings,
pp.155-162, 1996.
Jehee Lee, and Sung Youg Shin, “A Hierarchical Approach to Interactive Motion
Editing for Human-like Figures”, SIGGRAPH ’99 Proceedings, pp.39-48, 1999.
Philip Lee, Susanna Wei, Jianmin Zhao, and Norman I. Badler, “Strength Guided
Motion”, Computer Graphics (SIGGRAPH ’90 Proceedings), Vol.24, No.3, pp.253-262,
1990.
J. Y. X. Luh, and Yuan-Fang Zheng, “Computation of Input Generalized Forces for
Robots with Closed Kinematic Chain Mechanisms”, IEEE Journal of Robotics andAutomation, Vol. RA-1, No. 2, pp.95-103, 1985.
Matthew Moore, and James Wilhelms, “Collision Detection and Response for
Computer Animation”, Computer Graphics (SIGGRAPH ’88 Proceedings), Vol.22,
No.3, pp.289-298, 1988.
Abhilash K. Pandya, James C. Maida, Ann M. Aldridge, Scott M. Hasson, and Barbara
J. Woodford, “The Validation of a Human Force Model To Predict Dynamic Forces
Resulting From Multi-Joint Motions”, Technical Report 3206, NASA, Houston, Texas,
1992.
Ken Perlin, and Athomas Goldberg, “Improv: A System for Scripting Interactive Actors
in Virtual Worlds”, SIGGRAPH ’96 Proceedings, pp.205-216, 1996.
Zoran Popović, and Andrew Witkin, “Physically Based Motion Transformation”,
SIGGRAPH ’99 Proceedings, pp.11-20, 1999.
Marc H. Raibert, and Jessica K. Hodgins, “Animation of Dynamic Legged
Locomotion”, Computer Graphics (SIGGRAPH ’91 Proceedings), Vol.25, No.4,
pp.349-358, 1991.
Charles Rose, Brian Guenter, Bobby Bodenheimer, and Michael F. Cohen, “Efficient
Generation of Motion Transitions using Spacetime Constraints”, SIGGRAPH ’95
Proceedings, pp.147-154, 1995.
M. W. Walker, and D. E. Orin, “Efficient Dynamic Computer Simulation of Robotic
Mechanisms”, Journal of Dynamic Systems, Measurement, and Control, Vol.104,
pp.205-211, September 1982.
Douglas J. Wiley, and James K. Hahn, “Interpolation Synthesis for Articulated Figure
Motion”, IEEE Computer Graphics and Applications, Vol.17, No.6, pp.39-45, 1997.
Andrew Witkin, and Michael Kass, “Spacetime Constraints”, Computer Graphics(SIGGRAPH ’88 Proceedings), Vol.22, No.4, pp.159-168, 1988.
Andrew Witkin, and Zoran Popović, “Motion Warping”, SIGGRAPH ’95 Proceedings,
pp.105-108, 1995.
Victor B. Zordan, and Jessica K. Hodgins, “Tracking and Modifying Upper-body
Human Motion Data with Dynamic Simulation”, Computer Animation and
Simulation ’99 (Proceedings of Eurographics Workshop on Animation and Simulation`99), 1999.

13

(a)

(b)

(c)

Simulated lifting up task. In each animation, the figure tracks the same lifting
motion while having a different weight load ((a)1kg, (b)3kg, and (c)5kg) (Oshita andMakinouchi, Fig. 5).

14