Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OdeAgent Class Reference

Specialised agent for ode robots. More...

#include <odeagent.h>

Inheritance diagram for OdeAgent:
Collaboration diagram for OdeAgent:

Public Member Functions

 OdeAgent (const PlotOption &plotOption=PlotOption(NoPlot), double noisefactor=1, const std::string &name="OdeAgent", const std::string &revision="$ID$") __attribute__((deprecated))
 
 OdeAgent (const std::list< PlotOption > &plotOptions, double noisefactor=1, const std::string &name="OdeAgent", const std::string &revision="$ID$") __attribute__((deprecated))
 
 OdeAgent (const GlobalData &globalData, double noisefactor=1, const std::string &name="OdeAgent", const std::string &revision="")
 The plotoptions are taken from globaldata. More...
 
 OdeAgent (const GlobalData &globalData, const PlotOption &plotOption, double noisefactor=1, const std::string &name="OdeAgent", const std::string &revision="")
 Provided for convinience. More...
 
 OdeAgent (const GlobalData &globalData, const PlotOptionList &plotOptions, double noisefactor=1, const std::string &name="OdeAgent", const std::string &revision="")
 Provided for convinience. More...
 
virtual ~OdeAgent ()
 
virtual bool init (AbstractController *controller, OdeRobot *robot, AbstractWiring *wiring, long int seed=0)
 initializes the object with the given controller, robot and wiring and initializes plotoptionengine More...
 
virtual void step (double noise, double time)
 Performs an step of the agent, including sensor reading, pushing sensor values through the wiring, controller step, pushing controller outputs (= motorcommands) back through the wiring and sent resulting motorcommands to robot. More...
 
virtual void stepOnlyWiredController (double noise, double time)
 Special function for the class Simulation to seperate the step of the WiredController (plus TrackRobot) and the setting and getting of the motor- and sensorvalues. More...
 
virtual void setMotorsGetSensors ()
 Special function for the class Simulation to seperate the step of the WiredController (plus TrackRobot) and the setting and getting of the motor- and sensorvalues. More...
 
virtual void beforeStep (GlobalData &global)
 should be called before step() or stepOnlyWiredController() and calls operators and robot->sense() More...
 
virtual OdeRobotgetRobot ()
 Returns a pointer to the robot. More...
 
virtual const OdeRobotgetRobot () const
 Returns a const pointer to the robot. More...
 
virtual int getTraceLength ()
 
virtual bool setTraceLength (int tracelength)
 
virtual void setTraceThickness (int tracethickness)
 
virtual void addTracking (unsigned int primitiveIndex, const TrackRobot &trackrobot, const Color &color)
 adds tracking for individual primitives More...
 
virtual void setTrackOptions (const TrackRobot &trackrobot)
 sets the trackoptions which starts spatial tracking of a robot More...
 
virtual bool stopTracking ()
 stop tracking (returns true of tracking was on); More...
 
virtual bool store (FILE *f) const
 stores the object to the given file stream (ASCII preferred). More...
 
virtual bool restore (FILE *f)
 loads the object from the given file stream (ASCII preferred). More...
 
virtual void addOperator (Operator *o, bool addToConfigurable=true)
 adds an operator to the agent (the operator is deleted on destruction of the agent!) More...
 
virtual bool removeOperator (Operator *o)
 removes the given operator: it is not deleted (memory wise) More...
 
virtual void removeOperators ()
 removes (and deletes) all operators More...
 
virtual void fixateRobot (GlobalData &global, int primitiveID=-1, double time=0)
 fixates the given primitive of the robot at its current position to the world for a certain time. More...
 
virtual bool unfixateRobot (GlobalData &global)
 release the robot in case it is fixated and turns true in this case More...
 
- Public Member Functions inherited from Agent
 Agent (const PlotOption &plotOption=PlotOption(NoPlot), double noisefactor=1, const iparamkey &name="Agent", const paramkey &revision="$ID")
 constructor. More...
 
 Agent (const std::list< PlotOption > &plotOptions, double noisefactor=1, const iparamkey &name="Agent", const paramkey &revision="$ID")
 constructor. More...
 
virtual ~Agent ()
 destructor More...
 
virtual bool init (AbstractController *controller, AbstractRobot *robot, AbstractWiring *wiring, long int seed=0)
 initializes the object with the given controller, robot and wiring and initializes the output options. More...
 
virtual void onlyControlRobot ()
 Sends only last motor commands again to robot. More...
 
virtual TrackRobot getTrackOptions () const
 returns the tracking options More...
 
- Public Member Functions inherited from WiredController
 WiredController (const PlotOption &plotOption=PlotOption(NoPlot), double noisefactor=1, const iparamkey &name="WiredController", const paramkey &revision="$ID")
 constructor. More...
 
 WiredController (const std::list< PlotOption > &plotOptions, double noisefactor=1, const iparamkey &name="WiredController", const paramkey &revision="$ID")
 constructor. More...
 
virtual ~WiredController ()
 destructor More...
 
virtual bool init (AbstractController *controller, AbstractWiring *wiring, int robotsensornumber, int robotmotornumber, const std::list< SensorMotorInfo > &robotSensorInfos, const std::list< SensorMotorInfo > &robotMotorInfos, RandGen *randGen=0)
 initializes the object with the given controller and wiring and initializes the output options It is also possible to provide a random seed, if not given (0) rand() is used to create one More...
 
virtual void step (const sensor *sensors, int sensornumber, motor *motors, int motornumber, double noise, double time=-1)
 Performs an step of the controller, which includes pushing sensor values through the wiring, controller step, pushing controller outputs (= motorcommands) back through the wiring. More...
 
virtual void startMotorBabblingMode (int steps, AbstractController *babblecontroller=0)
 Enables the motor babbling mode for given number of steps (typically 1000). More...
 
virtual AbstractControllergetMotorBabbler ()
 
virtual void stopMotorBabblingMode ()
 stops the motor babbling mode. More...
 
virtual bool getMotorBabblingMode ()
 returns true if in motorbabbling mode More...
 
virtual PlotOption addPlotOption (PlotOption &plotoption)
 adds the PlotOptions to the list of plotoptions If a plotoption with the same Mode exists, then the old one is deleted first More...
 
virtual bool addAndInitPlotOption (PlotOption &plotOption)
 adds a new PlotOption and initializes it More...
 
virtual bool removePlotOption (PlotMode mode)
 removes the PlotOptions with the given type More...
 
virtual void writePlotComment (const char *cmt, bool addSpace=true)
 write comment to output streams (PlotOptions). More...
 
virtual AbstractControllergetController ()
 Returns a pointer to the controller. More...
 
virtual const AbstractControllergetController () const
 
virtual AbstractWiringgetWiring ()
 Returns a pointer to the wiring. More...
 
- Public Member Functions inherited from Inspectable
 Inspectable (const iparamkey &name="")
 TYPEDEFS END. More...
 
virtual ~Inspectable ()
 
virtual iparamkeylist getInternalParamNames () const
 The list of the names of all internal parameters given by getInternalParams(). More...
 
virtual iparamvallist getInternalParams () const
 
virtual iparamvalptrlist getInternalParamsPtr () const
 be careful: matrices will be ignored More...
 
virtual ilayerlist getStructuralLayers () const
 Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering is important. More...
 
virtual iconnectionlist getStructuralConnections () const
 Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The orderning is not important. More...
 
virtual void addInspectableValue (const iparamkey &key, iparamval const *val, const std::string &descr=std::string())
 This is the new style for adding inspectable values. More...
 
virtual void addInspectableMatrix (const iparamkey &key, const matrix::Matrix *m, bool only4x4AndDiag=true, const std::string &descr=std::string())
 This is the new style for adding inspectable values. More...
 
virtual void addInspectableDescription (const iparamkey &key, const std::string &descr)
 adds a description for the given parameter using info-lines The line will start (appart from the #I) with a D for description followed by the key end then followed by the string. More...
 
virtual void addInfoLine (std::string infoLine)
 Adds an info line to this inspectable instance. More...
 
virtual void addInfoLines (std::list< std::string > infoLineList)
 Adds a bunch of infolines with addInfoLine to this inspectable instance. More...
 
virtual void removeInfoLines ()
 Removes all infolines from this inspectable instance. More...
 
virtual const infoLinesListgetInfoLines () const
 Returns all infolines added to this inspectable instance. More...
 
virtual void addInspectable (Inspectable *insp)
 Adds an inspectable as a child object. More...
 
virtual void removeInspectable (Inspectable *insp)
 Removes an inspectable as a child object. More...
 
virtual void setNameOfInspectable (const iparamkey &name)
 set the name of the inspectable More...
 
virtual const iparamkey getNameOfInspectable () const
 return the name of the inspectable, getName() would conflict with Configurable::getName() too often More...
 
virtual const inspectableListgetInspectables () const
 Returns the list containing all inspectable children. More...
 
- Public Member Functions inherited from Configurable
 Configurable ()
 
 Configurable (const std::string &name, const std::string &revision)
 intialise with name and revision (use "$ID$") More...
 
virtual ~Configurable ()
 
virtual void notifyOnChange (const paramkey &key)
 Is called when a parameter was changes via setParam(). More...
 
virtual void addParameter (const paramkey &key, paramval *val, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
 This is the new style for adding configurable parameters. More...
 
virtual void addParameter (const paramkey &key, paramval *val, const paramdescr &descr=paramdescr())
 See addParameter(const paramkey& key, paramval* val, paramval minBound, paramval maxBound, const paramdescr& descr) More...
 
virtual void addParameter (const paramkey &key, parambool *val, const paramdescr &descr=paramdescr())
 See addParameter(const paramkey& key, paramval* val) but for bool values. More...
 
virtual void addParameter (const paramkey &key, paramint *val, paramint minBound, paramint maxBound, const paramdescr &descr=paramdescr())
 See addParameter(const paramkey& key, paramval* val) but for int values. More...
 
virtual void addParameter (const paramkey &key, paramint *val, const paramdescr &descr=paramdescr())
 
virtual void addParameterDef (const paramkey &key, paramval *val, paramval def, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
 This function is only provided for convenience. More...
 
virtual void addParameterDef (const paramkey &key, paramval *val, paramval def, const paramdescr &descr=paramdescr())
 
virtual void addParameterDef (const paramkey &key, parambool *val, parambool def, const paramdescr &descr=paramdescr())
 See addParameterDef(const paramkey&, paramval*, paramval) More...
 
virtual void addParameterDef (const paramkey &key, paramint *val, paramint def, paramint minBound, paramint maxBound, const paramdescr &descr=paramdescr())
 See addParameterDef(const paramkey&, paramval*, paramval) More...
 
virtual void addParameterDef (const paramkey &key, paramint *val, paramint def, const paramdescr &descr=paramdescr())
 
virtual void setParamDescr (const paramkey &key, const paramdescr &descr, bool traverseChildren=true)
 sets a description for the given parameter More...
 
int getId () const
 return the id of the configurable objects, which is created by random on initialisation More...
 
virtual paramkey getName () const
 return the name of the object More...
 
virtual paramkey getRevision () const
 returns the revision of the object More...
 
virtual void setName (const paramkey &name, bool callSetNameOfInspectable=true)
 Sets the name of the configurable. More...
 
virtual void setRevision (const paramkey &revision)
 sets the revision Hint: { return "$ID$"; } More...
 
virtual paramval getParam (const paramkey &key, bool traverseChildren=true) const
 returns the value of the requested parameter or 0 (+ error message to stderr) if unknown. More...
 
virtual bool hasParam (const paramkey &key, bool traverseChildren=true) const
 Returns if the requested parameter is part of the configurable or their children. More...
 
virtual bool setParam (const paramkey &key, paramval val, bool traverseChildren=true)
 sets the value of the given parameter or does nothing if unknown. More...
 
virtual void setParamBounds (const paramkey &key, paramval minBound, paramval maxBound, bool traverseChildren=true)
 Sets the bounds (minBound and maxBound) of the given parameter. More...
 
virtual void setParamBounds (const paramkey &key, paramint minBound, paramint maxBound, bool traverseChildren=true)
 
virtual void setParamBounds (const paramkey &key, paramvalBounds bounds, bool traverseChildren=true)
 
virtual void setParamBounds (const paramkey &key, paramintBounds bounds, bool traverseChildren=true)
 
virtual paramlist getParamList () const
 The list of all parameters with there value as allocated lists. More...
 
virtual std::list< paramkeygetAllParamNames (bool traverseChildren=true)
 returns all names that are configureable More...
 
virtual parammap getParamValMap () const
 
virtual paramintmap getParamIntMap () const
 
virtual paramboolmap getParamBoolMap () const
 
virtual paramdescr getParamDescr (const paramkey &key, bool traverseChildren=true) const
 returns the description for the given parameter More...
 
virtual paramvalBounds getParamvalBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual paramintBounds getParamintBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual bool hasParamDescr (const paramkey &key, bool traverseChildren=true) const
 
virtual bool hasParamvalBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual bool hasParamintBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual bool storeCfg (const char *filenamestem, const std::list< std::string > &comments=std::list< std::string >())
 stores the key values paires into the file : filenamestem.cfg including the comments given in the list More...
 
virtual bool restoreCfg (const char *filenamestem)
 restores the key values paires from the file : filenamestem.cfg More...
 
void print (FILE *f, const char *prefix, int columns=90, bool traverseChildren=true) const
 prints the keys, values and descriptions to the file. Each line is prefixed More...
 
bool parse (FILE *f, const char *prefix=0, bool traverseChildren=true)
 parses the configuration from the given file More...
 
virtual void addConfigurable (Configurable *conf)
 Adds a configurable as a child object. More...
 
virtual void removeConfigurable (Configurable *conf)
 Removes a configurable as a child object. More...
 
virtual const configurableListgetConfigurables () const
 Returns the list containing all configurable children. More...
 
virtual void configurableChanged ()
 Indicates that the configurable itself or the configurable children attached to this configurable have changed. More...
 
- Public Member Functions inherited from BackCaller
 BackCaller ()
 
virtual ~BackCaller ()
 
virtual void addCallbackable (Callbackable *callbackableInstance, CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Adds a Callbackable instance to this caller instance. More...
 
virtual void removeCallbackable (Callbackable *callbackableInstance, CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Removes a Callbackable instance from this caller instance. More...
 
virtual void removeAllCallbackables (CallbackableType type)
 Removes all Callbackable instances from this caller instance. More...
 
virtual void callBack (CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Calls all registered callbackable classes of the determined type. More...
 
virtual void callBackQMP (CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Calls all registered callbackable classes of the determined type. More...
 
- Public Member Functions inherited from Storeable
virtual ~Storeable ()
 
bool storeToFile (const char *filename) const
 Provided for convenience. More...
 
bool restoreFromFile (const char *filename)
 Provided for convenience. More...
 

Protected Member Functions

virtual void trace (GlobalData &global)
 continues the trace by one segment More...
 
- Protected Member Functions inherited from WiredController
virtual void plot (double time)
 Plots controller sensor- and motorvalues and internal controller parameters. More...
 
void internInit ()
 
- Protected Member Functions inherited from Configurable
void copyParameters (const Configurable &, bool traverseChildren=true)
 copies the internal params of the given configurable More...
 
void printdescr (FILE *f, const char *prefix, const paramkey &key, int columns, int indent) const
 

Additional Inherited Members

- Public Types inherited from Inspectable
typedef std::string iparamkey
 
typedef double iparamval
 
typedef std::pair< iparamkey,
iparamval const * > 
iparampair
 
typedef std::pair< iparamkey,
std::pair< const
matrix::Matrix *, bool > > 
imatrixpair
 
typedef std::list< iparamkeyiparamkeylist
 
typedef std::list< std::string > infoLinesList
 
typedef std::list< iparamvaliparamvallist
 
typedef std::list< iparamval
const * > 
iparamvalptrlist
 
typedef std::list< iparampairiparampairlist
 
typedef std::list< imatrixpairimatrixpairlist
 
typedef struct Inspectable::ILayer ILayer
 
typedef struct
Inspectable::IConnection 
IConnection
 
typedef std::list< ILayerilayerlist
 
typedef std::list< IConnectioniconnectionlist
 
typedef std::list< const
Inspectable * > 
inspectableList
 
- Public Types inherited from Configurable
typedef std::string paramkey
 
typedef std::string paramdescr
 
typedef double paramval
 
typedef std::list< std::pair
< paramkey, paramval > > 
paramlist
 
typedef std::map< paramkey,
paramval * > 
parammap
 
typedef bool parambool
 
typedef std::list< std::pair
< paramkey, parambool > > 
paramboollist
 
typedef std::map< paramkey,
parambool * > 
paramboolmap
 
typedef int paramint
 
typedef std::list< std::pair
< paramkey, paramint > > 
paramintlist
 
typedef std::map< paramkey,
paramint * > 
paramintmap
 
typedef std::map< paramkey,
paramdescr
paramdescrmap
 
typedef std::pair< paramval,
paramval
paramvalBounds
 
typedef std::map< paramkey,
paramvalBounds
paramvalBoundsMap
 
typedef std::pair< paramint,
paramint
paramintBounds
 
typedef std::map< paramkey,
paramintBounds
paramintBoundsMap
 
typedef std::pair< paramkey,
paramval * > 
paramvalpair
 
typedef std::pair< paramkey,
parambool * > 
paramboolpair
 
typedef std::pair< paramkey,
paramint * > 
paramintpair
 
typedef std::vector
< Configurable * > 
configurableList
 
- Public Types inherited from BackCaller
typedef unsigned long CallbackableType
 
- Static Public Attributes inherited from Configurable
static const CallbackableType CALLBACK_CONFIGURABLE_CHANGED = 11
 
- Static Public Attributes inherited from BackCaller
static const CallbackableType DEFAULT_CALLBACKABLE_TYPE = 0
 This is the default Callbackable type. More...
 
- Protected Attributes inherited from Agent
AbstractRobotrobot
 
sensorrsensors
 
motorrmotors
 
RandGen randGen
 
TrackRobot trackrobot
 
int t
 
- Protected Attributes inherited from WiredController
AbstractControllercontroller
 
AbstractWiringwiring
 
int rsensornumber
 number of sensors of robot More...
 
int rmotornumber
 number of motors of robot More...
 
int csensornumber
 number of sensors of comntroller More...
 
int cmotornumber
 number of motors of comntroller More...
 
double noisefactor
 factor that is muliplied with noise stength More...
 
motorcmotors
 
sensorcsensors
 
AbstractControllermotorBabbler
 
int motorBabblingSteps
 
PlotOptionEngine plotEngine
 
bool initialised
 
std::list< Callbackable * > callbackables
 
long int t
 
- Protected Attributes inherited from Inspectable
iparamkey name
 
iparampairlist mapOfValues
 
imatrixpairlist mapOfMatrices
 
infoLinesList infoLineStringList
 

Detailed Description

Specialised agent for ode robots.

Constructor & Destructor Documentation

OdeAgent ( const PlotOption plotOption = PlotOption(NoPlot),
double  noisefactor = 1,
const std::string &  name = "OdeAgent",
const std::string &  revision = "$ID$" 
)
Deprecated:
obsolete provide globaldata, see the other constructors
OdeAgent ( const std::list< PlotOption > &  plotOptions,
double  noisefactor = 1,
const std::string &  name = "OdeAgent",
const std::string &  revision = "$ID$" 
)
Deprecated:
obsolete provide globaldata, see the other constructors
OdeAgent ( const GlobalData globalData,
double  noisefactor = 1,
const std::string &  name = "OdeAgent",
const std::string &  revision = "" 
)

The plotoptions are taken from globaldata.

Parameters
noisefactorfactor for sensor noise for this agent
OdeAgent ( const GlobalData globalData,
const PlotOption plotOption,
double  noisefactor = 1,
const std::string &  name = "OdeAgent",
const std::string &  revision = "" 
)

Provided for convinience.

A single plotoption is used as given by plotOption

OdeAgent ( const GlobalData globalData,
const PlotOptionList plotOptions,
double  noisefactor = 1,
const std::string &  name = "OdeAgent",
const std::string &  revision = "" 
)

Provided for convinience.

The plotoptions are taken from the given plotOptions (and not from globaldata, if you wish to overwrite them)

~OdeAgent ( )
virtual

Member Function Documentation

void addOperator ( Operator o,
bool  addToConfigurable = true 
)
virtual

adds an operator to the agent (the operator is deleted on destruction of the agent!)

void addTracking ( unsigned int  primitiveIndex,
const TrackRobot trackrobot,
const Color color 
)
virtual

adds tracking for individual primitives

void beforeStep ( GlobalData global)
virtual

should be called before step() or stepOnlyWiredController() and calls operators and robot->sense()

void fixateRobot ( GlobalData global,
int  primitiveID = -1,
double  time = 0 
)
virtual

fixates the given primitive of the robot at its current position to the world for a certain time.

Hint: use getRobot()->moveToPosition() to get the robot relocated

Parameters
primitiveIDif -1 then the main primitive is used, otherwise the primitive with the given index
timetime to fixate in seconds (if ==0 then indefinite)
virtual OdeRobot* getRobot ( )
inlinevirtual

Returns a pointer to the robot.

Reimplemented from Agent.

virtual const OdeRobot* getRobot ( ) const
inlinevirtual

Returns a const pointer to the robot.

virtual int getTraceLength ( )
inlinevirtual
Deprecated:
use TrackRobot parameters
virtual bool init ( AbstractController controller,
OdeRobot robot,
AbstractWiring wiring,
long int  seed = 0 
)
inlinevirtual

initializes the object with the given controller, robot and wiring and initializes plotoptionengine

bool removeOperator ( Operator o)
virtual

removes the given operator: it is not deleted (memory wise)

Returns
true on success
void removeOperators ( )
virtual

removes (and deletes) all operators

bool restore ( FILE *  f)
virtual

loads the object from the given file stream (ASCII preferred).

Implements Storeable.

void setMotorsGetSensors ( )
virtual

Special function for the class Simulation to seperate the step of the WiredController (plus TrackRobot) and the setting and getting of the motor- and sensorvalues.

virtual bool setTraceLength ( int  tracelength)
inlinevirtual
Deprecated:
use TrackRobot parameters
virtual void setTraceThickness ( int  tracethickness)
inlinevirtual
Deprecated:
use TrackRobot parameters
void setTrackOptions ( const TrackRobot trackrobot)
virtual

sets the trackoptions which starts spatial tracking of a robot

Reimplemented from Agent.

void step ( double  noise,
double  time 
)
virtual

Performs an step of the agent, including sensor reading, pushing sensor values through the wiring, controller step, pushing controller outputs (= motorcommands) back through the wiring and sent resulting motorcommands to robot.

Parameters
noiseNoise strength.
time(optional) current simulation time (used for logging)

Reimplemented from Agent.

void stepOnlyWiredController ( double  noise,
double  time 
)
virtual

Special function for the class Simulation to seperate the step of the WiredController (plus TrackRobot) and the setting and getting of the motor- and sensorvalues.

Parameters
noise
See Also
step()
Parameters
time
See Also
step()
bool stopTracking ( )
virtual

stop tracking (returns true of tracking was on);

Reimplemented from Agent.

bool store ( FILE *  f) const
virtual

stores the object to the given file stream (ASCII preferred).

Implements Storeable.

void trace ( GlobalData global)
protectedvirtual

continues the trace by one segment

bool unfixateRobot ( GlobalData global)
virtual

release the robot in case it is fixated and turns true in this case


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