Applications
Parallel Impulse Based Dynamic Simulation has numerous applications in
a wide variety of areas. Several of the most obvious areas are
discussed below.
Rendering Physically Accurate Dynamical Systems
Most rendering systems that contain models of dynamic elements
currently use a variety of ad hoc methods for maintaining reasonably
accurate physical results. Most of these fall into the category of
constraint based simulation. Objects in the simulation are
"controlled" by a set of constraints. Often only one of these
constrains is valid at a time. For example, a ball rolling up a ramp
will adhere first to a rolling constraint, followed by a ballistic
constraint as it leaves the ramp. Next, it will impact with some
surface and bounce, each of these also having their own constrains.
It would be useful if a designer could describe models of the various
objects that are to be rendered. Then, with the help of Impulse, the
proper dynamic behavior of the system would result. For example,
assume that a designer has just constructed a series of common desktop
items such as books, pens, etc. If the designer wanted to "throw"
another book onto the desk and achieve a realistic resulting scene,
Impulse could be used. Impulse could also be used to provide the
designer with all of the intermediate images in the scene to produce a
physically accurate movie of the dynamic behavior involved in such a
system.
Rendering Physical Reality
Often the issue is not just to produce reasonably accurate physical
results but to determine the effects of some dynamical system over
time. Imagine again, the same common desktop with various items as
described above. By simply providing the correct shaking in the
scene, the simulation of the results of an earthquake can be observed.
Clearly, a truly realistic earthquake simulation would require a more
intricate simulator that can correctly model cracking and breaking of
objects. However, even without such additions, Impulse is currently
capable of producing a wide variety of simulations. Some of these
simulations fall into a category in which they can be considered
tests. That is, the simulator is able to test the result of
particular dynamic affect on a scene of objects.
Virtual Reality, Shared, and Interactive Environments
Virtual words involve virtual objects. However, the sense of realism
is utmost of importance in a VR system. The user must feel as if they
are truly immersed in another world. If virtual objects are pushed,
dropped, or thrown around in the VR world, they should often behave as
the user would expect they would in the real world. Impulse can be
used to model this dynamic behavior feeding back the result to the VR
system.
Parts Feeder Design
One typically method for re-orienting parts in a known final configuration
is using a vibratory bowl feeder. In such a feeder system parts walk
up a bowl along a helical track. Small features along the track cause
undesirable part poses to be rejected by falling off of the track.
The result is that parts reaching the top of the bowl are correctly
oriented.
Imagine a similar system but with the helical track stretched out
lengthwise. In this case gates and other features will cause parts
sliding down the track to be re-oriented.
In both of these cases Impulse would allow designers of part feeders
to simulate virtual parts running through one of many possible virtual
feeder. Problems in the feeder design that either result in jammed
parts or a high probability of undesirable final part poses can be
changed and re-simulated with Impulse. This allows for cheaper feeder
debugging as well as a more robust final feeder design.
Parts Design for Robotics and Industrial Automation
When a part is being designed to be assembled by an automated robotic
system, it is invaluable to know various properties of a part from its
design. For example, if the part will be dropping from a ledge onto
conveyor belt it would be useful to know what stable poses the part
may assume and with what probabilities. This is useful for
determining what type of robotic arm, the number of degrees of freedom
(DOF) of the arm, the gripper, etc are needed to assembly they system.
Typically, this is done at the design stage using ad hoc rules that
the designer has acquired through years of trial and error or time
consuming physical experiments. With Impulse, if the part does not
conform to some set of constraints, hence making it impossible to
correctly assemble on the existing equipment, a part change can take
place and simulations run without a physical model ever being made.
In addition these tests can be run in a fraction of the time in which
one would need to perform physical experiments which of course require
a physical model of the part to be produced.
With an accurate impulse based dynamic simulator, the part can be
tested in a matter of minutes in a virtual mock up of the automated
assembly plant. Not only can the final pose of a part be tabulated
but also multiple part simulations with data taken on part
singulation, where and how many parts have a final configuration such
that they are not touching any other parts. The result is that
changes in part design can occur before any physical model of the part
has been produced. It can be known quickly and inexpensively whether
a proposed change in the automation system will affect any of the
sub-assembly parts. It is hoped that the resulting parts designed for
assembly with such a system will be more robust during automation changes
since they can be quickly checked for proper pose distribution in
several different automation systems in which they may find
themselves.
Below are tests of an actual part designed for assembly by an Adept robot. Actual
experimental results were taken by observing the final pose of the
object after successive drops by various researchers at Adept. A
quasi-static model approach developed by Ken Goldberg was also
used to predict pose distribution. Finally, Impulse performed
several thousand drop tests in under an hour and matched experimental
results quite well.
The physical accuracy of Impulse is extremely important in cases like
these where it is being used as a design tool for a real-life physical
system. Karl Sims, designer of the a system for evolving virtual
creatures also comments on the importance of the accuracy of physical
simulations in his paper, "Evolving Virtual Creatures,"
"It is important that physical simulation be reasonably
accurate when optimizing for creatures that can move within it. Any
bugs that allow energy leaks from non-conservation, or even round off
errors, will inevitably be discovered and exploited by the evolving
creatures."
Agents and Virtual Creatures
In the SIGGRAPH
1994 at the
Technical Papers Track Karl Sims of Thinking Machines Corporation
presented a paper entitled "Evolving Virtual
Creatures". In this paper he describes a genetic algorithm and
various other methods for creating virtual creatures that move and
behave in simulated three-dimensional physical worlds. One of the
results of his work is a truly amazing
movie featuring the evolved creatures and comments
about the movie. It's interesting to note that a Connection
Machine CM-5 was used for the evolution simulation. Here Sims uses a
similar impulse based simulation approach with a simplified collision
impulse model. However, he does handle multiple articulated connected
bodies in the simulation, which is only now in development for Impulse.
Addition discussion on the behavioral aspects of the creatures can be
found in "Evolving 3D
Morphology and Behavior by Competition" which appeared in
Artificial Life in 1994. More info on the project can be found
at Thinking Machines
Corporation.
Eric Paulos /
paulos@robotics.eecs.berkeley.edu /
10 May 1995