wiki:SIMEO

Version 13 (modified by ghit.bogdan, 14 years ago) (diff)

--

SIMEO: SIMulation architecture for the study of Emergence and auto-Organization

  • Team members: Octavian Voicu - voicu.octavian, Bogdan Ghit - ghit.bogdan, Andrei Ciortea - andrei.ciortea
  • Project description: design of a framework for studying the interactions between large numbers of agents in a simulated virtual world.

Technologies

Tools

  • KDevelop
  • Cmake

Abstract

The goal of SIMEO is to offer a generic framework designed to facilitate the study of interactions between large numbers of agents in a simulated virtual world. The environment of this virtual world is composed of many objects that may execute different physical interactions between themselves, with the control of an agent. An agent monitors the environment through sensors and applies impulses in the world through actuators. In order to reach the ability of self-organization, agents should also be able to communicate with each others directly, through messages.

Framework specifications

1 Define system components:

  • MAIN CONTROLLER - manages the other controllers + load balancing
    • creates controller for each environment zone
    • allows agents to join platform
    • ensures communication with the environment
  • CONTROLLERS - facilitate efficient communication between other entities living in the same zone
    • establishes virtual communication channels
    • relays percepts from environment to sensors
    • relays commands from actuators to environments
  • SERVICES
    • assign global unique identifiers per agent
    • discover other accesible agents
    • join / part communication channels
    • roaming service for agents migration
  • AGENTS
    • SENSORS - monitor the environment
    • ACTUATORS - apply changes to the environment
    • CHANNELS - allow agents to communicate
  1. Specify communication mechanism
  • MAIN CONTROLLER <-> ENVIRONMENT
  • MAIN CONTROLLER <-> CONTROLLER
  • CONTROLLER <-> AGENTS

Architecture

Implementation

SIMEO framework was implemented in C++ with the requirement of being extensible and the virtual world environment was simulated using the Bullet Physics Library. Channel implementation was realized with OpenMPI, while the Remote Gui protocol is TCP based. Agents provide support for Sensors, Actuators and Communication Channels and can be implemented both in C++ and Java.

Testing

TODO.

Simeo GUI and the Lazy Worm

Project activity

  • Dec 13th
    • C++/Java interaction: details
    • MPI tests: details
    • finished proof of concept code for a "magic carpet" controlled by agents, and a 3D blob-like structure
  • Nov 26th
    • started work on a proof of concept sensor/actuator demo
    • started work on a remote gui
    • set up compile environment on Cell
    • compiled Bullet library on Cell
  • Nov 23th - renamed project + compiled lib on cluster
  • Nov 19th - compiled and tested the Bullet library
    • compliling Bullet Physics Engine: details

Attachments (7)

Download all attachments as: .zip