Robot Simulator of the Robotics Group for Self-Organization of Control
0.8.0
|
The Agent contains a controller, a robot and a wiring, which connects robot and controller. More...
#include <agent.h>
Public Member Functions | |
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 | step (double noise, double time=-1) |
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 | onlyControlRobot () |
Sends only last motor commands again to robot. More... | |
virtual AbstractRobot * | getRobot () |
Returns a pointer to the robot. 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 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 AbstractController * | getMotorBabbler () |
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 AbstractController * | getController () |
Returns a pointer to the controller. More... | |
virtual const AbstractController * | getController () const |
virtual AbstractWiring * | getWiring () |
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 infoLinesList & | getInfoLines () 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 inspectableList & | getInspectables () 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< paramkey > | getAllParamNames (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 configurableList & | getConfigurables () 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... | |
Protected Attributes | |
AbstractRobot * | robot |
sensor * | rsensors |
motor * | rmotors |
RandGen | randGen |
TrackRobot | trackrobot |
int | t |
Protected Attributes inherited from WiredController | |
AbstractController * | controller |
AbstractWiring * | wiring |
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... | |
motor * | cmotors |
sensor * | csensors |
AbstractController * | motorBabbler |
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 |
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< iparamkey > | iparamkeylist |
typedef std::list< std::string > | infoLinesList |
typedef std::list< iparamval > | iparamvallist |
typedef std::list< iparamval const * > | iparamvalptrlist |
typedef std::list< iparampair > | iparampairlist |
typedef std::list< imatrixpair > | imatrixpairlist |
typedef struct Inspectable::ILayer | ILayer |
typedef struct Inspectable::IConnection | IConnection |
typedef std::list< ILayer > | ilayerlist |
typedef std::list< IConnection > | iconnectionlist |
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 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 |
The Agent contains a controller, a robot and a wiring, which connects robot and controller.
Additionally there are some ways to keep track of internal information. You have the possibility to keep track of sensor values, motor values and internal parameters of the controller with PlotOptions. The name PlotOptions is a bit missleaded, it should be "OutputOptions", however you can write the data into a file or send it to visialisation tools like guilogger or neuronviz.
If want to log the position, speed and orienation of your robot you can use setTrackOptions(). Please be aware that the Agent inherits from WiredController. You might also find useful functions there.
Agent | ( | const PlotOption & | plotOption = PlotOption(NoPlot) , |
double | noisefactor = 1 , |
||
const iparamkey & | name = "Agent" , |
||
const paramkey & | revision = "$ID" |
||
) |
constructor.
PlotOption as output setting. noisefactor is used to set the relative noise strength of this agent
Agent | ( | const std::list< PlotOption > & | plotOptions, |
double | noisefactor = 1 , |
||
const iparamkey & | name = "Agent" , |
||
const paramkey & | revision = "$ID" |
||
) |
constructor.
A list of PlotOption can given. noisefactor is used to set the relative noise strength of this agent
|
virtual |
destructor
|
inlinevirtual |
Returns a pointer to the robot.
Reimplemented in OdeAgent.
|
inlinevirtual |
returns the tracking options
|
virtual |
initializes the object with the given controller, robot 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
|
virtual |
Sends only last motor commands again to robot.
|
virtual |
sets the trackoptions which starts spatial tracking of a robot
Reimplemented in OdeAgent.
|
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.
noise | Noise strength. |
time | (optional) current simulation time (used for logging) |
Reimplemented in OdeAgent.
|
virtual |
stop tracking (returns true of tracking was on);
Reimplemented in OdeAgent.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |