24 #ifndef __UNIVERSALCONTROLLER_H
25 #define __UNIVERSALCONTROLLER_H
69 std::vector<Layer> layers;
75 Elman* e =
new Elman(1,layers,
false,
false,
false);
80 virtual void init(
int sensornumber,
int motornumber,
RandGen* randGen = 0);
86 virtual void step(
const sensor* sensors,
int sensornumber,
87 motor* motors,
int motornumber);
101 int number_steps_for_averaging_);
126 virtual bool store(FILE* f)
const;
Matrix type.
Definition: matrix.h:65
static double tanhr(double z)
Definition: feedforwardnn.h:67
std::list< IConnection > iconnectionlist
Definition: inspectable.h:88
static UniversalControllerConf getDefaultNetConf()
Definition: universalcontroller.h:67
paramval s4del
Definition: universalcontroller.h:150
bool initialised
Definition: universalcontroller.h:134
Abstract class for robot controller (with some basic functionality).
Definition: abstractcontroller.h:46
matrix::Matrix calculateSmoothValues(const matrix::Matrix *buffer, int number_steps_for_averaging_)
calculate time-smoothed values
Definition: universalcontroller.cpp:213
paramval s4avg
Definition: universalcontroller.h:149
virtual ilayerlist getStructuralLayers() const
Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering...
Definition: universalcontroller.cpp:278
double init
init size of the matrices of the network.
Definition: universalcontroller.h:36
matrix::Matrix v
Definition: universalcontroller.h:141
Elman * net
entire contoller network (should have at least 2 layers)
Definition: universalcontroller.h:40
unsigned int number_sensors
Definition: universalcontroller.h:132
double sensor
Definition: types.h:29
virtual int getMotorNumber() const
Definition: universalcontroller.h:84
Definition: universalcontroller.h:34
random generator with 48bit integer arithmentic
Definition: randomgenerator.h:34
paramval epsM
Definition: universalcontroller.h:146
paramval epsDyn
Definition: universalcontroller.h:152
double paramval
Definition: configurable.h:88
virtual void step(const sensor *sensors, int sensornumber, motor *motors, int motornumber)
performs one step (includes learning).
Definition: universalcontroller.cpp:94
Multilayer Neural Network with context neurons (after Elman and Jordan) Example of 2 hidden layer net...
Definition: elman.h:58
struct _UniversalControllerConf UniversalControllerConf
unsigned int number_motors
Definition: universalcontroller.h:133
paramval eps
Definition: universalcontroller.h:145
matrix::Matrix * v_buffer
Definition: universalcontroller.h:139
bool someInternalParams
someInternalParams if true only some internal parameters are exported, all otherwise ...
Definition: universalcontroller.h:38
unsigned int buffersize
buffersize size of the time-buffer for x,y,v
Definition: universalcontroller.h:35
paramval Enorm
Definition: universalcontroller.h:151
int motorlayer
index of motor layer in the network (if -1 then one but last layer)
Definition: universalcontroller.h:41
virtual void stepNoLearning(const sensor *, int number_sensors, motor *, int number_motors)
performs one step without learning.
Definition: universalcontroller.cpp:178
virtual iconnectionlist getStructuralConnections() const
Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The...
Definition: universalcontroller.cpp:282
void putInBuffer(matrix::Matrix *buffer, const matrix::Matrix &vec, int delay=0)
Definition: universalcontroller.h:107
virtual void init(int sensornumber, int motornumber, RandGen *randGen=0)
initialisation of the controller with the given sensor/ motornumber Must be called before use...
Definition: universalcontroller.cpp:59
UniversalControllerConf conf
Definition: universalcontroller.h:136
virtual int getSensorNumber() const
Definition: universalcontroller.h:82
matrix::Matrix * y_buffer
Definition: universalcontroller.h:138
double motor
Definition: types.h:30
virtual std::list< iparamval > getInternalParams() const
Definition: universalcontroller.cpp:266
paramval epsV
Definition: universalcontroller.h:147
matrix::Matrix J
Definition: universalcontroller.h:142
virtual std::list< iparamkey > getInternalParamNames() const
The list of the names of all internal parameters given by getInternalParams().
Definition: universalcontroller.cpp:254
class for robot control with sine and cosine
Definition: universalcontroller.h:50
virtual bool restore(FILE *f)
loads the object from the given file stream (ASCII preferred).
Definition: universalcontroller.cpp:244
matrix::Matrix xsi_smooth
Definition: universalcontroller.h:143
matrix::Matrix * x_buffer
Definition: universalcontroller.h:137
static double calcErrorFactor(const matrix::Matrix &e, int Enorm)
calculates the error_factor for 1: square (E=sqrt(e^t*e)) error; 2: logarithmic (E=ln(e^T*e)) or 0 fo...
Definition: universalcontroller.cpp:226
void fillBuffersAndControl(const sensor *x_, int number_sensors, motor *y_, int number_motors)
puts the sensors in the ringbuffer, generate controller values (by activating the network) and put th...
Definition: universalcontroller.cpp:185
virtual bool store(FILE *f) const
stores the object to the given file stream (ASCII preferred).
Definition: universalcontroller.cpp:237
static double linear(double z)
Definition: feedforwardnn.h:54
std::list< ILayer > ilayerlist
Definition: inspectable.h:87
paramval lambda
Definition: universalcontroller.h:148
UniversalController(const UniversalControllerConf &conf=getDefaultConf())
Definition: universalcontroller.cpp:33
virtual ~UniversalController()
Definition: universalcontroller.cpp:51
unsigned int t
Definition: universalcontroller.h:131
static UniversalControllerConf getDefaultConf()
Definition: universalcontroller.h:56
int c
Definition: hexapod.cpp:56
matrix::Matrix calculateControllerValues(const matrix::Matrix &x)
calculate controller outputs (and activates inputs)
Definition: universalcontroller.cpp:206
double squashsize
update squashing
Definition: universalcontroller.h:37