treeiksolverpos_online.hpp
Go to the documentation of this file.
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 


orocos_kdl
Author(s): Ruben Smits, Erwin Aertbelien, Orocos Developers
autogenerated on Sat Dec 28 2013 17:17:25