20 #ifndef __CROSSMOTORCOUPLING_H
21 #define __CROSSMOTORCOUPLING_H
34 typedef std::vector< std::list<int> >
CMC;
60 assert((
void*)t2==(
void*)teachable);
63 virtual void step(
const sensor* sensors,
int sensornumber,
motor* motors,
int motornumber);
Matrix type.
Definition: matrix.h:65
Interface for teachable controller.
Definition: teachable.h:32
Abstract class for robot controller (with some basic functionality).
Definition: abstractcontroller.h:46
Abstract adapter class (interface) for robot controller.
Definition: abstractcontrolleradapter.h:52
virtual matrix::Matrix getLastSensorValues()=0
returns the last sensor values (useful for cross sensor coupling)
virtual void setMotorTeaching(const matrix::Matrix &teaching)=0
The given motor teaching signal is used for this timestep.
virtual matrix::Matrix getLastMotorValues()=0
returns the last motor values (useful for cross motor coupling)
CMC cmc
Definition: crossmotorcoupling.h:93
double sensor
Definition: types.h:29
static CMC getPermutationCMC(const std::list< int > &permutation)
creates a permutation cross motor coupling, where for each motor we define one cross motor connection...
Definition: crossmotorcoupling.cpp:58
AbstractController * controller
Definition: abstractcontrolleradapter.h:158
virtual matrix::Matrix getLastSensorValues()
returns the last sensor values (useful for cross sensor coupling)
Definition: crossmotorcoupling.h:81
virtual void setSensorTeaching(const matrix::Matrix &teaching)=0
The given sensor teaching signal (distal learning) is used for this timestep.
Teachable * teachable
Definition: crossmotorcoupling.h:94
virtual CMC getCMC()
Definition: crossmotorcoupling.cpp:53
virtual void setSensorTeaching(const matrix::Matrix &teaching)
The given sensor teaching signal (distal learning) is used for this timestep.
Definition: crossmotorcoupling.h:74
CrossMotorCoupling(AbstractController *controller, Teachable *teachable, double threshold=0.4)
Definition: crossmotorcoupling.h:52
virtual matrix::Matrix getLastMotorValues()
returns the last motor values (useful for cross motor coupling)
Definition: crossmotorcoupling.h:77
std::vector< std::list< int > > CMC
Adjacency lists representing the connection graph.
Definition: crossmotorcoupling.h:34
double motor
Definition: types.h:30
virtual void step(const sensor *sensors, int sensornumber, motor *motors, int motornumber)
performs one step (includes learning).
Definition: crossmotorcoupling.cpp:25
double threshold
treshhold below which not cmc-teaching is done
Definition: crossmotorcoupling.h:95
virtual void setCMC(const CMC &cmc)
Definition: crossmotorcoupling.cpp:49
virtual void setMotorTeaching(const matrix::Matrix &teaching)
The given motor teaching signal is used for this timestep.
Definition: crossmotorcoupling.h:70
This is an adapter for a teachable controller to implement a cross motor coupling, see dissertation of Georg Martius.
Definition: crossmotorcoupling.h:41