INTRODUCTION: V-Labâ
Environment:
In order to fully utilize and implement learning control algorithms
in the control of multi-agent robotics, an environment for simulation
has to be first created. V-Labâ,
Virtual Laboratory, is an environment for simulation of autonomous agents.
It incorporates various models of the environment as well as the agent
being trained.
One of the important aspects of V-Labâ
simulation environment is the layered architecture
for distributed simulation.
The design of distributed simulations frequently become large and complex.
Applying a layered pattern to the design of a simulation breaks the
simulation into several interconnected layers, each of which becomes
more manageable than the simulation as a whole. |
|
|
|
| Fig1. Layered Architecture | |
| The
V-Labâ
environment consists of 4 distinct software layers, as illustrated in
Fig. 1. The
foundation of the simulation consists of OS and network code needed
to operate the network hardware, which in turn allows machines to communicate
over a network. Using this functionality of Common Object Request Broker
Architecture (CORBA),
acts to solve the problem of how to use the network to connect different
portions of simulation together. While CORBA provides a useful tool
for software interconnection, it does not provide the architecture needed
to arrange components of a simulation into discrete structures. Using
Discrete Even System Specification (DEVS),
V-Labâ
defines an appropriate structure in which elements are organized for
distributed agent based simulation. It separates main components into
different categories and defines the logical structure in which they
communicate. |
|
| V-Labâ Simulation Cycle: | |
|
|
| Fig 2.Simulation Cycle |
|
| The Vlab Cycle shows a possible set of interactions between the models. It is divided into phases. The first phase simply consists of SimMan, the simulation manager, asking the sensors to update their information. During the second phase, the sensor(s) request information from other models and the phase ends with SimMan relaying this. | |
| Proposed
V-Lab Architecture consists of six high-level models: SimEnv
and SimMan, Dynamic, Terrain, Agent, Control and Physics. |
|
|
|
| Fig 3.Architecture |
|
|
The
modeling and simulation group, headed by Prof. Zeigler, at the Arizona
Center for Integrative Modeling and Simulation
(ACIMS),
University of Arizona, developed the Discrete Event System Specification
(DEVS). It was created to provide a robust and nonspecific environment
for modeling and simulation projects. The DEVS environment provides
classes (currently for Java and C++) that encapsulate all the functionality
that is needed to create a module which is fully capable of being connected
to other modules in a meaningful relationship, regardless of which machines
these modules are located on. Layered on top of DEVS environment are
the models that a developer would create to compose a simulation. Several
useful links and tutorials
on DEVS can be found at the end of this page. |
|
| |
|
| Fig 4. Devs Class Hierarchy | |
| This shows the DEVS class hierarchy. Everything derives from the entity class. The branch on the right starts with the container class and represents a common ancestor for familiar things like set, bag, and queue. These are general-purpose containers, except for message. Message is DEVS-specific and is supposed to contain events given to a model. Since many events can occur simultaneously, a bag suits this idea well. The other main branch, starting with devs, shows the two basic types of models: atomic and coupled. | |
| |
|
| Fig 5. Devs Simulation Cycle | |
| The diagram on the left shows the Control Flow of DEVS. A canonical situation would be to create the top-level model, initialize it, and start off the simulation with an injected event (message). The simulation would then proceed with one or more DEVS cycles. This is expanded on the right. Basically, the simulation figures what models should send and receive events at the present time. It does this recursively since coupled models can contain other coupled models which in turn can contain other models, and so forth. Then the events are processed by the models that receive them. The events can be external, handled by deltext(), or internal, handled by deltint(). If both types of events happen at the same time, the confluent function (deltcon()) determines the order (this can be specified by the user of course). | |
| LEARNING
SCHEMES: CORBA
is the acronym for Common
Object Request Broker
Architecture, OMG's open, vendor-independent architecture and infrastructure
that computer applications use to work together over networks. Using
the standard protocol IIOP, a CORBA-based program from any vendor, on
almost any computer, operating system, programming language, and network,
can inter-operate with a CORBA-based program from the same or another
vendor, on almost any other computer, operating system, programming
language, and network. CORBA
provides the core functionality of software intercommunication in distributed
simulation using V-Lab. Different modules of simulation in V-LAB on
different machines communicate using generic distributed architecture
such as CORBA. The
Graphic Use Interface (GUI) for the simulation would look like this |
|
|
|
| Fig 6: Graphic User Interface. | |
| The
Main simulation area would include 3-D simulation environment panel
developed in JAVA-3D. ·
INTRODUCTION TO DEVS
(Book).(zip files) ·
SLA. · CORBA. |
|
| Contact Team Members: | |
| John Kitzinger | bejmk@yahoo.com |
| Prasanna H Sridhar | prasanna@cs.unm.edu |
| Yan Wang | yanwang@unm.edu |
| Jingyu Liu | jingyu@unm.edu |
| Eric JingYi Dong | jydong@unm.edu |
| Aleksandar Tatomirovic | wizard@cs.unm.edu |