Orocos KDL
KDL::ChainIkSolverPos_NR Class Reference

#include <chainiksolverpos_nr.hpp>

Inheritance diagram for KDL::ChainIkSolverPos_NR:
KDL::ChainIkSolverPos KDL::SolverI

Public Member Functions

 ChainIkSolverPos_NR (const Chain &chain, ChainFkSolverPos &fksolver, ChainIkSolverVel &iksolver, unsigned int maxiter=100, double eps=1e-6)
 Child FK solver failed.
 ~ChainIkSolverPos_NR ()
virtual int CartToJnt (const JntArray &q_init, const Frame &p_in, JntArray &q_out)
virtual const char * strError (const int error) const
virtual void updateInternalDataStructures ()
Public Member Functions inherited from KDL::ChainIkSolverPos
virtual ~ChainIkSolverPos ()
Public Member Functions inherited from KDL::SolverI
 SolverI ()
 Initialize latest error to E_NOERROR.
virtual ~SolverI ()
virtual int getError () const
 Return the latest error.

Static Public Attributes

static const int E_IKSOLVER_FAILED = -100
static const int E_FKSOLVERPOS_FAILED = -101
 Child IK solver vel failed.

Additional Inherited Members

Public Types inherited from KDL::SolverI
enum  {
  E_DEGRADED = +1 , E_NOERROR = 0 , E_NO_CONVERGE = -1 , E_UNDEFINED = -2 ,
  E_NOT_UP_TO_DATE = -3 , E_SIZE_MISMATCH = -4 , E_MAX_ITERATIONS_EXCEEDED = -5 , E_OUT_OF_RANGE = -6 ,
  E_NOT_IMPLEMENTED = -7 , E_SVD_FAILED = -8
}
Protected Attributes inherited from KDL::SolverI
int error
 Latest error, initialized to E_NOERROR in constructor.

Detailed Description

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::Chain.

Constructor & Destructor Documentation

◆ ChainIkSolverPos_NR()

KDL::ChainIkSolverPos_NR::ChainIkSolverPos_NR ( const Chain & chain,
ChainFkSolverPos & fksolver,
ChainIkSolverVel & iksolver,
unsigned int maxiter = 100,
double eps = 1e-6 )

Child FK solver failed.

Constructor of the solver, it needs the chain, a forward position kinematics solver and an inverse velocity kinematics solver for that chain.

Parameters
chainthe chain to calculate the inverse position for
fksolvera forward position kinematics solver
iksolveran inverse velocity kinematics solver
maxiterthe maximum Newton-Raphson iterations, default: 100
epsthe precision for the position, used to end the iterations, default: epsilon (defined in kdl.hpp)
Returns

◆ ~ChainIkSolverPos_NR()

KDL::ChainIkSolverPos_NR::~ChainIkSolverPos_NR ( )

Member Function Documentation

◆ CartToJnt()

virtual int KDL::ChainIkSolverPos_NR::CartToJnt ( const JntArray & q_init,
const Frame & p_in,
JntArray & q_out )
virtual

Find an output joint pose q_out, given a starting joint pose q_init and a desired cartesian pose p_in

Returns
: E_NOERROR=solution converged to <eps in maxiter E_DEGRADED=solution converged to <eps in maxiter, but solution is degraded in quality (e.g. pseudo-inverse in iksolver is singular) E_IKSOLVER_FAILED=velocity solver failed E_NO_CONVERGE=solution did not converge (e.g. large displacement, low iterations)

Implements KDL::ChainIkSolverPos.

◆ strError()

virtual const char * KDL::ChainIkSolverPos_NR::strError ( const int error) const
virtual

Return a description of the latest error

Returns
if error is known then a description of error, otherwise "UNKNOWN ERROR"

Reimplemented from KDL::SolverI.

◆ updateInternalDataStructures()

virtual void KDL::ChainIkSolverPos_NR::updateInternalDataStructures ( )
virtual

Update the internal data structures. This is required if the number of segments or number of joints of a chain/tree have changed. This provides a single point of contact for solver memory allocations.

Implements KDL::ChainIkSolverPos.

Member Data Documentation

◆ E_FKSOLVERPOS_FAILED

const int KDL::ChainIkSolverPos_NR::E_FKSOLVERPOS_FAILED = -101
static

Child IK solver vel failed.

◆ E_IKSOLVER_FAILED

const int KDL::ChainIkSolverPos_NR::E_IKSOLVER_FAILED = -100
static

The documentation for this class was generated from the following file: