Robot Simulator of the Robotics Group for Self-Organization of Control: invertcontroller.h Source File

# 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