Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
invertmotorcontroller.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2011 by *
3  * Georg Martius <georg dot martius at web dot de> *
4  * Frank Hesse <frank at nld dot ds dot mpg dot de> *
5  * Ralf Der <ralfder at mis dot mpg dot de> *
6  * *
7  * ANY COMMERCIAL USE FORBIDDEN! *
8  * LICENSE: *
9  * This work is licensed under the Creative Commons *
10  * Attribution-NonCommercial-ShareAlike 2.5 License. To view a copy of *
11  * this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/ *
12  * or send a letter to Creative Commons, 543 Howard Street, 5th Floor, *
13  * San Francisco, California, 94105, USA. *
14  * *
15  * This program is distributed in the hope that it will be useful, *
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
18  * *
19  ***************************************************************************/
20 
21 #ifndef __INVERTMOTORCONTROLLER_H
22 #define __INVERTMOTORCONTROLLER_H
23 
24 #include "homeokinbase.h"
25 #include "controller_misc.h"
26 #include <stdlib.h>
27 #include <string.h>
28 
29 
30 /**
31  * Extended HomeokinBase class (still abstract) for robot controller work in motorspace
32  * and use possibly many steps and adaptive learning rate
33  *
34  * Parameters like dampA, adaptrate, noiseY...
35  */
37 public:
39  const std::string& name, const std::string& revision)
40  : HomeokinBase(buffersize,name, revision){
41  addParameterDef("dampA",&dampA,0 );
42  addParameterDef("adaptrate",&adaptRate,0.000);
43  addParameterDef("nomupdate",&nomUpdate,0.005);
44  addParameterDef("desens",&desens,0);
45  addParameterDef("steps",&steps,1);
46  addParameterDef("zetaupdate",&zetaupdate,0);
47  addParameterDef("noiseY",&noiseY,0);
48  addParameterDef("noiseB",&noiseB,0.001);
49  addParameterDef("teacher",&teacher,5);
50  addParameterDef("relativeE",&relativeE,0);
51  }
52 
53 protected:
55  paramval steps; ///< number of timesteps is used for controller learning
57  paramval dampA; ///< damping term for model (0: no damping, 0.1 high damping)
58  parambool relativeE; ///< if not 0: a relative error signal is used (xsi is normalised in respect to |y|)
59 
60  paramval adaptRate; ///< adaptation rate for learning rate adaptation
61  paramval nomUpdate; ///< nominal update of controller in respect to matrix norm
62  paramval noiseB; ///< size of the additional noise for model bias B
63  paramval noiseY; ///< size of the additional noise for motor values
64  paramval teacher; ///< factor for teaching signal
65 
66 };
67 
68 #endif
paramval teacher
factor for teaching signal
Definition: invertmotorcontroller.h:64
bool parambool
Definition: configurable.h:93
paramval adaptRate
adaptation rate for learning rate adaptation
Definition: invertmotorcontroller.h:60
paramval noiseY
size of the additional noise for motor values
Definition: invertmotorcontroller.h:63
Abstract class (interface) for robot controller that use are based on the homeokinetic prinziple...
Definition: homeokinbase.h:36
parambool relativeE
if not 0: a relative error signal is used (xsi is normalised in respect to |y|)
Definition: invertmotorcontroller.h:58
unsigned short buffersize
Definition: homeokinbase.h:68
paramval zetaupdate
Definition: invertmotorcontroller.h:56
double paramval
Definition: configurable.h:88
Extended HomeokinBase class (still abstract) for robot controller work in motorspace and use possibly...
Definition: invertmotorcontroller.h:36
paramval dampA
damping term for model (0: no damping, 0.1 high damping)
Definition: invertmotorcontroller.h:57
InvertMotorController(unsigned short buffersize, const std::string &name, const std::string &revision)
Definition: invertmotorcontroller.h:38
paramval noiseB
size of the additional noise for model bias B
Definition: invertmotorcontroller.h:62
paramval steps
number of timesteps is used for controller learning
Definition: invertmotorcontroller.h:55
paramval nomUpdate
nominal update of controller in respect to matrix norm
Definition: invertmotorcontroller.h:61
virtual void addParameterDef(const paramkey &key, paramval *val, paramval def, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
This function is only provided for convenience.
Definition: configurable.h:220
paramval desens
Definition: invertmotorcontroller.h:54