$search
00001 // Copyright (C) 2011 PAL Robotics S.L. All rights reserved. 00002 // Copyright (C) 2007-2008 Ruben Smits <ruben dot smits at mech dot kuleuven dot be> 00003 // Copyright (C) 2008 Mikael Mayer 00004 // Copyright (C) 2008 Julia Jesse 00005 00006 // Version: 1.0 00007 // Author: Marcus Liebhardt 00008 // This class has been derived from the KDL::TreeIkSolverPos_NR_JL class 00009 // by Julia Jesse, Mikael Mayer and Ruben Smits 00010 00011 // This library is free software; you can redistribute it and/or 00012 // modify it under the terms of the GNU Lesser General Public 00013 // License as published by the Free Software Foundation; either 00014 // version 2.1 of the License, or (at your option) any later version. 00015 00016 // This library is distributed in the hope that it will be useful, 00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 // Lesser General Public License for more details. 00020 00021 // You should have received a copy of the GNU Lesser General Public 00022 // License along with this library; if not, write to the Free Software 00023 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00024 00025 #ifndef KDLTREEIKSOLVERPOS_ONLINE_HPP 00026 #define KDLTREEIKSOLVERPOS_ONLINE_HPP 00027 00028 #include <vector> 00029 #include <string> 00030 #include "treeiksolver.hpp" 00031 #include "treefksolver.hpp" 00032 00033 namespace KDL { 00034 00044 class TreeIkSolverPos_Online: public TreeIkSolverPos { 00045 public: 00064 TreeIkSolverPos_Online(const double& nr_of_jnts, 00065 const std::vector<std::string>& endpoints, 00066 const JntArray& q_min, 00067 const JntArray& q_max, 00068 const JntArray& q_dot_max, 00069 const double x_dot_trans_max, 00070 const double x_dot_rot_max, 00071 TreeFkSolverPos& fksolver, 00072 TreeIkSolverVel& iksolver); 00073 00074 ~TreeIkSolverPos_Online(); 00075 00076 virtual double CartToJnt(const JntArray& q_in, const Frames& p_in, JntArray& q_out); 00077 00078 private: 00083 void enforceJointVelLimits(); 00084 00090 void enforceCartVelLimits(); 00091 00092 JntArray q_min_; 00093 JntArray q_max_; 00094 JntArray q_dot_max_; 00095 double x_dot_trans_max_; 00096 double x_dot_rot_max_; 00097 TreeFkSolverPos& fksolver_; 00098 TreeIkSolverVel& iksolver_; 00099 JntArray q_dot_; 00100 Twist twist_; 00101 Frames frames_; 00102 Twists delta_twists_; 00103 }; 00104 00105 } // namespace 00106 00107 #endif /* KDLTREEIKSOLVERPOS_ONLINE_HPP */ 00108