SOFTWARE TEAM

INTRODUCTION:

  The Software team of the V-Lab project will be involved in simulation and modeling of Multi-agent robotic systems. Specifically, they will create Virtual Laboratory (V-Labâ) using Discrete Event System Specification (DEVS) and Learning schemes like Stochastic Learning Automata (SLA) for ACE- Rover designed by hardware group of the project.  The V-Lab architecture will not be confined to robotic environment but will also have wide-range of applications in multi-agent systems like designing parts of human body (Bio-Medical Applications).


This is a snapshot of a simulation movie (please click on the thumbnail to get a larger image).

Here is a PowerPoint presentation of the Simman.

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

DEVS:

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.  

Click to view a larger image
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.

Click to view a larger image
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:

SLA: 

Control theory including optimal control theory requires perfect information or a priori information of the system to be controlled.  In most practical problems, this information may not be available.  Hence, in these situations, as an alternative approach, the use of learning control algorithms becomes necessary.  Learning control  is of a particular interest in distributed robotics.  In most cases the robots are sent into an environment of which little knowledge is available, i.e., contaminated depository. The robots are then required to learn their environment and perform their task with minimal error.  An important tool in learning control is SLA.  The basic operation of SLA is as follows. At any given time, the SLA based on its internal states performs an action.  Due to that action, the environment (also referred to as a teacher) responds with a value between 0 and 1.  A value of zero corresponds to full reward and a value of one corresponds to full penalty.  Based on this feedback from the environment, SLA updates the probabilities of choosing a certain state.  This process is repeated until the average penalty is minimized.

CORBA:

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.

  GUI FOR SIMULATION:

 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.

USEFUL LINKS:

 ·        DEVS JAVA Reference Guide.

·        INTRODUCTION TO DEVS (Book).(zip files)

·        DEV S Tutorial.

·        FUZZY LOGIC.

·        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