KDL
1.4.0
|
This class encapsulates a serial kinematic interconnection structure. More...
#include <src/chain.hpp>
Public Member Functions | |
Chain () | |
The constructor of a chain, a new chain is always empty. More... | |
Chain (const Chain &in) | |
Chain & | operator= (const Chain &arg) |
void | addSegment (const Segment &segment) |
Adds a new segment to the end of the chain. More... | |
void | addChain (const Chain &chain) |
Adds a complete chain to the end of the chain The added chain is copied. More... | |
unsigned int | getNrOfJoints () const |
Request the total number of joints in the chain. More... | |
unsigned int | getNrOfSegments () const |
Request the total number of segments in the chain. More... | |
const Segment & | getSegment (unsigned int nr) const |
Request the nr'd segment of the chain. More... | |
Segment & | getSegment (unsigned int nr) |
Request the nr'd segment of the chain. More... | |
virtual | ~Chain () |
Public Attributes | |
std::vector< Segment > | segments |
Private Attributes | |
unsigned int | nrOfJoints |
unsigned int | nrOfSegments |
This class encapsulates a serial kinematic interconnection structure.
It is built out of segments.
KDL::Chain::Chain | ( | ) |
The constructor of a chain, a new chain is always empty.
KDL::Chain::Chain | ( | const Chain & | in | ) |
References addSegment(), getNrOfSegments(), and getSegment().
|
virtual |
Referenced by getNrOfSegments().
void KDL::Chain::addChain | ( | const Chain & | chain | ) |
Adds a complete chain to the end of the chain The added chain is copied.
chain | The chain to add |
References addSegment(), getNrOfSegments(), and getSegment().
void KDL::Chain::addSegment | ( | const Segment & | segment | ) |
Adds a new segment to the end of the chain.
segment | The segment to add |
References KDL::Segment::getJoint(), KDL::Joint::getType(), KDL::Joint::None, nrOfJoints, nrOfSegments, and segments.
Referenced by addChain(), Chain(), KDL::Tree::getChain(), and operator=().
|
inline |
Request the total number of joints in the chain.
Important: It is not the same as the total number of segments since a segment does not need to have a joint. This function is important when creating a KDL::JntArray to use with this chain.
References nrOfJoints.
Referenced by KDL::ChainIkSolverVel_pinv_givens::CartToJnt(), KDL::ChainIdSolver_RNE::CartToJnt(), KDL::ChainIkSolverVel_pinv_nso::CartToJnt(), KDL::ChainIkSolverPos_NR::CartToJnt(), KDL::ChainIdSolver_Vereshchagin::CartToJnt(), KDL::ChainIkSolverVel_pinv::CartToJnt(), KDL::ChainIkSolverPos_NR_JL::CartToJnt(), KDL::ChainIkSolverVel_wdls::CartToJnt(), KDL::ChainIkSolverPos_LMA::CartToJnt(), KDL::ChainFkSolverPos_recursive::JntToCart(), KDL::ChainFkSolverVel_recursive::JntToCart(), KDL::ChainJntToJacSolver::JntToJac(), KDL::ChainJntToJacDotSolver::JntToJacDot(), KDL::ChainDynParam::JntToMass(), KDL::ChainJntToJacSolver::setLockedJoints(), KDL::ChainIkSolverVel_wdls::setWeightJS(), KDL::ChainIkSolverVel_pinv_givens::updateInternalDataStructures(), KDL::ChainDynParam::updateInternalDataStructures(), KDL::ChainIdSolver_RNE::updateInternalDataStructures(), KDL::ChainJntToJacSolver::updateInternalDataStructures(), KDL::ChainIkSolverPos_NR::updateInternalDataStructures(), KDL::ChainIkSolverVel_pinv::updateInternalDataStructures(), KDL::ChainIkSolverPos_NR_JL::updateInternalDataStructures(), KDL::ChainJntToJacDotSolver::updateInternalDataStructures(), KDL::ChainIkSolverVel_pinv_nso::updateInternalDataStructures(), KDL::ChainIkSolverPos_LMA::updateInternalDataStructures(), and KDL::ChainIkSolverVel_wdls::updateInternalDataStructures().
|
inline |
Request the total number of segments in the chain.
References getSegment(), nrOfSegments, and ~Chain().
Referenced by addChain(), KDL::Tree::addChain(), KDL::ChainIdSolver_RNE::CartToJnt(), KDL::ChainIdSolver_Vereshchagin::CartToJnt(), Chain(), KDL::ChainIkSolverPos_LMA::compute_fwdpos(), KDL::ChainIkSolverPos_LMA::compute_jacobian(), KDL::ChainFkSolverPos_recursive::JntToCart(), KDL::ChainFkSolverVel_recursive::JntToCart(), KDL::ChainJntToJacSolver::JntToJac(), KDL::ChainJntToJacDotSolver::JntToJacDot(), KDL::ChainDynParam::JntToMass(), KDL::operator<<(), KDL::ChainDynParam::updateInternalDataStructures(), KDL::ChainIdSolver_RNE::updateInternalDataStructures(), KDL::ChainIdSolver_Vereshchagin::updateInternalDataStructures(), and KDL::ChainIkSolverPos_LMA::updateInternalDataStructures().
const Segment & KDL::Chain::getSegment | ( | unsigned int | nr | ) | const |
Request the nr'd segment of the chain.
There is no boundary checking.
nr | the nr of the segment starting from 0 |
References segments.
Referenced by addChain(), KDL::Tree::addChain(), KDL::ChainIdSolver_RNE::CartToJnt(), Chain(), KDL::ChainIkSolverPos_LMA::compute_fwdpos(), KDL::ChainIkSolverPos_LMA::compute_jacobian(), KDL::ChainIdSolver_Vereshchagin::downwards_sweep(), KDL::ChainIdSolver_Vereshchagin::final_upwards_sweep(), getNrOfSegments(), KDL::ChainIdSolver_Vereshchagin::initial_upwards_sweep(), KDL::ChainFkSolverPos_recursive::JntToCart(), KDL::ChainFkSolverVel_recursive::JntToCart(), KDL::ChainJntToJacSolver::JntToJac(), KDL::ChainJntToJacDotSolver::JntToJacDot(), KDL::ChainDynParam::JntToMass(), KDL::operator<<(), and operator=().
Segment & KDL::Chain::getSegment | ( | unsigned int | nr | ) |
Request the nr'd segment of the chain.
There is no boundary checking.
nr | the nr of the segment starting from 0 |
References segments.
References addSegment(), getSegment(), nrOfJoints, nrOfSegments, and segments.
|
private |
Referenced by addSegment(), getNrOfJoints(), and operator=().
|
private |
Referenced by addSegment(), getNrOfSegments(), and operator=().
std::vector<Segment> KDL::Chain::segments |
Referenced by addSegment(), getSegment(), and operator=().