#include <abstractcontroller.h>
Inherits Configurable, Inspectable, and Storeable.
Inherited by AbstractControllerAdapter, AbstractIAFController, ClassicReinforce, FFNNController, HomeokinBase, InvertController, MutualInformationController, ReplayController, SineController, and use_java_controller.
Inheritance diagram for AbstractController:
Public Types | |
typedef double | sensor |
typedef double | motor |
Public Member Functions | |
AbstractController (const std::string &name, const std::string &revision) | |
contructor (hint: use $ID$ for revision) | |
virtual void | init (int sensornumber, int motornumber, RandGen *randGen=0)=0 |
initialisation of the controller with the given sensor/ motornumber Must be called before use. | |
virtual int | getSensorNumber () const =0 |
virtual int | getMotorNumber () const =0 |
virtual void | step (const sensor *sensors, int sensornumber, motor *motors, int motornumber)=0 |
performs one step (includes learning). | |
virtual void | stepNoLearning (const sensor *, int number_sensors, motor *, int number_motors)=0 |
performs one step without learning. |
The controller gets a number of input sensor values each timestep and has to generate a number of output motor values.
Interface assumes the following usage:
typedef double motor |
typedef double sensor |
AbstractController | ( | const std::string & | name, | |
const std::string & | revision | |||
) | [inline] |
contructor (hint: use $ID$ for revision)
virtual int getMotorNumber | ( | ) | const [pure virtual] |
Implemented in AbstractControllerAdapter, AbstractIAFController, BasicController, ClassicReinforce, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MutualInformationController, ReplayController, SineController, and use_java_controller.
virtual int getSensorNumber | ( | ) | const [pure virtual] |
Implemented in AbstractControllerAdapter, AbstractIAFController, BasicController, ClassicReinforce, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MutualInformationController, ReplayController, SineController, and use_java_controller.
virtual void init | ( | int | sensornumber, | |
int | motornumber, | |||
RandGen * | randGen = 0 | |||
) | [pure virtual] |
initialisation of the controller with the given sensor/ motornumber Must be called before use.
The random generator is optional.
Implemented in AbstractControllerAdapter, AbstractIAFController, AbstractMultiController, BasicController, ClassicReinforce, DiscreteControllerAdapter, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MeasureAdapter, MutualInformationController, OneActiveMultiPassiveController, ReplayController, SineController, and use_java_controller.
virtual void step | ( | const sensor * | sensors, | |
int | sensornumber, | |||
motor * | motors, | |||
int | motornumber | |||
) | [pure virtual] |
performs one step (includes learning).
Calculates motor commands from sensor inputs.
sensors | sensors inputs scaled to [-1,1] | |
sensornumber | length of the sensor array | |
motors | motors outputs. MUST have enough space for motor values! | |
motornumber | length of the provided motor array |
Implemented in AbstractControllerAdapter, AbstractIAFController, AbstractMultiController, BasicController, ClassicReinforce, DiscreteControllerAdapter, Discretesizable, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MeasureAdapter, MutualInformationController, OneActiveMultiPassiveController, ReplayController, SineController, and use_java_controller.
virtual void stepNoLearning | ( | const sensor * | , | |
int | number_sensors, | |||
motor * | , | |||
int | number_motors | |||
) | [pure virtual] |
performs one step without learning.
Implemented in AbstractControllerAdapter, AbstractIAFController, AbstractMultiController, BasicController, ClassicReinforce, DiscreteControllerAdapter, Discretesizable, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MeasureAdapter, MutualInformationController, OneActiveMultiPassiveController, ReplayController, SineController, and use_java_controller.