Robotsystem from Robot Group Leipzig: DInvert3ChannelController Class Reference

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

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

# DInvert3ChannelController Class Reference

`#include <dinvert3channelcontroller.h>`

Inheritance diagram for DInvert3ChannelController:

[legend]
Collaboration diagram for DInvert3ChannelController:

[legend]
List of all members.

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

Definition at line 16 of file dinvert3channelcontroller.h.

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

## Constructor & Destructor Documentation

DInvert3ChannelController | ( | int | numberchannels,
|  | int | buffersize
| ) | `[inline]`

| Definition at line 138 of file dinvert3channelcontroller.h.

## Member Function Documentation

double** allocateMatrix | ( | int | m,
|  | int | n
| ) | `[inline]`

| Definition at line 109 of file dinvert3channelcontroller.h.

virtual void calculateControllerValues | ( | double * | x_smooth,
|  | double * | y
| ) | `[inline, protected, virtual]`

| calculate controller ouptus Definition at line 508 of file dinvert3channelcontroller.h.

virtual void calculateDelayedValues | ( | double ** | source,
|  | paramval | number_steps_of_delay_,
|  | double * | target
| ) | `[inline, protected, virtual]`

| calculate delayed values Definition at line 477 of file dinvert3channelcontroller.h.

virtual double calculateE | ( | const double * | x_,
|  | const double * | x_delay,
|  | const double * | y_delay
| ) | `[inline, protected, virtual]`

| Definition at line 323 of file dinvert3channelcontroller.h.

virtual void calculateSmoothValues | ( | double ** | source,
|  | paramval | number_steps_for_averaging_,
|  | double * | target
| ) | `[inline, protected, virtual]`

| Definition at line 490 of file dinvert3channelcontroller.h.

void freeMatrix | ( | double ** | mat,
|  | int | m
| ) | `[inline]`

| Definition at line 117 of file dinvert3channelcontroller.h.

virtual double g | ( | double | z | ) | `[inline, virtual]`

| neuron transfer function Definition at line 86 of file dinvert3channelcontroller.h.

virtual double g_s | ( | double | z | ) | `[inline, virtual]`

| Definition at line 93 of file dinvert3channelcontroller.h.

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

| Definition at line 272 of file dinvert3channelcontroller.h.

virtual int getInternalParams | ( | paramval * | vallist,
|  | int | length
| ) | `[inline, virtual]`

| Definition at line 276 of file dinvert3channelcontroller.h.

virtual constparamkey getName | ( |  | ) | const`[inline, virtual]`

| return the name of the object (with version number) Reimplemented from Configurable. Definition at line 128 of file dinvert3channelcontroller.h.

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. Definition at line 133 of file dinvert3channelcontroller.h.

virtual void inverseMatrix | ( | double ** | Q,
|  | double ** | Q_1
| ) | `[inline, protected, virtual]`

| Definition at line 282 of file dinvert3channelcontroller.h.

virtual void learn | ( | const double * | x_,
|  | const double * | x_delay,
|  | const double * | y_delay
| ) | `[inline, protected, virtual]`

| Definition at line 408 of file dinvert3channelcontroller.h.

virtual void learnModel | ( | const double * | x_actual,
|  | double * | y_effective
| ) | `[inline, protected, virtual]`

| Definition at line 448 of file dinvert3channelcontroller.h.

virtual void putInBuffer | ( | double ** | buffer,
|  | const double * | values
| ) | `[inline, protected, virtual]`

| Definition at line 525 of file dinvert3channelcontroller.h.

virtual double squash | ( | double | z | ) | `[inline, virtual]`

| squashing function, to protect against to large weight updates Definition at line 101 of file dinvert3channelcontroller.h.

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. Definition at line 213 of file dinvert3channelcontroller.h.

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. Definition at line 249 of file dinvert3channelcontroller.h.

## Member Data Documentation

double** A

| model matrix Definition at line 47 of file dinvert3channelcontroller.h.

int BUFFER_SIZE`[protected]`

| Definition at line 36 of file dinvert3channelcontroller.h.

double** C

| controller matrix Definition at line 48 of file dinvert3channelcontroller.h.

double* h

| bias vector Definition at line 49 of file dinvert3channelcontroller.h.

double** L`[protected]`

| Definition at line 43 of file dinvert3channelcontroller.h.

char name[50]

| Definition at line 58 of file dinvert3channelcontroller.h.

int NUMBER_CHANNELS`[protected]`

| Definition at line 35 of file dinvert3channelcontroller.h.

double** Q_buf1`[protected]`

| Definition at line 41 of file dinvert3channelcontroller.h.

double** Q_buf2`[protected]`

| Definition at line 42 of file dinvert3channelcontroller.h.

int t

| number of steps, needed for ringbuffer x_buffer Definition at line 57 of file dinvert3channelcontroller.h.

double** x_buffer

| buffer for input values, x[tbuffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1) Definition at line 51 of file dinvert3channelcontroller.h.

double* x_effective`[protected]`

| Definition at line 39 of file dinvert3channelcontroller.h.

double* x_smooth`[protected]`

| Definition at line 38 of file dinvert3channelcontroller.h.

double* xsi4E

| Definition at line 54 of file dinvert3channelcontroller.h.

double* xsi4Model

| Definition at line 55 of file dinvert3channelcontroller.h.

double** y_buffer

| buffer for output values, y[tbuffersize]=actual value(if already calculated!), y[(t-1+buffersize)buffersize]=y(t-1) Definition at line 52 of file dinvert3channelcontroller.h.

double* y_effective`[protected]`

| Definition at line 40 of file dinvert3channelcontroller.h.

double* z`[protected]`

| Definition at line 44 of file dinvert3channelcontroller.h.