Robotsystem of the Robot Group Leipzig: InvertMotorController Class Reference

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

- Search for |

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

# 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 BasicController, InvertMotorBigModel, InvertMotorNStep, and InvertMotorSpace.

Inheritance diagram for InvertMotorController:

[legend]
Collaboration diagram for InvertMotorController:

[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
virtual bool | setParam (const paramkey &key, paramval val)
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
static double | g (double z)
| neuron transfer function
## 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

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

static double g | ( | double | z | ) | `[inline, static, protected]`

neuron transfer function

virtual paramval getParam | ( | const paramkey & | key | ) | const`[inline, virtual]`

Reimplemented in InvertMotorBigModel.

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 InvertMotorBigModel.

void putInBuffer | ( | matrix::Matrix * | buffer,
|  | const matrix::Matrix & | vec,
|  | int | delay = `0` |
| ) |  |  | `[inline, protected]`

virtual bool setParam | ( | const paramkey & | key,
|  | paramval | val |
| ) |  |  | `[inline, virtual]`

Reimplemented in BasicController, and InvertMotorBigModel.

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

Reimplemented in InvertMotorNStep.

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:

- invertmotorcontroller.h