Robotsystem of the Robot Group Leipzig: DInvert3ChannelController Class Reference

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Examples

- Search for |

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# 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:

[legend]
Collaboration diagram for DInvert3ChannelController:

[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[tbuffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1)
double ** | y_buffer
| buffer for output values, y[tbuffersize]=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[tbuffersize]=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[tbuffersize]=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:

- dinvert3channelcontroller.h