chainfdsolver_recursive_newton_euler.hpp
Go to the documentation of this file.
00001 // Copyright  (C)  2018  Craig Carignan <craigc at ssl dot umd dot edu>
00002 
00003 // Version: 1.0
00004 // Author: Craig Carignan  <craigc at ssl dot umd dot edu>
00005 // Maintainer: Ruben Smits <ruben dot smits at mech dot kuleuven dot be>
00006 // URL: http://www.orocos.org/kdl
00007 
00008 // This library is free software; you can redistribute it and/or
00009 // modify it under the terms of the GNU Lesser General Public
00010 // License as published by the Free Software Foundation; either
00011 // version 2.1 of the License, or (at your option) any later version.
00012 
00013 // This library is distributed in the hope that it will be useful,
00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016 // Lesser General Public License for more details.
00017 
00018 // You should have received a copy of the GNU Lesser General Public
00019 // License along with this library; if not, write to the Free Software
00020 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00021 
00022 #ifndef KDL_CHAIN_FDSOLVER_RECURSIVE_NEWTON_EULER_HPP
00023 #define KDL_CHAIN_FDSOLVER_RECURSIVE_NEWTON_EULER_HPP
00024 
00025 #include "chainfdsolver.hpp"
00026 #include "chainidsolver_recursive_newton_euler.hpp"
00027 #include "chaindynparam.hpp"
00028 
00029 namespace KDL{
00042     class ChainFdSolver_RNE : public ChainFdSolver{
00043     public:
00049         ChainFdSolver_RNE(const Chain& chain, Vector grav);
00050         ~ChainFdSolver_RNE(){};
00051 
00062         int CartToJnt(const JntArray &q, const JntArray &q_dot, const JntArray &torques, const Wrenches& f_ext, JntArray &q_dotdot);
00063 
00065         virtual void updateInternalDataStructures();
00066 
00089         void RK4Integrator(int& nj, const double& t, double& dt, KDL::JntArray& q, KDL::JntArray& q_dot,
00090                            KDL::JntArray& torques, KDL::Wrenches& f_ext, KDL::ChainFdSolver_RNE& fdsolver,
00091                            KDL::JntArray& q_dotdot, KDL::JntArray& dq, KDL::JntArray& dq_dot,
00092                            KDL::JntArray& q_temp, KDL::JntArray& q_dot_temp);
00093 
00094     private:
00095         const Chain& chain;
00096         ChainDynParam DynSolver;
00097         ChainIdSolver_RNE IdSolver;
00098         unsigned int nj;
00099         unsigned int ns;
00100         JntArray Tzeroacc;
00101         JntSpaceInertiaMatrix H;
00102         Eigen::MatrixXd H_eig;
00103         Eigen::VectorXd Tzeroacc_eig;
00104         Eigen::MatrixXd L_eig;
00105         Eigen::VectorXd D_eig;
00106         Eigen::VectorXd r_eig;
00107         Eigen::VectorXd acc_eig;
00108     };
00109 }
00110 
00111 #endif


orocos_kdl
Author(s):
autogenerated on Fri Jun 14 2019 19:33:22