SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
CActuatorSetMuscle.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 /* \file CActuatorSetMuscle.hpp
24  *
25  * Created on: Jul 21, 2013
26  *
27  * Copyright (C) 2013
28  *
29  * Author: Samir Menon <smenon@stanford.edu>
30  */
31 
32 #ifndef CACTUATORSETMUSCLE_HPP_
33 #define CACTUATORSETMUSCLE_HPP_
34 
35 #include <scl/data_structs/SRobotParsed.hpp>
36 #include <scl/dynamics/CDynamicsBase.hpp>
37 #include <scl/actuation/CActuatorSetBase.hpp>
38 #include <scl/actuation/muscles/CActuatorMuscle.hpp>
39 #include <scl/actuation/muscles/data_structs/SActuatorSetMuscle.hpp>
40 
41 #include <Eigen/Eigen>
42 
43 #include <string>
44 
45 namespace scl
46 {
54  {
55  public:
56  /* *****************************************************************
57  * Actuator Kinematics
58  * ***************************************************************** */
65  virtual sBool computeJacobian(
66  const Eigen::VectorXd arg_q,
67  Eigen::MatrixXd &ret_J);
68 
69  /* *****************************************************************
70  * Actuator Dynamics
71  * ***************************************************************** */
81  virtual sBool computeDynamics(const Eigen::VectorXd& arg_input,
82  const Eigen::MatrixXd& arg_state,
83  Eigen::VectorXd& ret_output_force)
84  { return false; }
85 
86  /* *****************************************************************
87  * Accessors
88  * ***************************************************************** */
91  { return muscles_.size(); }
92 
95  { return data_; }
96 
98  const SActuatorSetMuscle* getData() const
99  { return static_cast<const SActuatorSetMuscle*>(data_); }
100 
101  /* *****************************************************************
102  * Initialization
103  * ***************************************************************** */
107  virtual sBool init(const std::string& arg_name,
108  const SRobotParsed *arg_robot,
110  SActuatorSetMuscle *arg_mset,
111  CDynamicsBase *arg_dynamics);
112 
114  virtual sBool hasBeenInit();
115 
116  /* *****************************************************************
117  * Constructors
118  * ***************************************************************** */
119 
122 
125 
126  protected:
129 
132 
135 
137  Eigen::VectorXd row_J_;
138  };
139 
140 } /* namespace scl */
141 #endif /* CACTUATORSETMUSCLE_HPP_ */
SActuatorSetMuscle * getData()
Definition: CActuatorSetMuscle.hpp:94
Definition: CActuatorSetBase.hpp:59
SActuatorSetMuscle * data_
Definition: CActuatorSetMuscle.hpp:128
Definition: SRobotParsed.hpp:51
Eigen::VectorXd row_J_
Definition: CActuatorSetMuscle.hpp:137
virtual ~CActuatorSetMuscle()
Definition: CActuatorSetMuscle.hpp:124
Definition: CMappedList.hpp:85
virtual sBool computeDynamics(const Eigen::VectorXd &arg_input, const Eigen::MatrixXd &arg_state, Eigen::VectorXd &ret_output_force)
Definition: CActuatorSetMuscle.hpp:81
virtual sBool hasBeenInit()
Definition: CActuatorSetMuscle.cpp:107
Definition: CActuatorSetMuscle.hpp:53
CDynamicsBase * dynamics_
Definition: CActuatorSetMuscle.hpp:134
Definition: CDynamicsBase.hpp:55
virtual sBool init(const std::string &arg_name, const SRobotParsed *arg_robot, const sutil::CMappedList< std::string, SRigidBodyDyn > &arg_rbdtree, SActuatorSetMuscle *arg_mset, CDynamicsBase *arg_dynamics)
Definition: CActuatorSetMuscle.cpp:49
int getNumberOfMuscles()
Definition: CActuatorSetMuscle.hpp:90
Definition: SActuatorSetMuscle.hpp:44
bool sBool
Definition: DataTypes.hpp:54
const SActuatorSetMuscle * getData() const
Definition: CActuatorSetMuscle.hpp:98
CActuatorSetMuscle()
Definition: CActuatorSetMuscle.cpp:40
sutil::CMappedList< std::string, CActuatorMuscle > muscles_
Definition: CActuatorSetMuscle.hpp:131
virtual sBool computeJacobian(const Eigen::VectorXd arg_q, Eigen::MatrixXd &ret_J)
Definition: CActuatorSetMuscle.cpp:124