AbstractController Class Reference

Abstract class (interface) for robot controller. More...

#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:

Inheritance graph
[legend]
Collaboration diagram for AbstractController:

Collaboration graph
[legend]
List of all members.

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.

Detailed Description

Abstract class (interface) for robot controller.

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:

Examples:

directconnect/directconnect.cpp, integration/main.cpp, and template_sphererobot/main.cpp.


Member Typedef Documentation

typedef double motor

typedef double sensor


Constructor & Destructor Documentation

AbstractController ( const std::string &  name,
const std::string &  revision 
) [inline]

contructor (hint: use $ID$ for revision)


Member Function Documentation

virtual int getMotorNumber (  )  const [pure virtual]

Returns:
Number of motors the controller was initialised with or 0 if not initialised

Implemented in AbstractControllerAdapter, AbstractIAFController, BasicController, ClassicReinforce, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MutualInformationController, ReplayController, SineController, and use_java_controller.

virtual int getSensorNumber (  )  const [pure virtual]

Returns:
Number of sensors the controller was initialised with or 0 if not initialised

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.

Examples:
directconnect/directconnect.cpp.

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.

Parameters:
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.

Examples:
directconnect/directconnect.cpp.

virtual void stepNoLearning ( const sensor ,
int  number_sensors,
motor ,
int  number_motors 
) [pure virtual]

performs one step without learning.

See also:
step

Implemented in AbstractControllerAdapter, AbstractIAFController, AbstractMultiController, BasicController, ClassicReinforce, DiscreteControllerAdapter, Discretesizable, FFNNController, InvertMotorBigModel, InvertMotorNStep, InvertMotorSpace, InvertNChannelController, MeasureAdapter, MutualInformationController, OneActiveMultiPassiveController, ReplayController, SineController, and use_java_controller.


The documentation for this class was generated from the following file:
Generated on Fri Oct 30 16:29:02 2009 for Robot Simulator of the Robotics Group for Self-Organization of Control by  doxygen 1.4.7