SCL  1.0
Standard Control Library : Control, dynamics, physics, and simulation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
CDynamicsAnalyticBase.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 CDynamicsAnalyticBase.hpp
24  *
25  * Created on: Sep 3, 2013
26  *
27  * Copyright (C) 2013
28  *
29  * Author: Samir Menon <smenon@stanford.edu>
30  */
31 
32 #ifndef CDYNAMICSANALYTICBASE_HPP_
33 #define CDYNAMICSANALYTICBASE_HPP_
34 
35 #include <scl/DataTypes.hpp>
36 
37 #include <scl/data_structs/SRobotIO.hpp>
38 #include <scl/data_structs/SGcModel.hpp>
39 
40 #include <Eigen/Dense>
41 #include <string>
42 
43 namespace scl {
44 
55 public:
62  virtual sBool computeGCModel(
64  const Eigen::VectorXd &arg_q,
66  SGcModel& arg_gc_model)=0;
67 
81  const Eigen::VectorXd &arg_q,
83  sInt arg_link_id,
85  sInt arg_ancestor_link_id,
87  Eigen::Affine3d& arg_T)=0;
88 
98  virtual sBool computeJacobian(
100  const Eigen::VectorXd &arg_q,
102  sInt arg_link_id,
104  const Eigen::VectorXd& arg_pos_local,
106  Eigen::MatrixXd& arg_J)=0;
107 
108  /* **************************************************************
109  * Data access functions
110  * ************************************************************** */
117  virtual sUInt getIdForLink(std::string arg_link_name)=0;
118 
119  /* **************************************************************
120  * Initialization functions
121  * ************************************************************** */
124 
127 
137  virtual sBool init(const SRobotParsed& arg_robot_data)=0;
138 
140  virtual sBool hasBeenInit() { return has_been_init_; }
141 
142  /* **************************************************************
143  * Data
144  * ************************************************************** */
145 protected:
149 };
150 
151 }
152 
153 #endif /* CDYNAMICSANALYTICBASE_HPP_ */
sBool has_been_init_
Definition: CDynamicsAnalyticBase.hpp:148
virtual sBool init(const SRobotParsed &arg_robot_data)=0
virtual sUInt getIdForLink(std::string arg_link_name)=0
Definition: SRobotParsed.hpp:51
virtual sBool computeTransformationMatrix(const Eigen::VectorXd &arg_q, sInt arg_link_id, sInt arg_ancestor_link_id, Eigen::Affine3d &arg_T)=0
Definition: SGcModel.hpp:53
virtual ~CDynamicsAnalyticBase()
Definition: CDynamicsAnalyticBase.hpp:126
bool sBool
Definition: DataTypes.hpp:54
Definition: CDynamicsAnalyticBase.hpp:54
virtual sBool computeGCModel(const Eigen::VectorXd &arg_q, SGcModel &arg_gc_model)=0
virtual sBool computeJacobian(const Eigen::VectorXd &arg_q, sInt arg_link_id, const Eigen::VectorXd &arg_pos_local, Eigen::MatrixXd &arg_J)=0
CDynamicsAnalyticBase()
Definition: CDynamicsAnalyticBase.hpp:123
int sInt
Definition: DataTypes.hpp:64
virtual sBool hasBeenInit()
Definition: CDynamicsAnalyticBase.hpp:140