Sophie

Sophie

distrib > Fedora > 13 > x86_64 > by-pkgid > 7e44c354721611abeeb515883f7d0f82 > files > 84

simspark-0.2.2-3.fc13.x86_64.rpm

simspark library README

Please see NEWS.

General Information

simspark is a physical simulation system. The primary purpose of
this system is to provide a *generic* simulator for different kinds
of simulations. In these simulations, agents can participate as
external processes. To create specific simulations, important parts
of the simulator are build as plugins that can be replaced for
different simulations. The plugins can be exchanged at runtime.
Things designed as plugins are for example parts of agents: agents
can be using different actuators or perceptors. Other plugins are
responsible for the simulator protocol or also for the rules of
specific simulations.
Simulations for this simulator can be constructed to a great part by
changing text files with no further recompilation. The basic simulator
concept was presented on the 2003 RoboCup Symposium in Padova [1].

If you installed simspark-0.x before, make sure to clean
the ~/.simspark/ directory prior to using the new version. Also
better remove the old installed libraries in /usr/local/lib/
simspark manually. Sorry for this inconvenience.

For scientific simulations, it is useful to be able to keep track of
the time used by different agents for thinking. A special plugin
makes it possible to use the simulator together with SPADES, a
middleware system for agent based simulations. SPADES was presented
on the 2002 RoboCup Symposium in Fukuoka [2] (SPADES itself is not
part of this package). 

Package Overview

The different parts of this package are organized in different
directories as follows:

./lib             The main simulator parts as libraries. The         
                  simulator consists of these parts:                 
./lib/salt        This library provides a collection of useful       
                  general purpose classes. It contains mostly        
                  math-and system-related functionality, such as a 3D
                  Vector class, a Matrix class, a file I/O wrapper   
                  and an abstraction for loading/accessing shared    
                  libraries.                                         
./lib/zeitgeist   The Zeitgeist library provides two major features. 
                  It implements a mechanism to work with class       
                  objects in C++. A class object is just a factory of
                  class instances. In addition to this mechanism, it 
                  also implements an object hierarchy. This hierarchy
                  is essentially a virtual file system, where the    
                  'directories' and 'files' are instances of C++     
                  classes. These two concepts are quite intertwined  
                  with each other, as class objects can also live    
                  inside the object hierarchy. Objects within the    
                  hierarchy are identified with a unique name. On top
                  of these two features, the Zeitgeist library also  
                  provides three very important 'built-in' services. 
                  Each basic service is usually represented by a     
                  'server' class in our terminology. An instance of  
                  such a class provides the service to other parts of
                  the system. The three services built into the      
                  Zeitgeist library are the LogServer, the           
                  FileServer, and the ScriptServer.                  
./lib/oxygen      Oxygen is the actual engine which is used for the  
                  simulation. It is implemented on top of the        
                  Zeitgeist framework and provides a multitude of    
                  different services to a client application. It     
                  handles the physics aspect (PhysicsServer), the    
                  geometry aspect (PhysicsServer) and the agent      
                  aspect (AgentAspect, ControlAspect). Another       
                  important part of this library is performing the   
                  world simulation (SceneServer).                    
./lib/kerosin     Kerosin handles the visualization aspect           
                  (ImageServer, FontServer, OpenGLServer,            
                  TextureServer, MaterialServer). The classes in the 
                  library also provide basic interfaces for receiving
                  input in interactive simulations (InputServer) and 
                  for playing sounds (SoundServer). Currently, it is 
                  not used for the simulator.                        
./plugin          directory containing plugins to extend the simulator
./data            contains some common data files which can be used
                  for creating simulations using simspark                              
./test            applications for testing different subsystems of the        
                  simulator.                   
                  
Literature:

[1] Marco Kögler and Oliver Obst. Simulation League: The Next Generation.
    In Daniel Polani, Andrea Bonarini, Brett Browning, and Kazuo
    Yoshida, editors, RoboCup 2003: Robot Soccer World Cup VII,
    Lecture Notes in Artificial Intelligence, Springer, Berlin,
    Heidelberg, New York, 2004.

[2] Patrick Riley. MPADES: Middleware for Parallel Agent Discrete
    Event Simulation. In Gal A. Kaminka, Pedro U. Lima, and Raul
    Rojas, editors, RoboCup-2002: Robot Soccer World Cup VI, Lecture
    Notes in Artificial Intelligence, pp. 162-178, Springer Verlag,
    Berlin, 2003.

---------------------------------------------------------------------

Oliver Obst
Last modified: Thu Jan 29 10:57 IRDT 2009 (By Hedayat Vatankhah)