Implementation of a general inverse position kinematics algorithm based on Newton-Raphson iterations to calculate the position transformation from Cartesian to joint space of a general KDL::Tree.
More...
|
| 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) |
| Constructor of the solver, it needs the tree, a forward position kinematics solver and an inverse velocity kinematics solver for that tree, and a list of the segments you are interested in. More...
|
|
| ~TreeIkSolverPos_NR_JL () |
|
virtual double | CartToJnt (const JntArray &q_init, const Frames &p_in, JntArray &q_out) |
| Calculate inverse position kinematics, from cartesian coordinates to joint coordinates. More...
|
|
Implementation of a general inverse position kinematics algorithm based on Newton-Raphson iterations to calculate the position transformation from Cartesian to joint space of a general KDL::Tree.
Takes joint limits into account.
KDL::TreeIkSolverPos_NR_JL::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 |
|
) |
| |
Constructor of the solver, it needs the tree, a forward position kinematics solver and an inverse velocity kinematics solver for that tree, and a list of the segments you are interested in.
- Parameters
-
tree | the tree to calculate the inverse position for |
endpoints | the list of endpoints you are interested in. |
q_max | the maximum joint positions |
q_min | the minimum joint positions |
fksolver | a forward position kinematics solver |
iksolver | an inverse velocity kinematics solver |
maxiter | the maximum Newton-Raphson iterations, default: 100 |
eps | the precision for the position, used to end the iterations, default: epsilon (defined in kdl.hpp) |
- Returns
References delta_twists, endpoints, frames, KDL::Frame::Identity(), and KDL::Twist::Zero().
double KDL::TreeIkSolverPos_NR_JL::CartToJnt |
( |
const JntArray & |
q_init, |
|
|
const Frames & |
p_in, |
|
|
JntArray & |
q_out |
|
) |
| |
|
virtual |
Calculate inverse position kinematics, from cartesian coordinates to joint coordinates.
- Parameters
-
q_init | initial guess of the joint coordinates |
p_in | input cartesian coordinates |
q_out | output joint coordinates |
- Returns
- if < 0 something went wrong otherwise (>=0) remaining (weighted) distance to target
Implements KDL::TreeIkSolverPos.
References KDL::Add(), KDL::TreeIkSolverVel::CartToJnt(), delta_q, delta_twists, KDL::diff(), eps, fksolver, frames, iksolver, KDL::TreeFkSolverPos::JntToCart(), maxiter, q_max, q_min, and KDL::JntArray::rows().