Go to the documentation of this file.
31 unsigned int _maxiter,
double _eps) :
32 tree(_tree), q_min(_q_min), q_max(_q_max), iksolver(_iksolver),
33 fksolver(_fksolver), delta_q(tree.getNrOfJoints()),
34 endpoints(_endpoints), maxiter(_maxiter), eps(_eps)
46 for(Frames::const_iterator f_des_it=p_in.
begin();f_des_it!=p_in.
end();++f_des_it)
52 for (Frames::const_iterator f_des_it=p_in.
begin();f_des_it!=p_in.
end();++f_des_it){
54 Frames::iterator f_it =
frames.
find(f_des_it->first);
58 delta_twist->second =
diff(f_it->second, f_des_it->second);
61 if (res <
eps)
return res;
65 for (
unsigned int j = 0; j <
q_min.
rows(); j++) {
66 if (q_out(j) <
q_min(j))
68 else if (q_out(j) >
q_max(j))
This abstract class encapsulates a solver for the forward position kinematics for a KDL::Tree.
TreeFkSolverPos & fksolver
void Add(const JntArray &src1, const JntArray &src2, JntArray &dest)
This abstract class encapsulates the inverse velocity solver for a KDL::Tree.
unsigned int rows() const
virtual double CartToJnt(const JntArray &q_in, const Twists &v_in, JntArray &qdot_out)=0
virtual int JntToCart(const JntArray &q_in, Frame &p_out, std::string segmentName)=0
This class encapsulates a tree kinematic interconnection structure. It is built out of segments.
TreeIkSolverPos_NR_JL(const Tree &tree, const std::vector< std::string > &endpoints, const JntArray &q_min, const JntArray &q_max, TreeFkSolverPos &fksolver, TreeIkSolverVel &iksolver, unsigned int maxiter=100, double eps=1e-6)
virtual double CartToJnt(const JntArray &q_init, const Frames &p_in, JntArray &q_out)
std::vector< std::string > endpoints
TreeIkSolverVel & iksolver
IMETHOD Vector diff(const Vector &p_w_a, const Vector &p_w_b, double dt=1)