Professional Documents
Culture Documents
1 Introduction
A distributed simulation, within the context of virtual laboratories is an impor-
tant part of networked virtual environment that allows the user to interact with
a graphical representation of the laboratory, in such a manner that all process-
ing occurrs in a distributed fashion within all the computers participating in the
networked graphics simulation, rather than using a client-server model for the
simulation.
A networked virtual environment is a software system where multiple users
interact in realtime, wherever these users may be, including geographically dif-
ferent places [1]. Typically, each user has access to a computer that provides a
graphical interface for the virtual world. These environments give the user the
appearance of realism by using 3D graphics and sounds among other things. A
virtual environment has the following characteristics:
1. A sense of shared space: all users have the illusion of being in the same
space, whether a closed environment such as a room or an open environment
such as a field, and all participants have the same approximate conditions
for interaction.
2. A shared sense of presence: every user inside the environment must be repre-
sented within the simulation by some entity, which may or not be an avatar.
3. A sense of shared time: every user must be capable of observing the actions
of other users in the environment when they are happening.
4. A comunication mechanism: beyond visualization of the environment, it is
helpful that users can comunicate using voice or text.
5. A sharing mechanism: users can share information or manipulate every ob-
ject in the simulation
To implement all the necessary characteristics that make such a system a
virtual environment, several sub-systems must be integrated into a single apli-
cation:
1. Distributed systems that must contain all the necesary resources for com-
munications of the networked application, so that data loss is avoided and
concurrency and synchronization happens.
2. Graphical systems that are realistic enough to sustain the illusion of inmer-
sion yet simple enough to preserve realtime interaction
3. Interactive systems that must process input data in realtime so that each user
percieves his environment as existing locally, that is, every user must have a
direct and immediate impact so that the illusion of inmersion is preserved.
Also, he must percieve the actions of other users as if they were local.
One important issue is visual consistency for all users accessing the same virtual
environment. This must be mantained by sending enough information through
the network to insure consistency yet limited enough that the interaction speed
is mantained. Convergence and prediction algorithms are used for this effect.
Prediction allows us to calculate locally from the present state of elements
within the simulation, by sending only periodic updates (usually position and
speed at a given time). One must remember, however, that predictions are esti-
mates, and may destroy consistency. When this happens, convergence algorithms
are used to restore in a smooth fashion this consistency.
We briefly describe architectures that have been previously developed for dis-
tributed virtual environments.
3 Proposed model
1. Participants
– Interact with their local entities to update their proxies.
– Iteract with the proxies to update de simulation views.
– Publish the simulation
– Define and listen to port (multicast mode)
– Listen to the port to update simulation registry
– Create proxies of local entities in the different registered simulations
2. Proxy entities
– Contain the geometry
– Contain the behaviours activated by the local entity.
– Contain a copy of the state information contained in the local entity
– Contain a reference to the local entity of which they are proxies
3. Local enitities
– Contain state information
– Contain a list of references to their proxies
– Activate behaviours in their proxies
– Update state information in their proxies,
– Contain the interfaces that allow interaction with other entities or pro-
cesses.
4 Applications
Using OODVR as implemented at the end of 2000 (using RMI’s and simulation
using Java3D) a Virtual Robotics Lab consisting of a manufacturing cell with 4
robot arms and several static elements was implemented. In order to integrate
all the elements of the simulated cell, as well as future expandability, a general
methodology was followed.
The development of the simulation required:
Architecture SIMNET DIS HLA WITS OODVR
Distributed Y Y Y N(client/server) Y
Portable N Y Y Y Y
General purpose N N Y N Y
Multicast N Y (from 1997) Y N Y
Prediction & Convergence Y Y Y N Y
Autonomous nodes Y Y Y N Y
Open source N Y since 1997 N N Y
Modular N N N N Y
Regions N N Y N Y
Implementation C++ several C++, Java Java Java
1. Geometric modeling of the robots. Any software can be used. The OBJ or
VRML 2.0 formats are supported by Java3D.
2. Programming the manufacturing cell elements. A general class “robot” that
can move all degrees of freedom of each robot was developed.
3. Integrating all the robots to the simulation. The manufacturing cell with
all its elements is assembled from these. Using OODVR any participant can
provide a simulation element at runtime.
The cell modeled is one that exists at ITESM-CEM, and it consists of 4
robots: Mitsubishi MoveMaster, Unimation Puma 560, Amatrol Jupiter XL and
Amatrol AS/RS. The virtual environment simulates these robots as well as other
static and dynamic elements.
The virtual lab was implemented under OODVR using the following pack-
ages:
1. oodvr.test.universe: Contains the classes Universe and UniverseApplet, which
define the 3D world where the cell elements will exist.
2. oodvr.test.universe.robot: The robot class is generic and allows us to build
any robots in Java3D by using the following parameters:
– Name of robot
– Number of DOFs
– Number of Links
– Name of geometry file (obj or vrml)
– An array of the order of the links
– Scale, Rotation and Translation of the robot in world coordinates
– An array of pivot points that will move the DOFs
– An array relating links and DOFs
The classes RobotI, Robot Stub and ThreadMethod are included for com-
munication and remote methods. Each robot also has its own control panel.
3. Package oodvr.test.universe.ambiente: This includes the class Celda that in
turn calls a number of classes defining the other dynamic and static elements
of the cell.
In mid 2001 the simulation was improved by implementing a simple interface
permitting the user take control of more than one robot at a time. This required
implementing a simple exclusion mechanism so that only one user controls a
given robot at a time. See figure 2.
1. We can now use multicast to connect the different users to the simulation
without requiring each of them to know the IPs of all the participants. Only
the multicast address and port are now required.
2. OODVR was re-structured so that adding new robots or other objects to
the simulation is simplified. Objects can have remote behaviours. The new
structure of the packages is as follows:
– oodvr.active: All classes for objects with remote behaviours, their con-
trols
– oodvr.passive: All classes for static objects.
– oodvr.device: All classes for input devices.
– oodvr.universe: Classes for the user’s universe management
– oodvr.window: Classes for the GUI.
3. With the restructuring of the package, an interface allowing each user to
specify which entities it will contribute to the simulation. Before this change,
each user had to write a small java program indicating the entities it would
contribute.
4. A module permitting the incorporation of devices such as joysticks was also
added. We are trying to make this a standard interface for more devices.
5 Conclusions
References
1. SINGHAL, S. et. al., Networked Virtual Enviroments, Design and Implementation,
ACM Press, 1999.
2. CANTERBURY, M., An Automated Approach to Distributed Interactive Simula-
tion (DIS) Protocol Entity Development, NPS Thesis, 1995.
3. U.S. Department of Defense, High-Level Architecture Rules, Version 1.3, February,
1998.
4. BACKES, P. G. et. al., The Web Interface for Telescience (WITS), Proceedings of
the IEEE International Conference on Robotics and Automation, 1997
5. SHOFFNER, M. Hamier D. Java Network Programming: a complete guide to
networking, streams and distributed computing. Manning, 1999.
6. COUCH, J. Java 2 Networking. Mc Graw Hill, Java masters series, 1999.
7. Hardt, J. and White, K., Distributed Interactive Simulation (DIS), EEL 4781 Com-
puter Networks, University of Central Florida, Fall 1998.
8. Locke, J., An Introduction to the Internet Networking Environment and SIM-
NET/DIS, Computer Science Department, Naval Postgraduate School, 1995.
9. Distributed Interactive Simulation DIS-Java-VRML Working Group, Naval Post-
graduate School, http://www.web3D.org/WorkingGroups/vrtp/dis-java-vrml/dis-
java-vrml.html
10. High Level Architecture (HLA), Defense Modeling and Simulation Office,
http://hla.dmso.mil