Collision Detection and Analysis in A Physically Based Simulation
Collision Detection and Analysis in A Physically Based Simulation
Purdue e-Pubs
1991
George Vanĕček
Report Number:
91-055
Bouma, William J. and Vanĕček, George, "Collision Detection and Analysis in a Physically Based
Simulation" (1991). Department of Computer Science Technical Reports. Paper 895.
https://docs.lib.purdue.edu/cstech/895
This document has been made available through Purdue e-Pubs, a service of the Purdue University Libraries.
Please contact epubs@purdue.edu for additional information.
COLLISION DTECTION AND
ANALYSIS IN A PHYSICALLY
BASED SIMULATION
William J. nouma
George Vanecek, Jr.
CSD-TR-9I-QSS
July 1991
Collision Detection and Analysis
in a Physically Based Simulation*
William J. Bouma and George Vanecek Jr.
Abstract
We consider the geometric support in detecting and analyzing collisions
and contact between arbitrarily shaped polyhedral objects for a physically
based simulation. The contact detection is formulated as a static collision-
detection problem in three-dimensional space. We address both robustness
and efficiency of the problem, and show how both can be achieved by using
the brep-index data structure.
1 Introduction
-To appear in the Second Eurographics Workshop on Animation and Simulation, Sept 1-2,
1991, Vienna Austria.
duration. As an example, Figure 2 shows 'two rings in temporary contact with
the top ring fixed in space and the bottom ring sliding-the contact points and
normals are indicated by the vectors. In the case of collision, the generated equa-
tions describe an instantaneous velocity change between the impacting objects.
In the case of temporary contact, new equations Me added to the existing set
which. constrain the relative motion of the objects at the contacting points. For
the geometric system to compute contact normals meaningful to the dynamics,
it is not sufficient to use only the topology local to each contact point. As long
as the dimension of the contacting regions do not change, the normals should not
vary significantly between subsequent time steps of the simulation. This kind of
reasoning can only be done if the geometric system is informed at each time step
about the temporary contacts currently in effect.
For practical considerations, both the geometric and the dynamics systems
use finite-arithmetic computations. Consequently, inaccuracies occur in the sim-
ulations. In the geometric system, exact contact cannot be determined. In the
dynamics system, perturbations appear in solving the equations of motion. These
numerical errors may lead to a difference in the states of the two systems. Meth-
ods of avoiding or undoing such inconsistent states must be provided. For exam-
ple, the dynamics system may consider two objects in contact while the geometric
system detects and reports the objects interpenetrating. The geometric system,
knowing where the temporary contacts occur, thus needs to tolerate such penetra-
tions. The dynamics system may use the report of penetration at a constrained
contact to apply a force to correct the penetrating point back to the object's
surface. An interpenetration at a point where there is no temporary contact oc-
curs as a result of using too large a time interval in the simulation loop. In this
case, the geometric modeler must determine the depth of interpenetration and
the previous time step must be recomputed with a smaller time step to determine
the contact within a given tolerance of the object's surface.
We consider the use of model-driven rigid-body dynamics simulators, such as
Newton [9], that have an event handling mechanism for dealing with discontinu-
ities in the simulation, and which use a geometric modeling system as a server.
For such simulators, the contact detection and analysis can be solved as a static
problem at each time step. From a geometrical point of view, the contact detec-
tion and analysis problem can be reduced to a line/solid classification problem
for which there is an efficient and robust solution. The use of complex geo-
metrical shapes and the massive number of contact queries and analyses suggests
using specialized solid representations that facilitate and optimize such geometric
computations.
In this paper, we describe the interface between the Newton dynamics sim-
ulation system [17, 18] and Protosolid [27], a geometric modeling system. This
work extends the system introduced in [28]. We are mainly concerned here with
analyzing the geometry in a meaningful way for the dynamics. Enough of the
2
Figure 1: Eight frames of the tumbling rings.
3
Figure 2: Two rings in temporary contact with the contact points and normals
indicated by the vectors. The top ring is fixed while the bottom ring is free to
move.
dynamics are presented to show why we handle the geometry a certain way, but
the details of handling the dynamics of temporary contact will be discussed in
a forthcoming paper. We begin this paper by reviewing the related work in ap-
plying geometry to dynamics simulations. In Section 3 we outline the dynamics
engine of the Newton system. We state our problem precisely in Section 4, and in
Sections 5 and 6 we propose a model of contact and analyze the geometric issues
in temporary contact. Handling exceptional events is discussed in Section 7. We
show in Section 8 that temporal coherence is necessary to get the normals right.
Once contact is understood, we give the interface between the dynamics module
and the geometric module in Section 9. In Section 10 the geometric contact anal-
ysis performed by the geometric module is outlined. The work presented in this
paper is then discussed in the last section.
2 Related Work
The collision detection problem is formulated either as a static checking for inter-
penetration given the positions and orientation at a given time or as a dynamic
problem over a given time interval given the motions of the objects as functions
of time.
There are many different algorithms for detecting or avoiding collisions of
convex objects. Chazelle and Dobkin [7] show that when two convex polyhedra
with p and q faces are given in a suitable representation, their penetration can
4
be determined in O(log3 n ) time, where n = p + q. Since computing the intersec-
tion of two convex polyhedra requires O(n log n) time [23], it is computationally
less expensive to find only whether two convex objects intersect (i.e., collide or
interpenetrate) rather than to compute the entire nonregularized intersection.
Gilbert, Johnson and Keerthi show a linear time algorithm for computing the
shortest distance between two nonintersecting convex objects [12, 13]. When the
objects interpenetrate, Cameron and Culley [5] further provide a measure of the
depth of interpenetration to yield information on how deeply the two objects
dug in. The efficient evaluations of the distance functions are useful in motion
planning and collision avoidance problems. An alternate approach to collision
free motion planning problem is characterized by Lozano--Perez and Wesley [16].
They consider fixed objects around which a single moving object has to navigate.
An unobstructed path can be obtained by considering the moving object as a
single point and by considering each fixed object as being enclosed in a forbidden
region of sufficient size. As long as the point does not penetrate a forbidden
region a collision does not occur.
The methods presented above are based on static collision detection. Several
researchers have investigated the problem based on the object's configuration
space. For prespecified trajectories consisting of a sequence of individual trans-
lations and rotations about an arbitrary axis, Boyse [3) gives an algorithm for
detecting and analyzing collisions between a moving and a stationary object. His
algorithm works for nonconvex objects represented as B-reps. Canny [6] gives an
algorithm for computing the exact points of collision for objects that are simul-
taneously translating and rotating. It can deal with any path in configuration
space that can be expressed as a polynomial function of time. The objects are
assumed to be a union of overlapping convex objects.
Obtaining a local geometrical analysis of simple collisions was presented by
Hahn [14J, and Moore and Wilhelms [21].
To guarantee that no collisions are missed when using the static analysis
approach, several researchers have investigated the four-dimensional time-space
problem [22, 51.
Recently, Baraff [2] showed how to analyze collisions for objects with curved-
surfaces, and take geometric coherence into account.
3 Background
Most of the previous research has focused on correctly formulating collision forces,
and in dealing with the dynamics given a simplified geometric analysis of the con-
tacts. Relatively little work has been done in fully analyzing the geometric contact
of complex objects within physically-based simulation systems. To understand
the problem from the dynamics point of view we begin by briefly reviewing the
dynamics engine of the Newton simulation system. For full detail we refer the
5
reader to Cremer [8].
With a high-level definition language, an initial configuration is given which
defines primitive and composite objects, their positions and orientations, various
constraints, and local and global properties. The specification of the initial con-
figuration is parsed and yields a set of ordinary differential equations of motion,
one for each object. These are based on the Newton-Euler equations. They are
mr F
Jw+w x Jw T,
where m is the mass, T is the acceleration of the center of mass, J is the 3-by-3
inertia matrix, F and T are the force and torque on the object, and w and w are
the angular velocity and acceleration. Optionally, the motion of two objects may
be constrained in relation to each other by the introduction of various hinges, such
as the ball and socket hinge, and the pin hinge. Each hinge specification is given
as a set of positional constraint equations. These equations are differentiated
twice to yield an acceleration constraint which is then added to the set of motion
equations. For example, a ball and socket hinge, imposes the constraint that a
specific point on the first object remains in contact with a specific point on the
second. The corresponding equation is
where rj is the position of the ith object's center of mass, and c; is the vector
from the center of mass to the location of the hinge point. The second derivative
yields the motion equation
The addition of the hinge equation results in an unknown force between the two
objects at the contact point. The force X is thus added to the motion equations
for object i and subtracted from those of object j. The new equations for object
i become
mirj Fi+X
JjWj + Wi X JjWj T j + Cj xX.
Newton has a wide variety of hinges to restrict the various degrees of freedom
between objects. Hinge equations can be added to or subtracted from the set of
motion equations while a simulation is in progress. We call such events creating
and breaking hinges.
During a simulation an object in motion may come into contact with some
other object. At a contact point p, a nonnegative contact velocity in the normal
direction n indicates that the objects are either in contact or are separatingj a
6
negative contact velocity indicates that a collision is taking place. The surface
normal is determined from the geometry as described in Section 10. The velocity
of a point P = T + c on an object is given by
iJ = r+wxc.
The relative velocity of the contact points in the contact normal direction is
(PI - p,) . n.
Newton models rigid body impact as an instantaneous change in velocity. The
velocity of a colliding point before impact is written ;,a,
and after iJA. Because
we are dealing here with frictionless systems, each scalar impulse force, fi, occurs
in the contact normal direction. For one object the impact equations are
m.(rA_rB ) flnl + hn2 + + fnnn
J. (w A _wB) _ ftPI X nl + + fnPn X nn'
Each collision also contributes to the system of equations one scalar equation of
the form
. A
( Pi - Pi. A) . n = -e ( Pi. B - Pi. B) . n.
Here ri/ is the velocity of the collision point on object j before impact, and e is
the coefficient of restitution, which allows for kinetic energy loss in the impact.
Note that hinges transmit impulsive forces during impact. Equations and terms
are added to the set of impact equations in a manner similar to that of adding a
hinge to the basic motion equations.
Nonimpact contact occurs when the contact velocity in the contact normal
direction is zero. Newton models this situation by creating a hinge between the
objects which describes the geometry of the contact. For instance a vertex of one
object touching a face of the other causes the creation of a point-an-plane hinge
constraint. This constraint aUows the vertex to slide freely within the face, but
does not allow it to penetrate the solid. The acceleration constraint (assuming
the plane is on object j) is
(p,-pj).n+2(p,-pj)'(Wjxn) = O.
This equation should actually be an inequality since the point must be allowed
to leave the plane in a direction away from the contacting object. Instead, New-
ton models inequality constraints by combining equality constraints with event
handling. For a hinge with an inequality constraint, if any noncompressive force
is detected at the hinge point, the hinge must break. The hinge could also be
broken by the vertex geometrically leaving the face (e.g. Figure 5(b)). We call
such hinges that come and go during the simulation temporary hinges. Occur-
rences of new contact or changes in temporary contact are known as exceptional
events because they cause discontinuities in the simulation.
7
The simulation loop iterates time. At each time t, a complete and consistent
state is obtained which consists of all the objects' positions, orientations, veloci-
ties and accelerations as well as the current temporary hinges. The current state
is saved and a new state for time t + .6..t is computed, for a prespecified time
interval .6..t. The simulator then checks if any exceptional events have occurred
during the .6..t interval. If an event is detected, the system isolates the time of
the event occurrence to within a specified tolerance, computes the state of the
complete system at that time, and effects any changes to the state caused by the
event. The iteration proceeds with t set to the time of the currently established
state.
4 Problem Assumptions
To detect and handle the exceptional events we have to check the spatial inter-
actions of two arbitrarily shaped objects very frequently. To do this, we make
several assumptions.
The first assumption is that the objects are rigid-bodies. The second assump-
tion is that the objects are polyhedral with arbitrary genus. The use of rigid
bodies with planar faces simplifies and improves the efficiency of the geomet-
ric module. The objects are assumed to be given as boundary representations
(B-reps). A preprocessing step attaches a multi-dimensional partitioning tree
structure to each B-rep to serve as a volumetric index into the B-rep. This
combined structure is called the b-rep index [26J. Its use greatly improves the
efficiency of the collision detection and analysis algorithm.
The third assumption is that there is no friction. A direct consequence of
this assumption is that each contact region can be modeled by a finite number
of points of the convex hull.
The fourth assumption is that the relative motion of an object during the
interval .6..t is sufficiently small so that the collision of two impacting objects is
detected. Without this assumption, the space-time sweep of all objects would
need to be modeled in four-dimensional space to guarantee that all collisions are
detected.
5 Describing Contact
We are given two non penetrating objects that are in contact. Since the ob-
jects need not be convex, the area of contact can be geometrically quite complex.
Fortunately, it is sufficient to describe the intersection by a finite number of point
contacts. For example, the points along a face/edge contact may be modeled by
the endpoints of the edge; the points in a face/face contact may be similarly
modeled by the vertex points of the enclosing convex hull of the face/face in-
8
B
...,
AnB
A
tersection [10]. Here x/V indicates the topological entity x of solid Sj in contact
with topological entity y of solid Sj, where the topological entities are the vertices,
edges and faces.
Definition 1 Let Si and Sj be two solids that touch but do not penetrate each
other's interior. Their intersection can be desc7'ibed in terms of the intersecting
topological entities by
Definition 2 The set of contact regions is n ij C 'Iij such that for every unique
pair R t and R 2 in nij)
9
regions is contained in a plane. A aD region can result from either vertex/vertex,
vertex/face, face/vertex, vertex/edge, edge/vertex, or transversal edge/edge con-
tacts. A ID region can result from either edge/face, face/edge or from collinear
and overlapping edge/edge contacts. A 2D region can only result from a face/face
contact. We treat the regions of 'R jj as closed sets so that a region contains its
boundary. For example, a face/face contact region includes all the bordering ver-
tices and edges. This also means that two adjacent regions may share a boundary
line or a boundary point. Thus, although each region has a single contact normal
or impulse, a single point may have several normals and impulses. A region may
also be disconnected. For instance, a face/face contact region may consist of
several disjoint components.
6 Temporary Contact
The situation arises that objects may be in contact but not be colliding. For
a given contact region this occurs when the relative velocities at the points of
contact lie within the plane of contact. In order to keep two objects apart at
the various contact regions, the dynamics module creates a temporary hinge
between the objects. The hinge adds kinematic constraints to hold the objects
from interpenetrating.
A temporary hinge over a set of contact regions is kept for as long as there is
a compressive force at some point in one of the regions and the relative velocity
at that point is in the contact plane of that region. When no such point exists
for any region of the temporary hinge, it is removed, since this means that the
objects are, or will be, moving apart.
Since we are dealing with polyhedral objects the types of contact are limited
to aD, ID, or 2D regions on a plane, aD or ID regions on an line, or OD regions
on points. The nD region on plane contact is modeled by n + 1 point on plane
constraints. The edge contact is modeled differently according to the geometry.
If the OD contact is a result of two edges crossing it is modeled as an edge-edge
constraint, else we model it using point-plane. The difference between the two
constraints is that the normal is given by the contact plane in the point-plane
case, and it is given by the cross product of the two edges in the edge-edge case.
Each contact is described as a point on object Si and a point on object Sj which
lie on their boundaries, so the two points need not necessarily be coincident in
global object space. Contact is detected when the object boundaries are within
a small prespecified distance of each other. Temporary contacts, however, are
allowed to interpenetrate by a distance in excess of the collision tolerance. This
is necessary, as the integration of the motion equations results in small positional
drifts. Refer to Figure 4. vVhen the dynamics module declares a temporary
hinge over a given contact region, the geometric module ignores any penetrations
occuring at that region and returns each of its contacts c as two separate points
10
c-
~.c
s;
,
s· VsPi J
, ,,,77,,7nn;;;;n/7777
Figure 4: Allowed positional drift during the temporary contact of two objects.
Pei and Pej, one on8j and one on Sj. To prevent the points from penetrating too
deeply due to numerical error I a correction force is added to pull the penetrating
point towards the contact plane.
(al (b)
Scenario 1. Two objects touch and remain in contact as shown in Figure 5(a).
The dynamics module establishes a temporary hinge. (i.e., time td. The con-
tacts are reported to the geometric module which during the life of the temporary
contact allows small interpenetrations (i.e., time t 2 ). The dynamic module cor-
rects the interpenetrations as necessary. Now consider the result if the object
11
on top gains an upward velocity and begins to separate from the object on the
bottom (i.e., time t 3 of (a)), or it simply slides off an edge (i.e., (b)). Since at
this time the two objects are interpenetrating by more than the collision toler-
ance (as indicated by the dashed lines), the breaking of the temporary contact
causes an interpenetration to be detected and reported. Attempting to resolve
the interpenetration, the dynamics system searches for the time of first contact
in the interval between t 2 and t 3 • Since the interpenetration already existed at
t 2 , no such initial contact can be found.
A
n»7l77nnnnn7777»
(aJ (b)
7 Exceptional Events
Accurate detection and handling of contact change events is essential for realistic
simulation. To this end, the dynamics module maintains a list of the temporary
hinges in effect at the last time step. The contact points for the regions over
which a temporary hinge applies are separated into three categories:
Active These are the support contacts currently associated with the tempo-
rary hinge. They are obtained initially by solving a quadratic program-
ming problem over aU the contact points of the regions associated with the
hinge [10, 20]. All active contacts exert compressive forces in the contact-
normal direction.
Inactive These are the remaining zero-velocity contacts which are not used in
formulating the temporary hinge equations. The active and inactive con-
tacts may change during the life of a temporary hinge.
12
Dead These are the contacts which have positive velocity in the normal direction.
These cannot be used in formulating the hinge equations. However, they
still persist due to geometric contact or interpenetration.
Events must be handled in the order in which they occur. Thus, upon dis-
covery that there has been an event during a time step the simulator goes into
a loop to isolate the set of events which occur first. The dynamics modeler then
resolves the events in the following order:
Figure 7: An active contact point breaks and a new support regIOn (shown
shaded) is created.
1. The way Type 1 contacts are handled depends on the geometry. If other
live contacts remain [or the hinge region the support changes to a different
set of contacts (see Figure 7) or the hinge breaks completely. In the later
case if a penetration persists as a remnant of the old hinge drifting, a new
contact point is created between different entities (see Figure 6(b)).
3. While there exist negative velocity contacts, formulate and solve collision
equations.
13
4. The contacts with positive normal acceleration become inactive.
After performing these steps, all contacts have normal velocities which are
either positive or zero. Any zero velocity contacts which belong to an existing
hinge are added to the inactive contact set of the hinge. Any positive velocity
contacts which belong to an existing hinge are moved from the inactive to the
dead contact set. New hinges are created for any zero velocity contacts which do
not find a match to an existing hinge. For each temporary hinge, the new set of
active contacts are found, and the equations re-established.
8 Temporal Coherence
Consider a block sliding at time t as shown in Figure 8. Each vertex/face contact
on the bottom face of the block has an associated contact normal, namely the
perpendicular to the plane of the face, n. At time t + b.t, an edge of the block
comes into contact with one of the supports. The OD region is a vertex/edge
contact which according to the formulation given in Section 10 has a different
normal from that of the point/plane. In the example the new normal turns out
to be in the exact opposite direction to the velocity of the block. Thus there will
be a collision at the point causing the block to bounce in an unnatural manner.
In general, this problem will occur whenever a contact normal n for a sliding
object is chosen such that nil < 0, where 'U is the relative velocity vector at the
contact point of that normal. Since the point on edge normal is really indeter-
minate, in this case, it is beneficial to choose the normal such that nv >= O.
However, this clearly would not be the correct normal to choose in all cases, (for
example if there really was impact at the point). There is no purely geometric
formulation for vertex/edge or vertex/vertex that will provide normals that give
natural behavior in all situations. The formulas in Section 10 provide very real-
istic behavior in the case of impact. For temporary contact we rely instead on
coherence between time steps.
In the state just prior to the vertex/edge contact, the contact was vertex/face,
and nt was perpendicular to the contact velocity. Since the normal of the ver-
tex/edge is indeterminate, we can just let it be the same as it was in the previous
state. How we determine that this new vertex/edge contact actually corresponds
to the vertex/face contact in the previous time step will be explained in the fol-
lowing sections. Given that this can be done, the problem is solved, if there is pre-
vious state information. If the simulation begins with objects having vertex/edge
contacts, so that we must rely solely on the geometric formulas to compute the
normals, those objects may exhibit strange behavior.
14
velocity v velocity
t t + tlt
9 Information Exchange
Consider the consistent state at time t. The dynamics module has for each object
8i its position, Ti, the orientation , qi, the velocity Ti, and the angular velocity Wi,
along with the various properties and constraints. Geometrically, some of these
objects may be instances of the same solid. That is , for a brick wall the geometric
module needs to model only one solid representing a brick. Nevertheless, the
dynamics module knows nothing about the objects' boundaries or extents. This
information is kept by the geometric module which maintains a unique set of solids
each of which may be referenced by several objects. In addition, it maintains a
table, T, that keeps information about the current temporary contact regions:
(s;,sj,M;,Mj,C;j) if i < j
'C.
1 i }- - ~.
}' if)· >'~
{
undefined if i = j
for 1 ::; i,i ::; m where m is the number of objects, Cij ~ R ij is the set of tem-
porary contact regions, and M i and M j are transformation matrices as described
below. The objects are created so that their centers of mass are at the origin of
their corresponding local coordinate spaces.
Now consider time t + 6.t. The dynamics module computes a tentative state
for time t + 6.t and gives the new transformational matrices M I , ..• , M n for
the objects to the geometric module. Each M i is a 4x4 transformation matrix
that maps solid 8j from its local frame to the global reference frame. Given
the transformation matrices, the geometric module then checks for collisions and
contacts. If any two objects interpenetrate, further geometric processing for time
t+6.t ceases and the interpenetration is reported to the dynamics module. When
no interpenetration due to missed collisions is detected, the collision and contact
regions, R, are determined and given to the dynamics module. For each pair of
touching objects 8; and Sj, the regions in 7(,ij are given in the following form. For
15
q,
q,
Figure 9: Classifying edge e with endpoints (qll q2] with respect to a solid.
where nj is the contact normal in the local space of Sj, m is the number of contact
points reported, and for each contact point, Pik is the point of contact on .9i, Pik
is the point of contact on Sj 1 and lk is a unique contact point label. During the
life of a given contact region, each unique contact point maintains a unique label
to differentiate it from other contact points in the region. This is necessary in
recognizing the exceptional events of an active contact point breaking or a new
contact point appearing.
For transversal edge/edge contact regions, the reported geometry is
16
the edges of M ji 8j against s;. With each edge, we associate the edge classification
so that after all the edges are classified we can analyze the contacts and resolve
interpenetrations.
Consider classifying edge e of Figure 9 in relation to the shown solid. This
can be done both efficiently and robustly using the Brep-index data structure-
a multidimensional spatial partitioning tree added as an index to a boundary
representation [19]. Given that the edge spans the closed interval between points
ql and Q2, the classification of the edge, d(e), from left to right as shown in the
figure is
[(ql' out), out, (ellPt), in, (ft,P2), out, (e2,p3)' h, (VllP4), out, (q2' out)],
with the pair (x,p) corresponding to the edge's penetration of entity x at point
p. The edge classification tells us not only whether the edge is inside, outside or
on the boundary, it tells us where the other solid is penetrated and through what
entity.
II,(x)
,
j
breakins
. v,
allowed ,tolliding
I,.
After all the edges of both objects are classified, we identify all the inter-
penetrating edges, and determine whether an in classification is a result of a
deteriorating temporary contact or a collision. Given an entity x of s, we define
the incident entities of x as the set of entities that bound x-for a face, they
are the bordering edges and vertices, for an edge they are the two vertices, and
for a vertex, there are none. We also define the adjacent entities of x as the
set of entities that are adjacent to but not incident to x. Thus, x may have
adjacent edges and faces, but not vertices. Let x/y E 'Rij and assume w.l.o.g.
that dim(x) .::; dim(y) and that for simplicity of explanation, x is contained com-
pletely in y. Then x and all the incident entities of x may lie inside the other
solid just below y, as well as the beginning portions of the adjacent entities of x.
Since however, we need to check if a temporary contact region is colliding, the
interpenetrations are allowed as long as the projection of x onto the plane (or
line) of y, lly(x), is in y (see Figure 10). If any point of lly(x) is inside, then x is
colliding. If it is outside, it or some of its contact points broke. In either case, the
17
time that I1 y(x) first came into contact with the boundary of y (i.e, the edges or
vertices of the face, or the vertices of the edge) must be found. This formulation
is straight forward since only a single contact region is involved. However, when
two contact regions become adjacent at a line, or more than two adjacent regions
become adjacent at a point, the simple projection of x onto y is insufficient to
handle the interpenetrations. Consider the two examples in Figure 11 for which
the two contact regions are {Xl/Yl,XZ/YZ}. The indicated interpenetrations are
valid, however, if each region is treated independently, then collisions would be
inferred. It follows from the example, that the sector between Yl and yz must be
included as an allowed region of penetration.
" ]1 [
~ ~",
....
"
x~
," 'f I
,,
,
,
Given that either no edges interpenetrate or the ones that do are part of some
temporary contact region, we determine the regions of the new nij, and for each
region we compute the contact point pairs. Since there is no friction, it suffices
to collect only the points on the convex hull of the region. Since 2D regions need
not be convex, the computed points may not aU lie on the convex hull and so
we throw out the points that are on the inside of the convex hull. This requires
O(nlogn) time for n points as described in Preparata's book [23]. First, lets
consider how the regions are obtained. The OD regions are relatively simple to
find. They result from either a vertex/x, for any x, or a transversal edge/edge
contact. For the first case, each adjacent edge e of the vertex v must have the
following classification sequence
cl(eJ = [(x,p),,,j,
where (x,p) indicates that v touches x and Q' is the remaining irrelevant classi-
fication sequence of e. The pair of points for this v/x contact are p/q, where p
is the point coincident with v as returned by cl(e), and q is the point computed
by projecting p onto the entity x. That is, if x is a face with the support plane
satisfying the equation q . n - d = 0, we have
18
For x an edge with the support line satisfying the equation q = ql + tv, we have
q = q, + (v· (p - q,»)V.
If the OD contact region is the result of a transversal edge/edge contact, then
the two edges el/ e2 must have the classification sequences
cl(e) = [(in,pIl,in,(y,p,),,,,j,
where x and z can be either the same as y or any entity incident to y, and a and
(3 may be possibly empty irrelevant sequences. This ID region has two contact
points, one at p on x and the other at q on z.
The 2D regions are harder to compute than the OD and the ID regions.
Conceptually, each 2D region is enclosed by a sequence of alternating ID and
OD regions. Therefore, we trace around each region and connect the bordering
subregions.
Finally, for each new region x/y in 'R.;j we compute the contact normal n(x,y).
For example, Figure 12 shows the three regions, the contact points and the contact
normals for the objects in Figure 3. Regions that persist from previous time step
retain their previous normals. By convention, a contact normal points away from
8j. For a OD region, the normal vectors are computed as follows,
v-+v·
(v; XVi) X II' 'II
Vi + Vj
~+-Vi
ej _
X e'
lie; + v,lI '
19
n(ei,Vj) -n(VjJ ej)
n(ej, eJ :::;: ±ei x ej, for transversal edges
n(v;,f;) n(j;)
n(j;, Vj) -n(jj)
where v is the unit normal that averages out all the face normals adjacent to
vertex v, e is an edge direction, e is the average of the faces adjacent to edge
e, and n(J) is the normal of the support plane of face f. A normal is in the
direction away from the object. Consider now that one of the two objects, say
8j, is a nonmanifold, and the OD contact region is on a nonmanifold entity x,
either a vertex, or an edge. The average of the adjacent faces, (e.g., v or e)
may result in a null vector. This results when the manifold components of the
nonmanifold at that point cancel out each other. We have to treat the different
manifold components separately. Given that x of 8j is a nonmanifold entity with
ki manifold components, and y of 8j is a nonmanifold entity with kj manifold
components, we obtain Jqk j number of contact normals which we then average.
Figure 12: Contact points and their normals (arrows) are shown for the example
of Figure 3.
(j -g'II'
9j - 9i
for collinear edges
n(e;,/j) n(jj)
n(j" ej) -n(j,)
where 9k is the average of the two adjacent face normals of ek. The ID region of
Figure 12 is an example of the collinear edge/edge contact. For a 2D region the
normal is simply
n(j;,fj) = n(jj).
11 Discussion
In the early part of 1989, we interfaced the Newton dynamics system to Proto-
Solid. Since both systems were written in Common Lisp and ran on the Symbolics
20
lisp machine, their interface was a simple exercise in establishing communication
between two remote modules. At first, no collisions were allowed. The geomet-
ric module WaB used to simply create complex objects and to compute the maBS
properties. In 1990, we enhanced ProtoSolid with the multidimensional parti-
tioning tree structures to facilitate the detection and analysis of collisions. The
structure haB proven to be sufficiently efficient to support frequent requests for
the static analysis of collisions. Although collisions were straight forward, tem-
porary contact was not. Numerical errors in the integration of the equations of
motion could not keep two constrained objects for slightly interpenetrating. This
kept creating disagreement between the two modules which caused the simula-
tion to break. Our early attempts at conditionally altering the contact tolerances
to keep the interpenetrating in check did not work. FUrthermore, we could not
recognize special events such as colliding temporary contact regions and breaking
geometric contact during interpenetrations. It WaB then that we decided that
contact had to be analyzed in terms of the contact regions and not in terms of
individual contact points as we were doing before.
At this point we realize that the way we are doing the dynamics of contact
is probably not the best way. Allowing drift and applying correctional forces at
contact points may not always produce the results we want. There are methods to
satisfy constraint equations to any given accuracy [15J. But those methods have
not been applied to systems which account for the the geometry and create new
constraints during simulation. We are currently investigating the incorporation
of such a method into our system.
Acknowlegements
We have corresponded frequently with Jim Cremer in Cornell on the contact
problem. Jim's knowledge and insight into the problem helped us greatly in the
writting of this paper. This work was supported by NSF Grant CCR 86-19817.
References
[II B. Arnaldi and G. Dumont and G. Hegron. "Animation of Physical
Systems from Geometric, Kinematic and Dynamic Models." Proceed-
ings of the IFfP TC 5/WG 5.10 Working Conference on Modeling in
Computer Graphics, Tokyo Japan, April 1991.
21
[3] J. W. Boyse. "Interference Detection Among Solids and Surfaces,"
Communications of the ACM 22:3-9, Januaxy 1979.
[12] E..G. Gilbert and D. W. Jobnson and S. S. Keerthi. "A fast procedure
for computing the distance between complex objects in three space."
IEEE Journal of Robotics and Automation, 4:193-203, April 1988.
(13) E..G. Gilbert and Cop. Foo. "Computing the Distance between Gen-
eral Convex Objects in Three-Dimensional Space" ,IEEE Transactions
on Robotics and Automation, 6(1):53-61, February 1990.
[14] J. K. Hahn. "Realistic Animation of Rigid Bodies," Proceedings of
ACM SIGGRAPH '88, 22(4):299-308, August 1988.
22
[15] E. J. Haug. Computer-Aided I{inematics and Dynamics of i\!Iechanical
Systems, Volume I: Basic Methods, Allyn and Bacon, Boston MA,
1989.
23
[27] G. Vanecek, Jr., ProtoSolid: An inside look, Purdue University, De-
partment of Computer Science, CER-89-26 , November 1989.
[28] G. Vanecek, Jr., "A Data Structure for Analyzing Collisions of Mov-
ing Objects," IEEE Proceedings of the Twenty-Fourth Annual Hawaii
International Conference on System Sciences, Kailua-Kona Hawaii,
Vol 1:671-680, January 199I.
24