SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
CControllerBase.hpp
1 /* This file is part of scl, a control and simulation library
2 for robots and biomechanical models.
3 
4 scl is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 3 of the License, or (at your option) any later version.
8 
9 Alternatively, you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of
12 the License, or (at your option) any later version.
13 
14 scl is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU Lesser General Public
20 License and a copy of the GNU General Public License along with
21 scl. If not, see <http://www.gnu.org/licenses/>.
22 */
23 /*
24  * \file CControllerBase.hpp
25  *
26  * Created on: Jul 21, 2010
27  *
28  * Copyright (C) 2010
29  *
30  * Author: Samir Menon <smenon@stanford.edu>
31  */
32 
33 #ifndef CCONTROLLERBASE_HPP_
34 #define CCONTROLLERBASE_HPP_
35 
36 #include <scl/DataTypes.hpp>
37 
38 #include <scl/data_structs/SRobotParsed.hpp>
39 #include <scl/data_structs/SRobotIO.hpp>
40 
41 #include <scl/control/data_structs/SControllerBase.hpp>
42 
43 #include <scl/dynamics/CDynamicsBase.hpp>
44 
45 #include <Eigen/Dense>
46 
47 namespace scl
48 {
60  {
61  public:
63  CControllerBase() : has_been_init_(false), dynamics_(S_NULL){}
64 
66  virtual ~CControllerBase(){}
67 
70  virtual sBool computeControlForces()=0;
71 
73  virtual sBool computeDynamics()=0;
74 
80 
93  virtual sBool init(SControllerBase* arg_data,
94  scl::CDynamicsBase* arg_dynamics)=0;
95 
100  virtual sBool reset()=0;
101 
103  virtual sBool hasBeenInit() { return has_been_init_; }
104 
105  protected:
106  sBool has_been_init_;
107  CDynamicsBase* dynamics_;
108  };
109 
110 }
111 
112 #endif /* CCONTROLLERBASE_HPP_ */
virtual sBool init(SControllerBase *arg_data, scl::CDynamicsBase *arg_dynamics)=0
virtual sBool computeNonControlOperations()=0
virtual sBool hasBeenInit()
Definition: CControllerBase.hpp:103
Definition: CDynamicsBase.hpp:55
bool sBool
Definition: DataTypes.hpp:54
Definition: SControllerBase.hpp:48
Definition: CControllerBase.hpp:59
virtual ~CControllerBase()
Definition: CControllerBase.hpp:66
virtual sBool reset()=0
virtual sBool computeDynamics()=0
virtual sBool computeControlForces()=0
CControllerBase()
Definition: CControllerBase.hpp:63