Difference between revisions of "Eclipse projects"
(→MASON) |
|||
(28 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Structure == | == Structure == | ||
− | The following diagram shows the project structure of the ARS simulation environment | + | The following diagram shows the project structure of the ARS simulation environment, where the arrows represent the dependencies. |
− | [[File:Eclipse-projects.png|800px]] | + | [[File:Eclipse-projects.png|800px|center]] |
==Projects== | ==Projects== | ||
=== Simulation === | === Simulation === | ||
− | + | This project is the starting point for every simulation. Its job is to set up the simulation environment using the Mason Multiagent Simulation Framework, manage the creation of the entities and assign all the properties according to the scenario files. | |
+ | A simulation is started by running the class clsSimulatorMain. This can be achieved either by calling clsSimulatorMain directly with the appropriate parameters, or by running the scenario selector (clsScenarioSelector). | ||
+ | The actual setup is performed by the module clsSimplePropertyLoader. This class reads and analyzes the scenario file, and manages the creation and linking of all entities, decision units and memories. | ||
=== MASON === | === MASON === | ||
Line 17: | Line 19: | ||
ARS-related objects. The entities within this project are | ARS-related objects. The entities within this project are | ||
+ | <center> | ||
{| border="1" cellpadding="10" cellspacing="0" | {| border="1" cellpadding="10" cellspacing="0" | ||
|clsApple | |clsApple | ||
Line 50: | Line 53: | ||
|clsWallVertical | |clsWallVertical | ||
|} | |} | ||
+ | </center> | ||
+ | |||
All the entities in this project are part of the [[Entity_Hierarchy|entity hierarchy]]. The base classes of the hierarchy are found in the package entities.base | All the entities in this project are part of the [[Entity_Hierarchy|entity hierarchy]]. The base classes of the hierarchy are found in the package entities.base | ||
− | in the ARSIN project. | + | in the EntityBase-Body-ARSIN project. |
=== EntityBase-Body-ARSIN === | === EntityBase-Body-ARSIN === | ||
− | + | This project has two functions. First of all it provides the base modules and data structures for all objects that can be simulated. These modules are the entity base (abstract entitiys - see [[Entity_Hierarchy|entity hierarchy]]), the bodies (and all its interfaces, sensors, actuators and attributes) and miscellaneous enums and tools. | |
+ | Secondly it contains the ARSIN and its related entities such as clsSmartExcrement and clsSpeech. | ||
=== DecisionUnitInterface === | === DecisionUnitInterface === | ||
− | + | This project provides the basic data structures and classes for the decision units ([[#DecisionUnits|DecisionUnits]] and [[#AlternativeDecisionUnits|AlternativeDecisionUnits]]) on the one hand, and the interfaces to use them on the other hand. It implements the abstract class clsBaseDecisionUnit on which all decision units set up. Moreover it accommodates miscellaneous enums and tools that are needed mostly by DecisionUnits. | |
=== DecisionUnits === | === DecisionUnits === | ||
− | + | DecisionUnits represents the actual ARS-engine and thereby implements the [[ARSModell|psychoanalytical model]] of the human mind. It provides the decision unit via the class clsPsychoAnalysis, which extends clsBaseDecisionUnit. | |
=== ARSMemory === | === ARSMemory === | ||
− | + | This project implements the classes and packages that form the memory of the ARS agent. The memory is the foundation of the ARSIN's decisions. Since the decision unit is the "consumer" of the memory, the memory access interfaces remain in the project DecisionUnits. During the simulation setup, a memory-instance is created and assigned to a decision unit which is then linked to the ARSIN. | |
=== AlternativeDecisionUnits === | === AlternativeDecisionUnits === | ||
− | + | AlternativeDecisionUnits implements all decision units that are not based on the ARS model. They are located in a dedicated project in order to seperate them from the psychoanalytic du's. Some examples are dumbmind, reactive, remotecontrol and rulebased. | |
=== DecisionUnitMasonInspectors === | === DecisionUnitMasonInspectors === | ||
− | + | This project contains the MASON inspectors for the decision units. Inspectors are a MASON toolkit, that allow to observe attributes of the simulated objects during simulation. Values that can be observed with a DecisionUnitMasonInspector are e.g. emotions (anxiety, anger, elation, joy etc.). | |
=== BodyEntityMasonInspectors === | === BodyEntityMasonInspectors === | ||
− | + | Same as [[#DecisionUnitMasonInspectors|DecisionUnitMasonInspectors]] except that it is used to display attributes of the entities and their bodys such as health, energy, position, id etc. | |
=== GeneralTools === | === GeneralTools === | ||
+ | GeneralTools comprises miscellaneous tools that are of general nature and are used by several modules. An example is the class clsGetARSPath that returns the directory file system paths of some resources and projects. |
Latest revision as of 16:15, 27 January 2015
Contents
Structure
The following diagram shows the project structure of the ARS simulation environment, where the arrows represent the dependencies.
Projects
Simulation
This project is the starting point for every simulation. Its job is to set up the simulation environment using the Mason Multiagent Simulation Framework, manage the creation of the entities and assign all the properties according to the scenario files. A simulation is started by running the class clsSimulatorMain. This can be achieved either by calling clsSimulatorMain directly with the appropriate parameters, or by running the scenario selector (clsScenarioSelector). The actual setup is performed by the module clsSimplePropertyLoader. This class reads and analyzes the scenario file, and manages the creation and linking of all entities, decision units and memories.
MASON
MASON is a JAVA multiagent simulation framework developed by a project group at George Mason University. It is included into the ARS simulation environment as a library, so its source code is not part of the ARS project.
Entities
This project contains all the entities that exist in the simulation environment, except the ARSIN and some ARSIN-related entities. The decision to create a separate project for the entities is based on the consideration that the ARSIN project holds only the base data structures, and the ARS-related objects. The entities within this project are
clsApple | clsAppleGreen | clsCake |
clsCan | clsCarrot | clsFungus |
clsFungusEater | clsHare | clsLamp |
clsLynx | clsPlant | clsRectangleStationary |
clsRemoteBotOrientationTest | clsSchnitzel | clsSchnitzl |
clsSelf | clsSprout | clsStone |
clsToilet | clsTomato | clsUnrealHealth |
clsWallAxisAlign | clsWallHorizontal | clsWallVertical |
All the entities in this project are part of the entity hierarchy. The base classes of the hierarchy are found in the package entities.base
in the EntityBase-Body-ARSIN project.
EntityBase-Body-ARSIN
This project has two functions. First of all it provides the base modules and data structures for all objects that can be simulated. These modules are the entity base (abstract entitiys - see entity hierarchy), the bodies (and all its interfaces, sensors, actuators and attributes) and miscellaneous enums and tools. Secondly it contains the ARSIN and its related entities such as clsSmartExcrement and clsSpeech.
DecisionUnitInterface
This project provides the basic data structures and classes for the decision units (DecisionUnits and AlternativeDecisionUnits) on the one hand, and the interfaces to use them on the other hand. It implements the abstract class clsBaseDecisionUnit on which all decision units set up. Moreover it accommodates miscellaneous enums and tools that are needed mostly by DecisionUnits.
DecisionUnits
DecisionUnits represents the actual ARS-engine and thereby implements the psychoanalytical model of the human mind. It provides the decision unit via the class clsPsychoAnalysis, which extends clsBaseDecisionUnit.
ARSMemory
This project implements the classes and packages that form the memory of the ARS agent. The memory is the foundation of the ARSIN's decisions. Since the decision unit is the "consumer" of the memory, the memory access interfaces remain in the project DecisionUnits. During the simulation setup, a memory-instance is created and assigned to a decision unit which is then linked to the ARSIN.
AlternativeDecisionUnits
AlternativeDecisionUnits implements all decision units that are not based on the ARS model. They are located in a dedicated project in order to seperate them from the psychoanalytic du's. Some examples are dumbmind, reactive, remotecontrol and rulebased.
DecisionUnitMasonInspectors
This project contains the MASON inspectors for the decision units. Inspectors are a MASON toolkit, that allow to observe attributes of the simulated objects during simulation. Values that can be observed with a DecisionUnitMasonInspector are e.g. emotions (anxiety, anger, elation, joy etc.).
BodyEntityMasonInspectors
Same as DecisionUnitMasonInspectors except that it is used to display attributes of the entities and their bodys such as health, energy, position, id etc.
GeneralTools
GeneralTools comprises miscellaneous tools that are of general nature and are used by several modules. An example is the class clsGetARSPath that returns the directory file system paths of some resources and projects.