20 #ifndef __INVERTMOTORBIGMODEL_H
21 #define __INVERTMOTORBIGMODEL_H
58 virtual void init(
int sensornumber,
int motornumber,
RandGen* randGen = 0);
78 virtual bool store(FILE* f)
const;
virtual int getMotorNumber() const
returns the mumber of motors the controller was initialised with or 0 if not initialised ...
Definition: invertmotorbigmodel.h:65
paramval squashSize
size of the box, where the parameter updates are clipped to
Definition: homeokinbase.h:65
Matrix type.
Definition: matrix.h:65
matrix::Matrix x_smooth
Definition: invertmotorbigmodel.h:137
abstract class (interface) for invertable models.
Definition: invertablemodel.h:33
std::list< IConnection > iconnectionlist
Definition: inspectable.h:88
matrix::Matrix * eta_buffer
Definition: invertmotorbigmodel.h:135
class for robot controller is based on InvertMotorNStep
Definition: invertmotorbigmodel.h:54
double pain
if the modelling error (xsi) is too high we have a pain signal
Definition: invertmotorbigmodel.h:132
void limitC(matrix::Matrix &weightmatrix, unsigned int rfSize)
sets all connections to zero which are further away then rfSize.
Definition: invertmotorbigmodel.cpp:347
matrix::Matrix SmallID
small identity matrix in the dimension of R
Definition: invertmotorbigmodel.h:128
paramval inhibition
inhibition strength for sparce kwta strategy (is scaled with epsC)
Definition: invertmotorbigmodel.h:145
virtual void fillBuffersAndControl(const sensor *x_, int number_sensors, motor *y_, int number_motors)
puts the sensors in the ringbuffer, generate controller values and put them in the ...
Definition: invertmotorbigmodel.cpp:132
InvertableModel * model
model used as world model
Definition: invertmotorbigmodel.h:42
matrix::Matrix * x_buffer
Definition: invertmotorbigmodel.h:133
unsigned short number_sensors
Definition: invertmotorbigmodel.h:119
paramval dampS
damping of S matrix
Definition: invertmotorbigmodel.h:148
virtual bool restore(FILE *f)
loads the controller values from a given file.
Definition: invertmotorbigmodel.cpp:370
double sensor
Definition: types.h:29
virtual void setSensorTeachingSignal(const sensor *teaching, int len)
The given sensor teaching signal (distal learning) is used for this timestep.
Definition: invertmotorbigmodel.cpp:457
double modelCompliant
learning factor for model (or sensor) compliant learning
Definition: invertmotorbigmodel.h:40
InvertMotorBigModel(const InvertMotorBigModelConf &conf=getDefaultConf())
Definition: invertmotorbigmodel.cpp:27
random generator with 48bit integer arithmentic
Definition: randomgenerator.h:34
int t_rand
initial random time to avoid syncronous management of all controllers
Definition: invertmotorbigmodel.h:141
void getLastMotors(motor *motors, int len)
Definition: invertmotorbigmodel.cpp:302
double xsi_norm
norm of matrix
Definition: invertmotorbigmodel.h:130
NoiseGenerator * BNoiseGen
Noisegenerator for noisy bias.
Definition: invertmotorbigmodel.h:126
int buffersize
buffersize size of the time-buffer for x,y,eta
Definition: invertmotorbigmodel.h:33
void kwtaInhibition(matrix::Matrix &weightmatrix, unsigned int k, double damping)
k-winner take all inhibition for synapses.
Definition: invertmotorbigmodel.cpp:328
virtual void step(const sensor *, int number_sensors, motor *, int number_motors)
performs one step (includes learning).
Definition: invertmotorbigmodel.cpp:107
Definition: invertmotorbigmodel.h:32
double sensor
Definition: abstractcontroller.h:48
bool useTeaching
flag whether there is an actual teachning signal or not
Definition: invertmotorbigmodel.h:140
double paramval
Definition: configurable.h:88
Extended HomeokinBase class (still abstract) for robot controller work in motorspace and use possibly...
Definition: invertmotorcontroller.h:36
matrix::Matrix * y_buffer
Definition: invertmotorbigmodel.h:134
virtual ilayerlist getStructuralLayers() const
Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering...
Definition: invertmotorbigmodel.cpp:431
matrix::Matrix H
Controller Bias.
Definition: invertmotorbigmodel.h:125
matrix::Matrix C
Controller Matrix.
Definition: invertmotorbigmodel.h:124
double xsi_norm_avg
average norm of xsi (used to define whether Modell learns)
Definition: invertmotorbigmodel.h:131
virtual iparamvallist getInternalParams() const
Definition: invertmotorbigmodel.cpp:407
paramval kwta
(int) number of synapses that get strengthend
Definition: invertmotorbigmodel.h:146
matrix::Matrix S
additional Model Matrix (sensors derivatives to sensors)
Definition: invertmotorbigmodel.h:123
virtual void stepNoLearning(const sensor *, int number_sensors, motor *, int number_motors)
performs one step without learning. Calulates motor commands from sensor inputs.
Definition: invertmotorbigmodel.cpp:125
virtual void calcEtaAndBufferIt(int delay)
calculates the first shift into the motor space useing delayed motor values.
Definition: invertmotorbigmodel.cpp:165
bool modelInit
size of the unit-map strenght of the model
Definition: invertmotorbigmodel.h:36
virtual void updateCandH(const matrix::Matrix &C_update, const matrix::Matrix &H_update, double squashSize)
updates the matrix C and H
Definition: invertmotorbigmodel.cpp:265
virtual matrix::Matrix calculateControllerValues(const matrix::Matrix &x_smooth)
returns controller output for given sensor values
Definition: invertmotorbigmodel.cpp:297
static InvertMotorBigModelConf getDefaultConf()
Definition: invertmotorbigmodel.h:103
InvertMotorBigModelConf conf
Definition: invertmotorbigmodel.h:150
virtual void setMotorTeachingSignal(const motor *teaching, int len)
The given motor teaching signal is used for this timestep.
Definition: invertmotorbigmodel.cpp:450
double motor
Definition: types.h:30
matrix::Matrix R
C*A.
Definition: invertmotorbigmodel.h:127
virtual void management()
handles inhibition damping etc.
Definition: invertmotorbigmodel.cpp:314
struct InvertMotorBigModelConf InvertMotorBigModelConf
matrix::Matrix xsi
current output error
Definition: invertmotorbigmodel.h:129
virtual bool store(FILE *f) const
stores the controller values to a given file.
Definition: invertmotorbigmodel.cpp:359
virtual iparamkeylist getInternalParamNames() const
The list of the names of all internal parameters given by getInternalParams().
Definition: invertmotorbigmodel.cpp:383
virtual void learnController()
learn H,C with motors y and corresponding sensors x
Definition: invertmotorbigmodel.cpp:180
int managementInterval
interval between subsequent management function calls
Definition: invertmotorbigmodel.h:144
virtual void learnModel(int delay)
learn A, (and S) using motors y and corresponding sensors x
Definition: invertmotorbigmodel.cpp:273
matrix::Matrix y_teaching
teaching motor signal
Definition: invertmotorbigmodel.h:139
virtual ~InvertMotorBigModel()
Definition: invertmotorbigmodel.cpp:44
double motor
Definition: abstractcontroller.h:49
virtual void calcCandHUpdates(matrix::Matrix &C_update, matrix::Matrix &H_update, int y_delay)
calculates the Update for C and H
Definition: invertmotorbigmodel.cpp:200
matrix::Matrix zero_eta
Definition: invertmotorbigmodel.h:136
std::list< ILayer > ilayerlist
Definition: inspectable.h:87
virtual int getSensorNumber() const
returns the number of sensors the controller was initialised with or 0 if not initialised ...
Definition: invertmotorbigmodel.h:63
double cInit
cInit size of the C matrix to initialised with.
Definition: invertmotorbigmodel.h:34
std::list< iparamkey > iparamkeylist
Definition: inspectable.h:59
bool someInternalParams
someInternalParams if true only some internal parameters are exported, otherwise all ...
Definition: invertmotorbigmodel.h:38
std::list< iparamval > iparamvallist
Definition: inspectable.h:61
virtual iconnectionlist getStructuralConnections() const
Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The...
Definition: invertmotorbigmodel.cpp:439
bool useS
useS decides whether to use the S matrix in addition to the A matrix
Definition: invertmotorbigmodel.h:37
matrix::Matrix calcDerivatives(const matrix::Matrix *buffer, int delay)
Calculates first and second derivative and returns both in on matrix (above).
Definition: invertmotorbigmodel.cpp:307
unsigned short number_motors
Definition: invertmotorbigmodel.h:120
int c
Definition: hexapod.cpp:56
virtual void init(int sensornumber, int motornumber, RandGen *randGen=0)
initialisation of the controller with the given sensor/ motornumber Must be called before use...
Definition: invertmotorbigmodel.cpp:56
double cNonDiag
cNonDiag is the size of the nondiagonal elements in respect to the diagonal (cInit) ones ...
Definition: invertmotorbigmodel.h:35
paramval limitRF
(int) receptive field of motor neurons (number of offcenter sensors) if null then no limitation...
Definition: invertmotorbigmodel.h:147
matrix::Matrix A
Model Matrix (motors to sensors)
Definition: invertmotorbigmodel.h:122
Interface and basic class for noise generator.
Definition: noisegenerator.h:37