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
FeedbackWiring Class Reference

Implements essentionally a one to one wiring with feedback connections. More...

#include <feedbackwiring.h>

Inheritance diagram for FeedbackWiring:
Collaboration diagram for FeedbackWiring:

Public Types

enum  Mode { Motor =1, Context =2, All =3 }
 
- Public Types inherited from AbstractWiring
enum  PlotTypes { Nothing =0, Robot =1, Controller =4, Noise =8 }
 
typedef double sensor
 
typedef double motor
 
- 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 Member Functions

 FeedbackWiring (NoiseGenerator *noise, Mode mode=Context, double feedbackratio=0.9, const std::string &name="FeedBackWiring")
 constructor More...
 
virtual ~FeedbackWiring ()
 
virtual std::list< iparamkeygetInternalParamNames () const
 The list of the names of all internal parameters given by getInternalParams(). More...
 
virtual std::list< iparamvalgetInternalParams () const
 
virtual matrix::Matrix getFeedbackRatio () const
 return the feedback ratio vector More...
 
virtual void setFeedbackRatio (const matrix::Matrix &)
 sets the feedback ratio vector. More...
 
- Public Member Functions inherited from AbstractWiring
 AbstractWiring (NoiseGenerator *noise, int plotMode=Controller, const std::string &name="AbstractWiring")
 constructor More...
 
virtual ~AbstractWiring ()
 destructor More...
 
virtual bool init (int robotsensornumber, int robotmotornumber, RandGen *randGen=0)
 Initializes the number of sensors and motors from robot (to be precise the internal parameters rsensornumber and rmotornumber!), calculates the number of sensors and motors on controller side. More...
 
virtual bool wireSensors (const sensor *rsensors, int rsensornumber, sensor *csensors, int csensornumber, double noiseStrength)
 Realizes wiring from robot sensors to controller sensors. More...
 
virtual bool wireMotors (motor *rmotors, int rmotornumber, const motor *cmotors, int cmotornumber)
 Realizes wiring from controller motor outputs to robot motors. More...
 
virtual int getRobotSensornumber ()
 Returns the number of sensors on robot side. More...
 
virtual int getRobotMotornumber ()
 Returns the number of motors on robot side. More...
 
virtual int getControllerSensornumber ()
 Returns the number of sensors on controller side. More...
 
virtual int getControllerMotornumber ()
 Returns the number of motors on controller side. More...
 
virtual std::list
< SensorMotorInfo
wireSensorInfos (const std::list< SensorMotorInfo > &robotSensorInfos)
 routes the infos of the motors from robot to controller More...
 
virtual std::list
< SensorMotorInfo
wireMotorInfos (const std::list< SensorMotorInfo > &robotMotorInfos)
 routes the infos of the motors from robot to controller More...
 
virtual void reset ()
 reset internal state More...
 
void addSensorMotorInfosToInspectable (const std::list< SensorMotorInfo > &robotSensorInfos, const std::list< SensorMotorInfo > &robotMotorInfos, const std::list< SensorMotorInfo > &controllerSensorInfos, const std::list< SensorMotorInfo > &controllerMotorInfos)
 used by WiredController to pass infos to inspectable More...
 
- Public Member Functions inherited from Inspectable
 Inspectable (const iparamkey &name="")
 TYPEDEFS END. More...
 
virtual ~Inspectable ()
 
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...
 

Protected Member Functions

virtual bool initIntern ()
 to be overloaded by subclasses The rsensornumber and rmotornumber are already stored in the member variables. More...
 
virtual bool wireSensorsIntern (const sensor *rsensors, int rsensornumber, sensor *csensors, int csensornumber, double noise)
 to be overloaded by subclasses More...
 
virtual bool wireMotorsIntern (motor *rmotors, int rmotornumber, const motor *cmotors, int cmotornumber)
 to be overloaded by subclasses More...
 

Protected Attributes

Mode mode
 
double defaultfeedbackratio
 
matrix::Matrix feedbackratio
 
motormotors
 array that stored the values of the motors More...
 
int vmotornumber
 
- Protected Attributes inherited from AbstractWiring
int plotMode
 using plotTypes this variables defines what is plotted More...
 
matrix::Matrix mNoise
 for storing the noise values More...
 
sensornoisevals
 
int noisenumber
 
int rsensornumber
 number of sensors at robot side More...
 
matrix::Matrix mRsensors
 copy of the last robot sensors More...
 
int rmotornumber
 number of motors at robot side More...
 
matrix::Matrix mRmotors
 copy of the last robot motors More...
 
int csensornumber
 number of sensors at controller side More...
 
matrix::Matrix mCsensors
 copy of the last controller sensors More...
 
int cmotornumber
 number of motors at controller side More...
 
matrix::Matrix mCmotors
 copy of the last controller motors More...
 
NoiseGeneratornoiseGenerator
 noise generator More...
 
RandGenrandGen
 random generator used in NoiseGenerator (in case it is needed by subclasses) More...
 
bool initialised
 
- Protected Attributes inherited from Inspectable
iparamkey name
 
iparampairlist mapOfValues
 
imatrixpairlist mapOfMatrices
 
infoLinesList infoLineStringList
 

Detailed Description

Implements essentionally a one to one wiring with feedback connections.

The feedback connections from output to input are parameterised with a feedback strength. It is possible to generate virtual motors for context sensors.

In order to change the feedback strength after initialisation use the following code

matrix::Matrix rs = wiring->getFeedbackRatio();
double c=ratio;
wiring->setFeedbackRatio(rs);

Member Enumeration Documentation

enum Mode
Enumerator
Motor 
Context 
All 

Constructor & Destructor Documentation

FeedbackWiring ( NoiseGenerator noise,
Mode  mode = Context,
double  feedbackratio = 0.9,
const std::string &  name = "FeedBackWiring" 
)

constructor

Parameters
noiseNoiseGenerator that is used for adding noise to sensor values
modeMotor|Context|All: Motor: motor outputs send feedback; Context: virtual motor outputs for each context sensor with feedback
feedbackratiodefault ratio used to feed back the output to the input, meaning

\[ x_t = 0.1*x_t + 0.9*y_{t-1} \]

~FeedbackWiring ( )
virtual

Member Function Documentation

matrix::Matrix getFeedbackRatio ( ) const
virtual

return the feedback ratio vector

Inspectable::iparamkeylist getInternalParamNames ( ) const
virtual

The list of the names of all internal parameters given by getInternalParams().

The naming convention is "v[i]" for vectors and "A[i][j]" for matrices, where i, j start at 0.

Returns
: list of keys

Reimplemented from Inspectable.

Inspectable::iparamvallist getInternalParams ( ) const
virtual
Returns
: list of values

Reimplemented from Inspectable.

bool initIntern ( )
protectedvirtual

to be overloaded by subclasses The rsensornumber and rmotornumber are already stored in the member variables.

The random values are to be accessed via the noiseGenerator.

See Also
init()

Implements AbstractWiring.

void setFeedbackRatio ( const matrix::Matrix ratios)
virtual

sets the feedback ratio vector.

The size of the vector must be at least as large as getFeedbackRatio()

bool wireMotorsIntern ( motor rmotors,
int  rmotornumber,
const motor cmotors,
int  cmotornumber 
)
protectedvirtual

to be overloaded by subclasses

See Also
wireMotors()

Implements AbstractWiring.

bool wireSensorsIntern ( const sensor rsensors,
int  rsensornumber,
sensor csensors,
int  csensornumber,
double  noiseStrength 
)
protectedvirtual

to be overloaded by subclasses

See Also
wireSensors()

Implements AbstractWiring.

Member Data Documentation

double defaultfeedbackratio
protected
matrix::Matrix feedbackratio
protected
Mode mode
protected
motor* motors
protected

array that stored the values of the motors

int vmotornumber
protected

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