DInvert3ChannelController Class Reference

class for robot controller that use naglaa's direct matrix inversion for n channels (simple one layer networks) More...

#include <dinvert3channelcontroller.h>

Inherits InvertController.

Inheritance diagram for DInvert3ChannelController:

Inheritance graph
[legend]
Collaboration diagram for DInvert3ChannelController:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual double g (double z)
 neuron transfer function
virtual double g_s (double z)
virtual double squash (double z)
 squashing function, to protect against to large weight updates
double ** allocateMatrix (int m, int n)
void freeMatrix (double **mat, int m)
virtual constparamkey getName () const
 return the name of the object (with version number)
virtual void init (int sensornumber, int motornumber)
 initialisation of the controller with the given sensor/ motornumber Must be called before use.
 DInvert3ChannelController (int numberchannels, int buffersize)
virtual void step (const sensor *x_, int sensornumber, motor *y_, int motornumber)
 performs one step (includes learning). Calulates motor commands from sensor inputs.
virtual void stepNoLearning (const sensor *x_, int sensornumber, motor *y_, int motornumber)
 performs one step without learning. Calulates motor commands from sensor inputs.
virtual int getInternalParamNames (paramkey *&keylist)
virtual int getInternalParams (paramval *vallist, int length)

Public Attributes

double ** A
 model matrix
double ** C
 controller matrix
double * h
 bias vector
double ** x_buffer
 buffer for input values, x[t%buffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1)
double ** y_buffer
 buffer for output values, y[t%buffersize]=actual value(if already calculated!), y[(t-1+buffersize)buffersize]=y(t-1)
double * xsi4E
double * xsi4Model
int t
 number of steps, needed for ringbuffer x_buffer
char name [50]

Protected Member Functions

virtual void inverseMatrix (double **Q, double **Q_1)
virtual double calculateE (const double *x_, const double *x_delay, const double *y_delay)
virtual void learn (const double *x_, const double *x_delay, const double *y_delay)
virtual void learnModel (const double *x_actual, double *y_effective)
virtual void calculateDelayedValues (double **source, paramval number_steps_of_delay_, double *target)
 calculate delayed values
virtual void calculateSmoothValues (double **source, paramval number_steps_for_averaging_, double *target)
virtual void calculateControllerValues (double *x_smooth, double *y)
 calculate controller ouptus
virtual void putInBuffer (double **buffer, const double *values)

Protected Attributes

int NUMBER_CHANNELS
int BUFFER_SIZE
double * x_smooth
double * x_effective
double * y_effective
double ** Q_buf1
double ** Q_buf2
double ** L
double * z

Detailed Description

class for robot controller that use naglaa's direct matrix inversion for n channels (simple one layer networks)

Implements standart parameters: eps, rho, mu, stepnumber4avg, stepnumber4delay


Constructor & Destructor Documentation

DInvert3ChannelController int  numberchannels,
int  buffersize
[inline]
 


Member Function Documentation

double** allocateMatrix int  m,
int  n
[inline]
 

virtual void calculateControllerValues double *  x_smooth,
double *  y
[inline, protected, virtual]
 

calculate controller ouptus

virtual void calculateDelayedValues double **  source,
paramval  number_steps_of_delay_,
double *  target
[inline, protected, virtual]
 

calculate delayed values

virtual double calculateE const double *  x_,
const double *  x_delay,
const double *  y_delay
[inline, protected, virtual]
 

virtual void calculateSmoothValues double **  source,
paramval  number_steps_for_averaging_,
double *  target
[inline, protected, virtual]
 

void freeMatrix double **  mat,
int  m
[inline]
 

virtual double g double  z  )  [inline, virtual]
 

neuron transfer function

virtual double g_s double  z  )  [inline, virtual]
 

virtual int getInternalParamNames paramkey *&  keylist  )  [inline, virtual]
 

virtual int getInternalParams paramval vallist,
int  length
[inline, virtual]
 

virtual constparamkey getName  )  const [inline, virtual]
 

return the name of the object (with version number)

Reimplemented from Configurable.

virtual void init int  sensornumber,
int  motornumber
[inline, virtual]
 

initialisation of the controller with the given sensor/ motornumber Must be called before use.

Reimplemented from AbstractController.

virtual void inverseMatrix double **  Q,
double **  Q_1
[inline, protected, virtual]
 

virtual void learn const double *  x_,
const double *  x_delay,
const double *  y_delay
[inline, protected, virtual]
 

virtual void learnModel const double *  x_actual,
double *  y_effective
[inline, protected, virtual]
 

virtual void putInBuffer double **  buffer,
const double *  values
[inline, protected, virtual]
 

virtual double squash double  z  )  [inline, virtual]
 

squashing function, to protect against to large weight updates

virtual void step const sensor x_,
int  sensornumber,
motor y_,
int  motornumber
[inline, virtual]
 

performs one step (includes learning). Calulates motor commands from sensor inputs.

Reimplemented from AbstractController.

virtual void stepNoLearning const sensor x_,
int  sensornumber,
motor y_,
int  motornumber
[inline, virtual]
 

performs one step without learning. Calulates motor commands from sensor inputs.

Reimplemented from AbstractController.


Member Data Documentation

double** A
 

model matrix

int BUFFER_SIZE [protected]
 

double** C
 

controller matrix

double* h
 

bias vector

double** L [protected]
 

char name[50]
 

Reimplemented from Configurable.

int NUMBER_CHANNELS [protected]
 

double** Q_buf1 [protected]
 

double** Q_buf2 [protected]
 

int t
 

number of steps, needed for ringbuffer x_buffer

double** x_buffer
 

buffer for input values, x[t%buffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1)

double* x_effective [protected]
 

double* x_smooth [protected]
 

double* xsi4E
 

double* xsi4Model
 

double** y_buffer
 

buffer for output values, y[t%buffersize]=actual value(if already calculated!), y[(t-1+buffersize)buffersize]=y(t-1)

double* y_effective [protected]
 

double* z [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Jan 16 02:14:46 2007 for Robotsystem of the Robot Group Leipzig by doxygen 1.3.8