SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
SActuatorMuscle.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 SActuatorMuscle.hpp
25  *
26  * Created on: Aug 18, 2013
27  *
28  * Copyright (C) 2013
29  *
30  * Author: Samir Menon <smenon@stanford.edu>
31  */
32 
33 #ifndef SACTUATORMUSCLE_HPP_
34 #define SACTUATORMUSCLE_HPP_
35 
36 #include <scl/DataTypes.hpp>
37 #include <scl/data_structs/SObject.hpp>
38 
39 #include <sutil/CMappedList.hpp>
40 
41 #include <Eigen/Core>
42 
43 namespace scl
44 {
45 
48  class SActuatorMuscle : public SObject
49  {
50  public:
51  /* ******************************************************
52  * Helper Class
53  * ****************************************************** */
55  {
56  public:
58  std::string parent_link_0_, parent_link_1_;
59 
62  Eigen::Vector3d pos_in_parent_0_, pos_in_parent_1_;
63 
66  Eigen::Vector3d x_glob_0_, x_glob_1_, x_glob_delta_;
67 
69  Eigen::MatrixXd J_0_, J_1_;
70 
74  const SRigidBodyDyn* rigid_body_dyn_0_, *rigid_body_dyn_1_;
75 
77  bool is_root_0_, is_root_1_;
78 
81 
85  std::vector<sUInt> scl_gc_id_;
86 
89  parent_link_0_(""), parent_link_1_(""),
90  rigid_body_dyn_0_(NULL), rigid_body_dyn_1_(NULL),
91  is_root_0_(false),is_root_1_(false),
92  child_link_id_(-1) {}
93  };
94 
95  /* ******************************************************
96  * Data
97  * ****************************************************** */
100 
101  /* ******************************************************
102  * Initialization Functions
103  * ****************************************************** */
105  SActuatorMuscle() : SObject("SActuatorMuscle") {}
106 
108  virtual ~SActuatorMuscle() {}
109  };
110 
111 } /* namespace scl */
112 #endif /* SACTUATORMUSCLE_HPP_ */
SViaPointSet()
Definition: SActuatorMuscle.hpp:88
Definition: SActuatorMuscle.hpp:54
const SRigidBodyDyn * rigid_body_dyn_0_
Definition: SActuatorMuscle.hpp:74
std::vector< sUInt > scl_gc_id_
Definition: SActuatorMuscle.hpp:85
Eigen::MatrixXd J_0_
Definition: SActuatorMuscle.hpp:69
bool is_root_0_
Definition: SActuatorMuscle.hpp:77
Eigen::Vector3d pos_in_parent_0_
Definition: SActuatorMuscle.hpp:62
Definition: CMappedList.hpp:85
sutil::CMappedList< sUInt, SViaPointSet > via_point_set_
Definition: SActuatorMuscle.hpp:99
int child_link_id_
Definition: SActuatorMuscle.hpp:80
virtual ~SActuatorMuscle()
Definition: SActuatorMuscle.hpp:108
std::string parent_link_0_
Definition: SActuatorMuscle.hpp:58
Definition: SActuatorMuscle.hpp:48
Eigen::Vector3d x_glob_0_
Definition: SActuatorMuscle.hpp:66
SActuatorMuscle()
Definition: SActuatorMuscle.hpp:105
Definition: SObject.hpp:43
Definition: SRigidBodyDyn.hpp:56