Invert3ChannelController Class Template Reference

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

#include <invert3channelcontroller.h>

Inherits InvertController.

Inheritance diagram for Invert3ChannelController:

Inheritance graph
[legend]
Collaboration diagram for Invert3ChannelController:

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
 Invert3ChannelController ()
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.

Public Attributes

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

Protected Member Functions

virtual void inverseMatrix (double Q[NUMBER_CHANNELS][NUMBER_CHANNELS], double Q_1[NUMBER_CHANNELS][NUMBER_CHANNELS])
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[BUFFER_SIZE][NUMBER_CHANNELS], paramval number_steps_of_delay_, double *target)
 calculate delayed values
virtual void calculateSmoothValues (double source[BUFFER_SIZE][NUMBER_CHANNELS], paramval number_steps_for_averaging_, double *target)
virtual void calculateControllerValues (double *x_smooth, double *y)
 calculate controller ouptus
virtual void putInBuffer (double buffer[BUFFER_SIZE][NUMBER_CHANNELS], const double *values)
virtual int getInternalParamNames (paramkey *&keylist)
virtual int getInternalParams (paramval *vallist, int length)

Detailed Description

template<int NUMBER_CHANNELS, int BUFFER_SIZE = 2>
class Invert3ChannelController< NUMBER_CHANNELS, BUFFER_SIZE >

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

Invert3ChannelController  )  [inline]
 


Member Function Documentation

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

calculate controller ouptus

virtual void calculateDelayedValues double  source[BUFFER_SIZE][NUMBER_CHANNELS],
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[BUFFER_SIZE][NUMBER_CHANNELS],
paramval  number_steps_for_averaging_,
double *  target
[inline, protected, virtual]
 

virtual double g double  z  )  [inline, virtual]
 

neuron transfer function

virtual double g_s double  z  )  [inline, virtual]
 

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

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

virtual void inverseMatrix double  Q[NUMBER_CHANNELS][NUMBER_CHANNELS],
double  Q_1[NUMBER_CHANNELS][NUMBER_CHANNELS]
[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[BUFFER_SIZE][NUMBER_CHANNELS],
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[NUMBER_CHANNELS][NUMBER_CHANNELS]
 

model matrix

double C[NUMBER_CHANNELS][NUMBER_CHANNELS]
 

controller matrix

double h[NUMBER_CHANNELS]
 

bias vector

int t
 

number of steps, needed for ringbuffer x_buffer

double x_buffer[BUFFER_SIZE][NUMBER_CHANNELS]
 

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

double xsi4E[NUMBER_CHANNELS]
 

double xsi4Model[NUMBER_CHANNELS]
 

double y_buffer[BUFFER_SIZE][NUMBER_CHANNELS]
 

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


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