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[tbuffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1)
double y_buffer [BUFFER_SIZE][NUMBER_CHANNELS]
 buffer for output values, y[tbuffersize]=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[tbuffersize]=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[tbuffersize]=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 Mon Aug 7 16:50:19 2006 for Robotsystem of the Robot Group Leipzig by  doxygen 1.4.7