Sunteți pe pagina 1din 3

For our Project we need a framework that provides us with an environment that we can run more

than 1 (say N) simulator simultaneously and be able to manage each trainee station separately from
one single instructor station.
These trainee stations will be used by N different trainees to drive different kind of ground vehicles.
Trainees will be trained through scenarios that requires co-operation of trainees. Since they have to
make common operations (such as snow polling) they have to share the same scene(world) and they
have to share the same physics environment.
Configuration of trainee stations will be different from each other. For example Trainee Station 1 will
have about 7 IG channels(MONITORS), whereas the other trainee stations will have only 3 IG
channels.
Investigating the Unigine reference manuals we have come up with a solution as presented in the
following schema:
LAN
INSTRUCTOR STATION
TRAINEE STATION 1.1
TRAINEE STATION 1.2
TRAINEE STATION 2 TRAINEE STATION 3 TRAINEE STATION N
IMAGE GENERATOR(UNIGINE)
PHYSICS ENABLED(UNIGINE)
AI MODULES
INSTRUCTOR FUNCTIONS
MODULES RUNNING ON INSTRUCTOR
SIDE
RAKNET SERVER(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 1 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 1.1
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
MODULES RUNNING ON TRAINEE STATION 1.2
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 2 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 2
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 2 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 2
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 2 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 2
SIDE
RAKNET CLIENT(UNIGINE)

The Instructor station and the N different trainee stations will send receive data among each other
using Raknet as it is an out-of-the-box feature of Unigene. Here is a diagram to show what will be
running on each computer and send/receive relation between them:
IMAGE GENERATOR(UNIGINE)
PHYSICS ENABLED(UNIGINE)
AI MODULES
INSTRUCTOR FUNCTIONS
MODULES RUNNING ON INSTRUCTOR
SIDE
RAKNET SERVER(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 1 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 1.1
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
MODULES RUNNING ON TRAINEE STATION 1.2
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 2 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 2
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 2 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION 3
SIDE
RAKNET CLIENT(UNIGINE)
IMAGE GENERATOR(UNIGINE)
PHYSICS DISABLED(UNIGINE)
TRAINEE 2 FUNCTIONS
MODULES RUNNING ON TRAINEE STATION N
SIDE
RAKNET CLIENT(UNIGINE)


All the physics related calculations will be done at Instructor Station (raknet server) side and entity
data will be sent to Trainee Stations (Raknet Clients). Physics calculations at trainee stations (clients)
will be disabled and they will only use the entity data coming from the server side to update their IG
channels.
Since we want to get rid of performance issues we plan to run a single instance of Unigine at each PC.
For example Trainee station 1 will be composed of 2 computers. There will be one Unigine instance
at each PC (total 2 unigine instances). First PC will handle trainee station specific tasks (such as
reading IO values of input devices steering wheel, pedals etc.) in addition will be responsible of
generating IG data of 3 channels. On the other hand second PC will only generated image data for 4
other channels.
1- Does this solution makes sense to you? Is there anything we are missing or we
misunderstood?
2- Would server client relation based raknet solution be a good choice? Or do you recommend
to use any other distributed solution such as CORBA, DDS, os HLA?
3- If we happen to sign a contract with you will you be supporting us at architecture level in
addition to code level?

S-ar putea să vă placă și