invertcontroller.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2005-2011 by                                            *
00003  *    Georg Martius  <georg dot martius at web dot de>                     *
00004  *    Frank Hesse    <frank at nld dot ds dot mpg dot de>                  *
00005  *    Ralf Der       <ralfder at mis dot mpg dot de>                       *
00006  *                                                                         *
00007  *   ANY COMMERCIAL USE FORBIDDEN!                                         *
00008  *   LICENSE:                                                              *
00009  *   This work is licensed under the Creative Commons                      *
00010  *   Attribution-NonCommercial-ShareAlike 2.5 License. To view a copy of   *
00011  *   this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/ *
00012  *   or send a letter to Creative Commons, 543 Howard Street, 5th Floor,   *
00013  *   San Francisco, California, 94105, USA.                                *
00014  *                                                                         *
00015  *   This program is distributed in the hope that it will be useful,       *
00016  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00017  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                  *
00018  *                                                                         *
00019  ***************************************************************************/
00020 #ifndef __INVERTCONTROLLER_H
00021 #define __INVERTCONTROLLER_H
00022 
00023 #include "abstractcontroller.h"
00024 #include <stdlib.h>
00025 #include <string.h>
00026 
00027 /**
00028  * Abstract class (interface) for robot controller that use direct matrix inversion and
00029  * simple one layer networks.
00030  * 
00031  * Implements standart parameters: eps, rho, mu, stepnumber4avg, stepnumber4delay
00032  */
00033 class InvertController : public AbstractController {
00034 public:
00035   InvertController(const std::string& name, const std::string& revision)
00036     : AbstractController(name, revision){
00037     addParameterDef("eps",&eps,0.3,0,10,"learning rate");
00038     addParameterDef("rho",&rho,0,0,10);
00039     addParameterDef("s4delay",&s4delay,1,1,10,"time delay of actions and caused sensor values");
00040     addParameterDef("s4avg",&s4avg,1,1,50,"time window for sensor values averaging");
00041     addParameterDef("delta",&delta,0.01,0,1);
00042     addParameterDef("factor_a",&factor_a,1.0,0,10,"learning rate factor for world model");
00043     addParameterDef("desens",&desens,0,0,1,"desensitization");
00044     addParameterDef("number_it",&number_it,0,0,10);
00045     addParameterDef("epsilon_it",&epsilon_it,0,0,10);
00046     addParameterDef("damping_c",&damping_c,0,0,.1,"damping value for controller values");
00047   }
00048 
00049 protected:
00050   paramval eps;
00051   paramval rho;
00052   paramval desens;
00053   paramval s4delay;
00054   paramval s4avg;
00055   paramval factor_a;
00056   paramval number_it;
00057   paramval epsilon_it;
00058   paramval delta;
00059   paramval damping_c;
00060  
00061 };
00062 
00063 #endif
Generated on Thu Jun 28 14:45:36 2012 for Robot Simulator of the Robotics Group for Self-Organization of Control by  doxygen 1.6.3