Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef KDLCHAINIKSOLVERPOS_NR_JL_HPP
00025 #define KDLCHAINIKSOLVERPOS_NR_JL_HPP
00026
00027 #include "chainiksolver.hpp"
00028 #include "chainfksolver.hpp"
00029
00030 namespace KDL {
00031
00040 class ChainIkSolverPos_NR_JL : public ChainIkSolverPos
00041 {
00042 public:
00043
00044 static const int E_IKSOLVERVEL_FAILED = -100;
00045 static const int E_FKSOLVERPOS_FAILED = -101;
00046
00064 ChainIkSolverPos_NR_JL(const Chain& chain,const JntArray& q_min, const JntArray& q_max, ChainFkSolverPos& fksolver,ChainIkSolverVel& iksolver,unsigned int maxiter=100,double eps=1e-6);
00065
00081 ChainIkSolverPos_NR_JL(const Chain& chain, ChainFkSolverPos& fksolver,ChainIkSolverVel& iksolver,unsigned int maxiter=100,double eps=1e-6);
00082
00083 ~ChainIkSolverPos_NR_JL();
00084
00085
00095 virtual int CartToJnt(const JntArray& q_init, const Frame& p_in, JntArray& q_out);
00096
00103 int setJointLimits(const JntArray& q_min, const JntArray& q_max);
00104
00106 virtual void updateInternalDataStructures();
00107
00109 const char* strError(const int error) const;
00110
00111 private:
00112 const Chain& chain;
00113 unsigned int nj;
00114 JntArray q_min;
00115 JntArray q_max;
00116 ChainIkSolverVel& iksolver;
00117 ChainFkSolverPos& fksolver;
00118 JntArray delta_q;
00119 unsigned int maxiter;
00120 double eps;
00121
00122 Frame f;
00123 Twist delta_twist;
00124
00125 };
00126
00127 }
00128
00129 #endif