Robot Simulator of the Robotics Group for Self-Organization of Control
0.8.0
|
Implements a wiring where the motors are copied to several motors and the sensors are fusioned. More...
#include <copywiring.h>
Public Types | |
typedef std::vector< std::list < int > > | Assignment |
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< 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 Member Functions | |
CopyWiring (const Assignment &sensor_assignment, const Assignment &motor_assignment, NoiseGenerator *noise, int plotMode=Controller|Robot, const std::string &name="CopyWiring") | |
constructor More... | |
virtual | ~CopyWiring () |
destructor More... | |
virtual void | reset () |
reset internal state 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... | |
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 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... | |
Static Public Member Functions | |
static Assignment | motorFromSensorAssignment (const Assignment &sensor_assignment) |
returns the inverse Assignment of the given sensor assignemnt (typically the right thing) More... | |
Protected Member Functions | |
virtual bool | initIntern () |
initializes the number of sensors and motors on robot side, calculate number of sensors and motors on controller side More... | |
virtual bool | wireSensorsIntern (const sensor *rsensors, int rsensornumber, sensor *csensors, int csensornumber, double noise) |
Realizes one to one wiring from robot sensors to controller sensors. More... | |
virtual bool | wireMotorsIntern (motor *rmotors, int rmotornumber, const motor *cmotors, int cmotornumber) |
Realizes one to one wiring from controller motor outputs to robot motors. More... | |
Protected Attributes | |
Assignment | s_assign |
Assignment | m_assign |
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... | |
sensor * | noisevals |
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... | |
NoiseGenerator * | noiseGenerator |
noise generator More... | |
RandGen * | randGen |
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 |
Implements a wiring where the motors are copied to several motors and the sensors are fusioned.
typedef std::vector< std::list<int> > Assignment |
CopyWiring | ( | const Assignment & | sensor_assignment, |
const Assignment & | motor_assignment, | ||
NoiseGenerator * | noise, | ||
int | plotMode = Controller|Robot , |
||
const std::string & | name = "CopyWiring" |
||
) |
constructor
sensor_assignment | for each controller sensor a list of robot sensor it is averaged over |
motor_assignment | for each robot motor a list of controller motors it is averaged over |
noise | NoiseGenerator that is used for adding noise to sensor values |
plotMode | see AbstractWiring |
|
virtual |
destructor
|
protectedvirtual |
initializes the number of sensors and motors on robot side, calculate number of sensors and motors on controller side
Implements AbstractWiring.
|
static |
returns the inverse Assignment of the given sensor assignemnt (typically the right thing)
|
virtual |
reset internal state
Reimplemented from AbstractWiring.
|
protectedvirtual |
Realizes one to one wiring from controller motor outputs to robot motors.
rmotors | pointer to array of motorvalues for robot |
rmotornumber | number of robot motors |
cmotors | pointer to array of motorvalues from controller |
cmotornumber | number of motorvalues from controller |
Implements AbstractWiring.
|
protectedvirtual |
Realizes one to one wiring from robot sensors to controller sensors.
rsensors | pointer to array of sensorvalues from robot |
rsensornumber | number of sensors from robot |
csensors | pointer to array of sensorvalues for controller |
csensornumber | number of sensors to controller |
noise | size of the noise added to the sensors |
Implements AbstractWiring.
|
protected |
|
protected |