Orocos KDL
KDL::ChainIkSolverPos_NR_JL Class Reference

#include <chainiksolverpos_nr_jl.hpp>

Inheritance diagram for KDL::ChainIkSolverPos_NR_JL:
KDL::ChainIkSolverPos KDL::SolverI

Public Member Functions

 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)
 Child FK solver failed.
 ChainIkSolverPos_NR_JL (const Chain &chain, ChainFkSolverPos &fksolver, ChainIkSolverVel &iksolver, unsigned int maxiter=100, double eps=1e-6)
 ~ChainIkSolverPos_NR_JL ()
virtual int CartToJnt (const JntArray &q_init, const Frame &p_in, JntArray &q_out)
int setJointLimits (const JntArray &q_min, const JntArray &q_max)
virtual void updateInternalDataStructures ()
const char * strError (const int error) const
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_IKSOLVERVEL_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. Takes joint limits into account.

Constructor & Destructor Documentation

◆ ChainIkSolverPos_NR_JL() [1/2]

KDL::ChainIkSolverPos_NR_JL::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 )

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
q_minthe minimum joint positions
q_maxthe maximum joint positions
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_JL() [2/2]

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

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_JL()

KDL::ChainIkSolverPos_NR_JL::~ChainIkSolverPos_NR_JL ( )

Member Function Documentation

◆ CartToJnt()

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

Calculates the joint values that correspond to the input pose given an initial guess.

Parameters
q_initInitial guess for the joint values.
p_inThe input pose of the chain tip.
q_outThe resulting output joint values
Returns
E_MAX_ITERATIONS_EXCEEDED if the maximum number of iterations was exceeded before a result was found E_NOT_UP_TO_DATE if the internal data is not up to date with the chain E_SIZE_MISMATCH if the size of the input/output data does not match the chain.

Implements KDL::ChainIkSolverPos.

◆ setJointLimits()

int KDL::ChainIkSolverPos_NR_JL::setJointLimits ( const JntArray & q_min,
const JntArray & q_max )

Function to set the joint limits.

Parameters
q_minminimum values for the joints
q_maxmaximum values for the joints
Returns
E_SIZE_MISMATCH if input sizes do not match the chain

◆ strError()

const char * KDL::ChainIkSolverPos_NR_JL::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_JL::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_JL::E_FKSOLVERPOS_FAILED = -101
static

Child IK solver vel failed.

◆ E_IKSOLVERVEL_FAILED

const int KDL::ChainIkSolverPos_NR_JL::E_IKSOLVERVEL_FAILED = -100
static

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