14 #ifndef __DINVERT3CHANNELCONTROLLER_H
15 #define __DINVERT3CHANNELCONTROLLER_H
40 virtual void step(const sensor*, motor*);
43 virtual void stepNoLearning(const sensor*, motor*);
80 virtual void learn(double *x_delay, double *y_delay);
83 virtual void learnModel(double *x_actual, double *y_effective);
87 virtual void calculateDelayedValues(double source[BUFFER_SIZE][NUMBER_CHANNELS], int number_steps_of_delay_, double *target);
89 virtual void calculateSmoothValues(double source[BUFFER_SIZE][NUMBER_CHANNELS], int number_steps_for_averaging_, double *target);
92 virtual void calculateControllerValues(double *x_smooth, double *y);
94 // put new value in ring buffer
95 virtual void putInBuffer(double buffer[BUFFER_SIZE][NUMBER_CHANNELS], double *values);
99 virtual double g(
double z)
111 cout <<
"do not use this function g_s" << endl;
118 return z < -0.1 ? -0.1 : ( z > 0.1 ? 0.1 :
z );
123 #include "dinvert3channelcontroller.hpp"
virtual double squash(double z)
squashing function, to protect against to large weight updates
Definition: dinvert3channelcontroller.h:116
double * xsi4E
Definition: dinvert3channelcontroller.h:67
double * x_effective
Definition: dinvert3channelcontroller.h:52
virtual double g(double z)
neuron transfer function
Definition: dinvert3channelcontroller.h:99
double ** L
Definition: dinvert3channelcontroller.h:56
double * h
bias vector
Definition: dinvert3channelcontroller.h:62
double ** Q_buf2
Definition: dinvert3channelcontroller.h:55
char name[50]
Definition: dinvert3channelcontroller.h:71
double * x_smooth
Definition: dinvert3channelcontroller.h:51
int t
number of steps, needed for ringbuffer x_buffer
Definition: dinvert3channelcontroller.h:70
int BUFFER_SIZE
Definition: dinvert3channelcontroller.h:49
double * xsi4Model
Definition: dinvert3channelcontroller.h:68
double ** x_buffer
buffer for input values, x[tbuffersize]=actual value, x[(t-1+buffersize)buffersize]=x(t-1) ...
Definition: dinvert3channelcontroller.h:64
virtual double g_s(double z)
Definition: dinvert3channelcontroller.h:106
double ** C
controller matrix
Definition: dinvert3channelcontroller.h:61
double * z
Definition: dinvert3channelcontroller.h:57
int NUMBER_CHANNELS
Definition: dinvert3channelcontroller.h:48
class for robot controller that use naglaa's direct matrix inversion for n channels (simple one layer...
Definition: dinvert3channelcontroller.h:29
double ** A
model matrix
Definition: dinvert3channelcontroller.h:60
double * y_effective
Definition: dinvert3channelcontroller.h:53
Abstract class (interface) for robot controller that use direct matrix inversion and simple one layer...
Definition: invertcontroller.h:33
double ** Q_buf1
Definition: dinvert3channelcontroller.h:54
double ** y_buffer
buffer for output values, y[tbuffersize]=actual value(if already calculated!), y[(t-1+buffersize)buff...
Definition: dinvert3channelcontroller.h:65