VacuumSG Environment

vacuumSG

Ressources :

sources

workspace for Eclipse

user manual (fr)

Description :

This simulator is a derived from the one I used during my PhD. It is based on the Cohen's Vacuum environment (Teaching agent programming using custom environments and Jess, 2005), that I modified to allow a simulation in a continuous environment. I removed the systems of agents I developed during my phd to make this environment reusable in other projects or for educational purposes.

architecture
Architecture of the simulator
This simulator is designed for the simulation of one or more agents in a continuous environment (it is however possible to restrain the agent to a grid). We can note the following improvements from the simulator I used during my phd:
- each agent is executed in a different thread
- the visual system is not restricted to the center of the agent and can be place anywhere on the agent.
The user can control the simulation using the following interface:
interface
The user can also select, in the main window, the agent to observe, and edit the environment.

The default environment is constructed according to a text file, and can be modified during the simulation. It is possible to define additional elements in addition to those that are proposed.

The simulated robot can move in all directions and rotate. It can feel tactile properties of elements in front of it, at its left and right, and behind it. It is also equipped with a ring of "leds" that allows to display its internal states.

The simulator also propose a polar rendering system that gives to the robot a visual field of 360° that is able to measure distance, and that can be used to simulate numerous types os sensors (camera, contact sensors, light sensors, distance sensors...). An example of such a simulated sensor is given in the basic version. This rendering system can be placed at every point of the robot, which allows, as example, the use of a stereoscopic system.

vision
Display panel of the visual system. The rendering system can define a visual field of 360° that can define the color, tactile properties and distance of objects, with an angular resolution of 1°
The communication between the decisional system and the robot is based on vectors that contain motor commands or sensor values. The basic version propose usable vectors, but other vectors can be used.

The basic version proposes two decisional systems as examples:
- Braitenberg.java : implements Valentino Braitenberg's famous vehicles. The robot uses preys as light sources.
- WallAvoider.java : a simple obstacle avoidance system: the robot moves forward while turning left, and turns right when it found an obstacle.