$search
00001 // Copyright (C) 2007 Ruben Smits <ruben dot smits at mech dot kuleuven dot be> 00002 00003 #ifndef KDL_CHAIN_IKSOLVERVEL_PINV_GIVENS_HPP 00004 #define KDL_CHAIN_IKSOLVERVEL_PINV_GIVENS_HPP 00005 00006 #include "chainiksolver.hpp" 00007 #include "chainjnttojacsolver.hpp" 00008 00009 #include <Eigen/Core> 00010 00011 using namespace Eigen; 00012 00013 namespace KDL 00014 { 00024 class ChainIkSolverVel_pinv_givens : public ChainIkSolverVel 00025 { 00026 public: 00038 explicit ChainIkSolverVel_pinv_givens(const Chain& chain); 00039 ~ChainIkSolverVel_pinv_givens(); 00040 00041 virtual int CartToJnt(const JntArray& q_in, const Twist& v_in, JntArray& qdot_out); 00046 virtual int CartToJnt(const JntArray& q_init, const FrameVel& v_in, JntArrayVel& q_out){return -1;}; 00047 private: 00048 const Chain chain; 00049 ChainJntToJacSolver jnt2jac; 00050 Jacobian jac; 00051 bool transpose,toggle; 00052 int m,n; 00053 MatrixXd jac_eigen,U,V,B; 00054 VectorXd S,tempi,tempj,UY,SUY,qdot_eigen,v_in_eigen; 00055 }; 00056 } 00057 #endif