InvertMotorController Class Reference

Abstract class (interface) for robot controller that use direct matrix inversion and a time loop in motor domain. More...

#include <invertmotorcontroller.h>

Inherits AbstractController.

Inherited by DerController, InvertMotorBigModel, InvertMotorNStep, and InvertMotorSpace.

Inheritance diagram for InvertMotorController:

Inheritance graph
[legend]
Collaboration diagram for InvertMotorController:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 InvertMotorController (unsigned short buffersize, const std::string &name, const std::string &revision)
virtual paramval getParam (const paramkey &key) const
 returns the value of the requested parameter or 0 (+ error message to stderr) if unknown.
virtual bool setParam (const paramkey &key, paramval val)
 sets the value of the given parameter or does nothing if unknown.
virtual paramlist getParamList () const
 The list of all parameters with there value as allocated lists.

Protected Member Functions

void putInBuffer (matrix::Matrix *buffer, const matrix::Matrix &vec, int delay=0)
virtual matrix::Matrix calculateDelayedValues (const matrix::Matrix *buffer, int number_steps_of_delay_)
 calculate delayed values
virtual matrix::Matrix calculateSmoothValues (const matrix::Matrix *buffer, int number_steps_for_averaging_)
 calculate time-smoothed values
virtual double calcErrorFactor (const matrix::Matrix &e, bool loga, bool root)
 calculates the error_factor for either logarithmic (E=ln(e^T*e)) or square (E=sqrt(e^t*e)) error

Static Protected Member Functions

double g (double z)
 neuron transfer function
double g_s (double z)
 first dervative
double g_s_inv (double z)
 inverse of the first derivative
double g_s (double z, double xsi)
 an exact formula for inversion if neuron.
double g_2s_div_s (double z, double xsi)
 an exact formula for g''/g'
double squash (double z)
 squashing function (-0.1 to 0.1), to protect against to large weight updates
double squash (void *d, double z)
 squashing function with adjustable clipping size, to protect against too large weight updates

Protected Attributes

paramval epsC
 learning rate factor for controller learning
paramval desens
paramval s4delay
 number of timesteps of delay in the SML
paramval s4avg
 number of timesteps used for smoothing the controller output values
paramval steps
 number of timesteps is used for controller learning
paramval epsA
 learning rate factor for model learning
paramval factorB
 additional learning rate factor for model bias
paramval zetaupdate
paramval dampA
 damping term for model (0: no damping, 0.1 high damping)
short logaE
 logarithmic error is used for learning 1: controller 2: model 3: both
short rootE
 root error is used for learning 1: controller 2: model 3: both
short relativeE
 if not 0: a relative error signal is used (xsi is normalised in respect to |y|)
paramval squashSize
 size of the box, where the parameter updates are clipped to
paramval adaptRate
 adaptation rate for learning rate adaptation
paramval nomUpdate
 nominal update of controller in respect to matrix norm
paramval noiseB
 size of the additional noise for model bias B
paramval noiseY
 size of the additional noise for motor values
paramval teacher
 factor for teaching signal
int t
unsigned short buffersize
bool initialised

Detailed Description

Abstract class (interface) for robot controller that use direct matrix inversion and a time loop in motor domain.

Implements standart configureable interface for some useful parameters like epsC, epsA, s4avg ...


Constructor & Destructor Documentation

InvertMotorController unsigned short  buffersize,
const std::string &  name,
const std::string &  revision
[inline]
 


Member Function Documentation

virtual double calcErrorFactor const matrix::Matrix e,
bool  loga,
bool  root
[inline, protected, virtual]
 

calculates the error_factor for either logarithmic (E=ln(e^T*e)) or square (E=sqrt(e^t*e)) error

Reimplemented in DerController, and InvertMotorBigModel.

virtual matrix::Matrix calculateDelayedValues const matrix::Matrix buffer,
int  number_steps_of_delay_
[inline, protected, virtual]
 

calculate delayed values

virtual matrix::Matrix calculateSmoothValues const matrix::Matrix buffer,
int  number_steps_for_averaging_
[inline, protected, virtual]
 

calculate time-smoothed values

double g double  z  )  [inline, static, protected]
 

neuron transfer function

double g_2s_div_s double  z,
double  xsi
[inline, static, protected]
 

an exact formula for g''/g'

double g_s double  z,
double  xsi
[inline, static, protected]
 

an exact formula for inversion if neuron.

double g_s double  z  )  [inline, static, protected]
 

first dervative

double g_s_inv double  z  )  [inline, static, protected]
 

inverse of the first derivative

virtual paramval getParam const paramkey key  )  const [inline, virtual]
 

returns the value of the requested parameter or 0 (+ error message to stderr) if unknown.

Reimplemented from Configurable.

Reimplemented in DerController, InvertMotorBigModel, ProActive, and ProActive2.

virtual paramlist getParamList  )  const [inline, virtual]
 

The list of all parameters with there value as allocated lists.

Returns:
list of key-value pairs

Reimplemented from Configurable.

Reimplemented in DerController, InvertMotorBigModel, ProActive, and ProActive2.

void putInBuffer matrix::Matrix buffer,
const matrix::Matrix vec,
int  delay = 0
[inline, protected]
 

virtual bool setParam const paramkey key,
paramval  val
[inline, virtual]
 

sets the value of the given parameter or does nothing if unknown.

Reimplemented from Configurable.

Reimplemented in DerController, InvertMotorBigModel, ProActive, and ProActive2.

double squash void *  d,
double  z
[inline, static, protected]
 

squashing function with adjustable clipping size, to protect against too large weight updates

double squash double  z  )  [inline, static, protected]
 

squashing function (-0.1 to 0.1), to protect against to large weight updates


Member Data Documentation

paramval adaptRate [protected]
 

adaptation rate for learning rate adaptation

unsigned short buffersize [protected]
 

paramval dampA [protected]
 

damping term for model (0: no damping, 0.1 high damping)

paramval desens [protected]
 

paramval epsA [protected]
 

learning rate factor for model learning

paramval epsC [protected]
 

learning rate factor for controller learning

paramval factorB [protected]
 

additional learning rate factor for model bias

bool initialised [protected]
 

short logaE [protected]
 

logarithmic error is used for learning 1: controller 2: model 3: both

paramval noiseB [protected]
 

size of the additional noise for model bias B

paramval noiseY [protected]
 

size of the additional noise for motor values

paramval nomUpdate [protected]
 

nominal update of controller in respect to matrix norm

short relativeE [protected]
 

if not 0: a relative error signal is used (xsi is normalised in respect to |y|)

short rootE [protected]
 

root error is used for learning 1: controller 2: model 3: both

paramval s4avg [protected]
 

number of timesteps used for smoothing the controller output values

paramval s4delay [protected]
 

number of timesteps of delay in the SML

paramval squashSize [protected]
 

size of the box, where the parameter updates are clipped to

paramval steps [protected]
 

number of timesteps is used for controller learning

int t [protected]
 

paramval teacher [protected]
 

factor for teaching signal

paramval zetaupdate [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Jan 16 02:14:47 2007 for Robotsystem of the Robot Group Leipzig by doxygen 1.3.8