This is an adapter for a teachable controller to implement a cross motor coupling, see dissertation of Georg Martius. More...
#include <crossmotorcoupling.h>
Inherits AbstractControllerAdapter, and Teachable.

Public Member Functions | |
| CrossMotorCoupling (AbstractController *controller, Teachable *teachable, double threshold=0.4) | |
| virtual void | step (const sensor *sensors, int sensornumber, motor *motors, int motornumber) |
| performs one step (includes learning). | |
| virtual void | setCMC (const CMC &cmc) |
| virtual CMC | getCMC () |
| virtual void | setMotorTeaching (const matrix::Matrix &teaching) |
| The given motor teaching signal is used for this timestep. | |
| virtual void | setSensorTeaching (const matrix::Matrix &teaching) |
| The given sensor teaching signal (distal learning) is used for this timestep. | |
| virtual matrix::Matrix | getLastMotorValues () |
| returns the last motor values (useful for cross motor coupling) | |
| virtual matrix::Matrix | getLastSensorValues () |
| returns the last sensor values (useful for cross sensor coupling) | |
Static Public Member Functions | |
| static CMC | getPermutationCMC (const std::list< int > &permutation) |
| creates a permutation cross motor coupling, where for each motor we define one cross motor connection. | |
Protected Attributes | |
| CMC | cmc |
| Teachable * | teachable |
| double | threshold |
| treshhold below which not cmc-teaching is done | |
This is an adapter for a teachable controller to implement a cross motor coupling, see dissertation of Georg Martius.
| CrossMotorCoupling | ( | AbstractController * | controller, | |
| Teachable * | teachable, | |||
| double | threshold = 0.4 | |||
| ) | [inline] |
| controller | actual controller | |
| teachable | also pointer to the controller, must be equal to controller. This trick is used to ensure that the controller is both "AbstractController" and "Teachable". | |
| threshold | value below which (absolute) no cross motor teaching is done (avoids suppression of activity) |
| CMC getCMC | ( | ) | [virtual] |
| virtual matrix::Matrix getLastMotorValues | ( | ) | [inline, virtual] |
returns the last motor values (useful for cross motor coupling)
Implements Teachable.
| virtual matrix::Matrix getLastSensorValues | ( | ) | [inline, virtual] |
returns the last sensor values (useful for cross sensor coupling)
Implements Teachable.
| CMC getPermutationCMC | ( | const std::list< int > & | permutation | ) | [static] |
creates a permutation cross motor coupling, where for each motor we define one cross motor connection.
| permutation | permutation[i]=j means that motor i receives from motor j |
| void setCMC | ( | const CMC & | cmc | ) | [virtual] |
| virtual void setMotorTeaching | ( | const matrix::Matrix & | teaching | ) | [inline, virtual] |
The given motor teaching signal is used for this timestep.
It is used as a feed forward teaching signal for the controller. Please note, that the teaching signal has to be given each timestep for a continuous teaching process.
| teaching,: | matrix with dimensions (motornumber,1) |
Implements Teachable.
| virtual void setSensorTeaching | ( | const matrix::Matrix & | teaching | ) | [inline, virtual] |
The given sensor teaching signal (distal learning) is used for this timestep.
The belonging motor teachung signal is calculated by the inverse model. See setMotorTeaching
| teaching,: | matrix with dimensions (motorsensors,1) |
Implements Teachable.
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 |
Reimplemented from AbstractControllerAdapter.
double threshold [protected] |
treshhold below which not cmc-teaching is done
1.6.3