Robot Simulator of the Robotics Group for Self-Organization of Control: Simulation Class Reference

# Simulation Class Reference

`#include <simulation.h>`

Inherits lpzrobots::Base.

Inherited by TaskedSimulation, and ThisSim.

Collaboration diagram for Simulation:
[legend]

List of all members.

## Public Types
enum | SimulationState { none, initialised, running, closed }
enum | CameraMode { Static = 0, Follow, TV, Race }
## Public Member Functions
| Simulation ()
virtual | ~Simulation ()
bool | run (int argc, char **argv)
| starts the Simulation.
virtual void | start (const OdeHandle &, const OsgHandle &, GlobalData &globalData)=0
| start() is called at the first start of the cycles and should create all the object (obstacles, agents...).
virtual bool | restart (const OdeHandle &, const OsgHandle &, GlobalData &globalData)
| restart() is called at the second and all following starts of the cylce The end of a cycle is determined by (simulation_time_reached==true)
virtual void | end (GlobalData &globalData)
| end() is called at the end and should tidy up
virtual bool | config (GlobalData &globalData)
| config() is called when the user presses Ctrl-C
virtual bool | command (const OdeHandle &, const OsgHandle &, GlobalData &globalData, int key, bool down)
| is called if a key was pressed.
virtual void | bindingDescription (osg::ApplicationUsage &au) const
| this can be used to describe the key bindings used by command()
virtual void | usage () const
| this can be used to print additional usage information (cmd-line options)
virtual bool | collCallback (const OdeHandle &, void *data, dGeomID o1, dGeomID o2)
| collCallback() can be used to overload the standart collision handling.
virtual void | addCallback (GlobalData &globalData, bool draw, bool pause, bool control)
| optional additional callback function which is called every simulation step.
virtual void | addPaletteFile (const std::string &filename, bool verbose=false)
| adds a palette file to be loaded at initialization time Call this before run()!
virtual void | addColorAliasFile (const std::string &filename, bool verbose=false)
| adds a color alias file to be loaded at initialization time Call this before run()!
virtual void | odeStep ()
virtual void | osgStep ()
## Protected Member Functions
virtual bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &)
virtual void | getUsage (osg::ApplicationUsage &au) const
virtual void | accept (osgGA::GUIEventHandlerVisitor &v)
virtual bool | init (int argc, char **argv)
virtual void | updateGraphics ()
| update the graphics objects
void | setCameraHomePos (const osg::Vec3 &eye, const osg::Vec3 &view)
| define the home position and view orientation of the camera.
void | setCameraMode (CameraMode mode)
| Sets the mode of the camera, the numbers are the same like the keys.
void | setWatchedAgent (OdeAgent *agent)
| Sets the agent to be watched with the camera.
bool | control_c_pressed ()
| __attribute__ ((deprecated)) void showParams(const ConfigList &configs)
| shows all parameters of all given configurable objects
virtual bool | processCmdLine (int argc, char **argv)
| returns false if the program is to exit
void | resetSyncTimer ()
long | timeOfDayinMS ()
## Static Protected Member Functions
static void | nearCallback_TopLevel (void *data, dGeomID o1, dGeomID o2)
static void | nearCallback (void *data, dGeomID o1, dGeomID o2)
## Protected Attributes
std::list< PlotOption > & | plotoptions
GlobalData | globalData
osg::ref_ptr< VideoStream > | videostream
int | nextLeakAnnounce
int | leakAnnCounter
long | realtimeoffset
long | simtimeoffset
double | truerealtimefactor
bool | justresettimes
paramint | windowWidth
paramint | windowHeight
paramint | defaultFPS
bool | pause
bool | simulation_time_reached
long int | simulation_time
bool | noGraphics
bool | useKeyHandler
int | guiloggerinterval
int | filelogginginterval
int | matrixvizinterval
char | odeRobotsCfg [256]
int | currentCycle
| < filename of config file
CameraHandle | cameraHandle
parambool | useOdeThread
parambool | useOsgThread
parambool | useQMPThreads
parambool | inTaskedMode
std::string | windowName
SimulationState | state
osg::ArgumentParser * | arguments
LPZViewer * | viewer
osgGA::KeySwitchMatrixManipulator * | keyswitchManipulator
char ** | orig_argv
std::list< std::string > | paletteFiles
std::list< std::string > | colorAliasFiles
bool | verboseColorLoading
bool | startConfigurator
pthread_t | odeThread
pthread_t | osgThread
bool | odeThreadCreated
bool | osgThreadCreated
## Static Protected Attributes
static int | ctrl_C = 0

## Detailed Description

Examples:

  template_sphererobot/main.cpp.

## Member Enumeration Documentation

enum CameraMode

Enumerator:

  Static |
  Follow |
  TV |
  Race |

enum SimulationState

Enumerator:

  none |
  initialised |
  running |
  closed |

## Constructor & Destructor Documentation

Simulation | ( |  | ) |

~Simulation | ( |  | ) | `[virtual]`

## Member Function Documentation

__attribute__ | ( | (deprecated) |  | ) | const`[inline, protected]`

shows all parameters of all given configurable objects

Deprecated:
  this is handled by simulation itself, do not call this function anymore

void accept | ( | osgGA::GUIEventHandlerVisitor & | v | ) | `[protected, virtual]`

virtual void addCallback | ( | GlobalData & | globalData,
|  | bool | draw,
|  | bool | pause,
|  | bool | control |
| ) |  |  | `[inline, virtual]`

optional additional callback function which is called every simulation step.

Called between physical simulation step and drawing.

Parameters:

  | draw | indicates that objects are drawn in this timestep
  | pause | always false (only called of simulation is running)
  | control | indicates that robots have been controlled this timestep

Reimplemented in ThisSim.

void addColorAliasFile | ( | const std::string & | filename,
|  | bool | verbose = `false` |
| ) |  |  | `[virtual]`

adds a color alias file to be loaded at initialization time Call this before run()!

void addPaletteFile | ( | const std::string & | filename,
|  | bool | verbose = `false` |
| ) |  |  | `[virtual]`

adds a palette file to be loaded at initialization time Call this before run()!

virtual void bindingDescription | ( | osg::ApplicationUsage & | au | ) | const`[inline, virtual]`

this can be used to describe the key bindings used by command()

Reimplemented in ThisSim.

virtual bool collCallback | ( | const OdeHandle & | ,
|  | void * | data,
|  | dGeomID | o1,
|  | dGeomID | o2 |
| ) |  |  | `[inline, virtual]`

collCallback() can be used to overload the standart collision handling.

However it is called after the robots collision handling.

Returns:
  true if collision is treated, false otherwise

virtual bool command | ( | const OdeHandle & | ,
|  | const OsgHandle & | ,
|  | GlobalData & | globalData,
|  | int | key,
|  | bool | down |
| ) |  |  | `[inline, virtual]`

is called if a key was pressed.

For keycodes see: osgGA::GUIEventAdapter

Returns:
  true if the key was handled

Reimplemented in ThisSim.

bool config | ( | GlobalData & | globalData | ) | `[virtual]`

config() is called when the user presses Ctrl-C

Returns:
  false to exit program, true otherwise

bool control_c_pressed | ( |  | ) | `[protected]`

void end | ( | GlobalData & | globalData | ) | `[virtual]`

end() is called at the end and should tidy up

void getUsage | ( | osg::ApplicationUsage & | au | ) | const`[protected, virtual]`

bool handle | ( | const osgGA::GUIEventAdapter & | ea,
|  | osgGA::GUIActionAdapter & |  |
| ) |  |  | `[protected, virtual]`

bool init | ( | int | argc,
|  | char ** | argv |
| ) |  |  | `[protected, virtual]`

void nearCallback | ( | void * | data,
|  | dGeomID | o1,
|  | dGeomID | o2 |
| ) |  |  | `[static, protected]`

use the new method with substances

void nearCallback_TopLevel | ( | void * | data,
|  | dGeomID | o1,
|  | dGeomID | o2 |
| ) |  |  | `[static, protected]`

void odeStep | ( |  | ) | `[virtual]`

void osgStep | ( |  | ) | `[virtual]`

bool processCmdLine | ( | int | argc,
|  | char ** | argv |
| ) |  |  | `[protected, virtual]`

returns false if the program is to exit

void resetSyncTimer | ( |  | ) | `[protected]`

bool restart | ( | const OdeHandle & | ,
|  | const OsgHandle & | ,
|  | GlobalData & | globalData |
| ) |  |  | `[virtual]`

restart() is called at the second and all following starts of the cylce The end of a cycle is determined by (simulation_time_reached==true)

restart() is called at the second and all following starts of the cylces

Parameters:

  | the | odeHandle
  | the | osgHandle
  | globalData |

Returns:
  if the simulation should be restarted; this is false by default

bool run | ( | int | argc,
|  | char ** | argv |
| ) |  |  |

starts the Simulation.

Do not overload it. This function returns of the simulation is terminated.

Returns:
  : true if closed regulary, false on error

Examples:
  template_sphererobot/main.cpp.

void setCameraHomePos | ( | const osg::Vec3 & | eye,
|  | const osg::Vec3 & | view |
| ) |  |  | `[protected]`

define the home position and view orientation of the camera.

view.x is the heading angle in degree. view.y is the tilt angle in degree (nick), view.z is ignored

Examples:
  template_sphererobot/main.cpp.

void setCameraMode | ( | CameraMode | mode | ) | `[protected]`

Sets the mode of the camera, the numbers are the same like the keys.

Parameters:

  | mode | see CameraMode

void setWatchedAgent | ( | OdeAgent * | agent | ) | `[protected]`

Sets the agent to be watched with the camera.

Parameters:

  | agent | to set

virtual void start | ( | const OdeHandle & | ,
|  | const OsgHandle & | ,
|  | GlobalData & | globalData |
| ) |  |  | `[pure virtual]`

start() is called at the first start of the cycles and should create all the object (obstacles, agents...).

Implemented in ThisSim.

long timeOfDayinMS | ( |  | ) | `[protected]`

void updateGraphics | ( |  | ) | `[protected, virtual]`

update the graphics objects

virtual void usage | ( |  | ) | const`[inline, virtual]`

this can be used to print additional usage information (cmd-line options)

## Member Data Documentation

osg::ArgumentParser* arguments`[protected]`

CameraHandle cameraHandle`[protected]`

std::list<std::string> colorAliasFiles`[protected]`

int ctrl_C = 0`[static, protected]`

int currentCycle`[protected]`

< filename of config file

the current cycle; the simulation restarts if restart() returns true

paramint defaultFPS`[protected]`

int filelogginginterval`[protected]`

GlobalData globalData`[protected]`

Examples:
  template_sphererobot/main.cpp.

int guiloggerinterval`[protected]`

parambool inTaskedMode`[protected]`

bool justresettimes`[protected]`

osgGA::KeySwitchMatrixManipulator* keyswitchManipulator`[protected]`

int leakAnnCounter`[protected]`

int matrixvizinterval`[protected]`

int nextLeakAnnounce`[protected]`

bool noGraphics`[protected]`

char odeRobotsCfg[256]`[protected]`

pthread_t odeThread`[protected]`

bool odeThreadCreated`[protected]`

char** orig_argv`[protected]`

pthread_t osgThread`[protected]`

bool osgThreadCreated`[protected]`

std::list<std::string> paletteFiles`[protected]`

bool pause`[protected]`

std::list<PlotOption>& plotoptions`[protected]`

long realtimeoffset`[protected]`

long simtimeoffset`[protected]`

long int simulation_time`[protected]`

bool simulation_time_reached`[protected]`

bool startConfigurator`[protected]`

SimulationState state`[protected]`

double truerealtimefactor`[protected]`

bool useKeyHandler`[protected]`

parambool useOdeThread`[protected]`

parambool useOsgThread`[protected]`

parambool useQMPThreads`[protected]`

bool verboseColorLoading`[protected]`

osg::ref_ptr<VideoStream> videostream`[protected]`

LPZViewer* viewer`[protected]`

paramint windowHeight`[protected]`

std::string windowName`[protected]`

paramint windowWidth`[protected]`

The documentation for this class was generated from the following files:

- simulation.h
- simulation.cpp