#include <invertmotorbigmodel.h>
Inherits InvertMotorController.
Inheritance diagram for InvertMotorBigModel:
Public Member Functions | |
InvertMotorBigModel (const InvertMotorBigModelConf &conf=getDefaultConf()) | |
virtual void | init (int sensornumber, int motornumber) |
initialisation of the controller with the given sensor/ motornumber Must be called before use. | |
virtual | ~InvertMotorBigModel () |
virtual int | getSensorNumber () const |
returns the number of sensors the controller was initialised with or 0 if not initialised | |
virtual int | getMotorNumber () const |
returns the mumber of motors the controller was initialised with or 0 if not initialised | |
virtual void | step (const sensor *, int number_sensors, motor *, int number_motors) |
performs one step (includes learning). | |
virtual void | stepNoLearning (const sensor *, int number_sensors, motor *, int number_motors) |
performs one step without learning. Calulates motor commands from sensor inputs. | |
virtual bool | store (FILE *f) const |
stores the controller values to a given file. | |
virtual bool | restore (FILE *f) |
loads the controller values from a given file. | |
virtual iparamkeylist | getInternalParamNames () const |
The list of the names of all internal parameters given by getInternalParams(). | |
virtual iparamvallist | getInternalParams () const |
virtual ilayerlist | getStructuralLayers () const |
Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering is important. | |
virtual iconnectionlist | getStructuralConnections () const |
Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The orderning is not important. | |
virtual paramval | getParam (const paramkey &key) const |
returns the value of the requested parameter or 0 (+ error message to stderr) if unknown. | |
virtual bool | setParam (const paramkey &key, paramval val) |
sets the value of the given parameter or does nothing if unknown. | |
virtual paramlist | getParamList () const |
The list of all parameters with there value as allocated lists. | |
virtual void | setTeachingMode (bool onOff) |
virtual bool | getTeachingMode () |
virtual void | setMotorTeachingSignal (const motor *teaching, int len) |
void | calcCandHUpdatesTeaching (matrix::Matrix &C_update, matrix::Matrix &H_update, int y_delay) |
calculates the Update for C and H using the teaching signal | |
void | getLastMotors (motor *motors, int len) |
Static Public Member Functions | |
InvertMotorBigModelConf | getDefaultConf () |
Protected Member Functions | |
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 | |
virtual void | calcEtaAndBufferIt (int delay) |
calculates the first shift into the motor space useing delayed motor values. | |
virtual void | learnController () |
learn H,C with motors y and corresponding sensors x | |
virtual void | calcCandHUpdates (matrix::Matrix &C_update, matrix::Matrix &H_update, int y_delay) |
calculates the Update for C and H | |
virtual void | updateCandH (const matrix::Matrix &C_update, const matrix::Matrix &H_update, double squashSize) |
updates the matrix C and H | |
virtual void | learnModel (int delay) |
learn A, (and S) using motors y and corresponding sensors x | |
virtual matrix::Matrix | calculateControllerValues (const matrix::Matrix &x_smooth) |
returns controller output for given sensor values | |
virtual double | calcErrorFactor (const matrix::Matrix &e, bool loga, bool root) |
calculates the error_factor for either logarithmic (E=ln(e^T*e)) or square (E=sqrt(e^t*e)) error | |
Protected Attributes | |
unsigned short | number_sensors |
unsigned short | number_motors |
matrix::Matrix | A |
current response function of the model | |
matrix::Matrix | C |
Controller Matrix. | |
matrix::Matrix | H |
Controller Bias. | |
matrix::Matrix | R |
C*A. | |
matrix::Matrix | SmallID |
small identity matrix in the dimension of R | |
matrix::Matrix | xsi |
current output error | |
double | xsi_norm |
norm of matrix | |
double | xsi_norm_avg |
average norm of xsi (used to define whether Modell learns) | |
double | pain |
if the modelling error (xsi) is too high we have a pain signal | |
matrix::Matrix * | x_buffer |
matrix::Matrix * | y_buffer |
matrix::Matrix * | eta_buffer |
matrix::Matrix | zero_eta |
matrix::Matrix | x_smooth |
matrix::Matrix | y_teaching |
teaching motor signal | |
InvertMotorBigModelConf | conf |
|
|
|
|
|
calculates the Update for C and H
|
|
calculates the Update for C and H using the teaching signal
|
|
calculates the error_factor for either logarithmic (E=ln(e^T*e)) or square (E=sqrt(e^t*e)) error
Reimplemented from InvertMotorController.
|
|
calculates the first shift into the motor space useing delayed motor values.
|
|
returns controller output for given sensor values
|
|
puts the sensors in the ringbuffer, generate controller values and put them in the
|
|
|
|
The list of the names of all internal parameters given by getInternalParams(). The naming convention is "v[i]" for vectors and "A[i][j]" for matrices, where i, j start at 0.
Implements Inspectable.
|
|
Implements Inspectable.
|
|
|
|
returns the mumber of motors the controller was initialised with or 0 if not initialised
Reimplemented from AbstractController.
|
|
returns the value of the requested parameter or 0 (+ error message to stderr) if unknown.
Reimplemented from InvertMotorController.
|
|
The list of all parameters with there value as allocated lists.
Reimplemented from InvertMotorController.
|
|
returns the number of sensors the controller was initialised with or 0 if not initialised
Reimplemented from AbstractController.
|
|
Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The orderning is not important.
Reimplemented from Inspectable.
|
|
Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering is important. The first entry is the input layer and so on.
Reimplemented from Inspectable.
|
|
|
|
initialisation of the controller with the given sensor/ motornumber Must be called before use.
Reimplemented from AbstractController.
|
|
learn H,C with motors y and corresponding sensors x
|
|
learn A, (and S) using motors y and corresponding sensors x
|
|
loads the controller values from a given file.
Implements Storeable.
|
|
|
|
sets the value of the given parameter or does nothing if unknown.
Reimplemented from InvertMotorController.
|
|
|
|
performs one step (includes learning). Calulates motor commands from sensor inputs. Reimplemented from AbstractController.
|
|
performs one step without learning. Calulates motor commands from sensor inputs.
Reimplemented from AbstractController.
|
|
stores the controller values to a given file.
Implements Storeable.
|
|
updates the matrix C and H
|
|
current response function of the model
|
|
Controller Matrix.
|
|
|
|
|
|
Controller Bias.
|
|
|
|
|
|
if the modelling error (xsi) is too high we have a pain signal
|
|
C*A.
|
|
small identity matrix in the dimension of R
|
|
|
|
|
|
current output error
|
|
norm of matrix
|
|
average norm of xsi (used to define whether Modell learns)
|
|
|
|
teaching motor signal
|
|
|