Simox  2.3.74.0
VirtualRobot::KinematicChain Class Reference
Inheritance diagram for VirtualRobot::KinematicChain:
VirtualRobot::RobotNodeSet VirtualRobot::SceneObjectSet

Public Member Functions

 KinematicChain (const std::string &name, RobotPtr robot, const std::vector< RobotNodePtr > &robotNodes, RobotNodePtr tcp=RobotNodePtr(), RobotNodePtr kinematicRoot=RobotNodePtr())
 
 ~KinematicChain () override
 
- Public Member Functions inherited from VirtualRobot::RobotNodeSet
RobotNodeSetPtr clone (RobotPtr newRobot, const RobotNodePtr newKinematicRoot=RobotNodePtr())
 
bool hasRobotNode (const RobotNodePtr &robotNode) const
 
bool hasRobotNode (const std::string &nodeName) const
 
int getRobotNodeIndex (const RobotNodePtr &robotNode) const
 
int getRobotNodeIndex (const std::string &nodeName) const
 
const std::vector< RobotNodePtr > & getAllRobotNodes () const
 
std::vector< std::string > getNodeNames () const
 
std::vector< float > getNodeLimitsLo () const
 
std::vector< float > getNodeLimitsHi () const
 
RobotNodePtr getKinematicRoot () const
 
void setKinematicRoot (RobotNodePtr robotNode)
 
RobotNodePtr getTCP () const
 
void print () const
 Print out some information. More...
 
unsigned int getSize () const override
 
std::vector< float > getJointValues () const
 
Eigen::VectorXf getJointValuesEigen () const
 
void getJointValues (std::vector< float > &fillVector) const
 
void getJointValues (Eigen::VectorXf &fillVector) const
 
void getJointValues (RobotConfigPtr fillVector) const
 
std::map< std::string, float > getJointValueMap () const
 
void respectJointLimits (std::vector< float > &jointValues) const
 
void respectJointLimits (Eigen::VectorXf &jointValues) const
 
bool checkJointLimits (std::vector< float > &jointValues, bool verbose=false) const
 
bool checkJointLimits (Eigen::VectorXf &jointValues, bool verbose=false) const
 
virtual void setJointValues (const std::vector< float > &jointValues)
 
virtual void setJointValues (const Eigen::VectorXf &jointValues)
 
virtual void setJointValues (const RobotConfigPtr jointValues)
 
RobotNodePtroperator[] (int i)
 
const RobotNodePtrgetNode (int i) const
 
const RobotNodePtrgetNode (const std::string &nodeName) const
 
auto begin ()
 
auto end ()
 
auto begin () const
 
auto end () const
 
unsigned int size () const
 
RobotPtr getRobot ()
 
bool isKinematicChain ()
 
KinematicChainPtr toKinematicChain ()
 
virtual void highlight (VisualizationPtr visualization, bool enable)
 
virtual int getNumFaces (bool collisionModel=false)
 
float getMaximumExtension ()
 
Eigen::Vector3f getCoM ()
 
float getMass ()
 
bool nodesSufficient (std::vector< RobotNodePtr > nodes) const
 Returns true, if nodes (only name strings are checked) are sufficient for building this rns. More...
 
std::string toXML (int tabs) override
 
bool addSceneObject (SceneObjectPtr sceneObject) override
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
bool addSceneObjects (SceneObjectSetPtr sceneObjectSet) override
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
bool addSceneObjects (RobotNodeSetPtr robotNodeSet) override
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
bool addSceneObjects (std::vector< RobotNodePtr > robotNodes) override
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
bool removeSceneObject (SceneObjectPtr sceneObject) override
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
bool mirror (const RobotNodeSet &targetNodeSet)
 
- Public Member Functions inherited from VirtualRobot::SceneObjectSet
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SceneObjectSet (const std::string &name="", CollisionCheckerPtr colChecker=CollisionCheckerPtr())
 
virtual ~SceneObjectSet ()
 
std::string getName () const
 
virtual void addSceneObjects (std::vector< SceneObjectPtr > sceneObjects)
 
virtual void addSceneObjects (std::vector< ManipulationObjectPtr > sceneObjects)
 
CollisionCheckerPtr getCollisionChecker ()
 
std::vector< CollisionModelPtrgetCollisionModels ()
 
std::vector< SceneObjectPtrgetSceneObjects ()
 
virtual SceneObjectPtr getSceneObject (unsigned int nr)
 
virtual bool hasSceneObject (SceneObjectPtr sceneObject)
 Returns true, if sceneObject is part of this set. More...
 
virtual bool getCurrentSceneObjectConfig (std::map< SceneObjectPtr, Eigen::Matrix4f > &storeConfig)
 fills the current globalPose of all associated sceneobjects to map. More...
 
SceneObjectSetPtr clone (const std::string &newName="")
 
SceneObjectSetPtr clone (const std::string &newName, CollisionCheckerPtr newColChecker)
 
ObstaclePtr createStaticObstacle (const std::string &name)
 

Protected Attributes

RobotNodePtr kinematicRoot
 
- Protected Attributes inherited from VirtualRobot::RobotNodeSet
NodeContainerT robotNodes
 
RobotWeakPtr robot
 
RobotNodePtr kinematicRoot
 
RobotNodePtr tcp
 
- Protected Attributes inherited from VirtualRobot::SceneObjectSet
std::string name
 
std::vector< SceneObjectPtrsceneObjects
 
CollisionCheckerPtr colChecker
 

Friends

class RobotFactory
 

Additional Inherited Members

- Public Types inherited from VirtualRobot::RobotNodeSet
typedef std::vector< RobotNodePtrNodeContainerT
 
typedef NodeContainerT::iterator NodeContainerIterT
 
- Static Public Member Functions inherited from VirtualRobot::RobotNodeSet
static RobotNodeSetPtr createRobotNodeSet (RobotPtr robot, const std::string &name, const std::vector< std::string > &robotNodeNames, const std::string &kinematicRootName="", const std::string &tcpName="", bool registerToRobot=false)
 
static RobotNodeSetPtr createRobotNodeSet (RobotPtr robot, const std::string &name, const std::vector< RobotNodePtr > &robotNodes, const RobotNodePtr kinematicRoot=RobotNodePtr(), const RobotNodePtr tcp=RobotNodePtr(), bool registerToRobot=false)
 
static RobotNodeSetPtr createRobotNodeSet (RobotPtr robot, const std::string &name, const std::vector< RobotNodeSetPtr > &robotNodes, const RobotNodePtr kinematicRoot=RobotNodePtr(), const RobotNodePtr tcp=RobotNodePtr(), bool registerToRobot=false)
 Merges the node sets (takes care of only adding each node once) More...
 
- Protected Member Functions inherited from VirtualRobot::RobotNodeSet
bool isKinematicRoot (RobotNodePtr robotNode)
 
 RobotNodeSet (const std::string &name, RobotWeakPtr robot, const std::vector< RobotNodePtr > &robotNodes, const RobotNodePtr kinematicRoot=RobotNodePtr(), const RobotNodePtr tcp=RobotNodePtr())
 
- Protected Member Functions inherited from VirtualRobot::SceneObjectSet
void destroyData ()
 delete all data More...
 

Detailed Description

A KinematicChain is a RobotNodeSet that fulfills some constraints on the covered RobotNodes. The nodes form a kinematic chain, which means that two successive nodes are uniquely connected in the kinematic tree of the robot. E.g. node i and node i+1 are parent and child or node i+1 is child of a child of node i, etc.

See also
RobotNodeSet

Constructor & Destructor Documentation

◆ KinematicChain()

VirtualRobot::KinematicChain::KinematicChain ( const std::string &  name,
RobotPtr  robot,
const std::vector< RobotNodePtr > &  robotNodes,
RobotNodePtr  tcp = RobotNodePtr(),
RobotNodePtr  kinematicRoot = RobotNodePtr() 
)

Initialize this set with a vector of RobotNodes. The nodes have to be ordered: node[i] must be parent or grandparent or.. of node[i+1]

Parameters
nameThe name of this kinematic chain.
robotNodesA set of robot nodes.
tcpThis specifies the TCP node of the robot's kinematic tree. tcp does not have to be a node of this set. If not given, the last entry of robotNodes is used.
kinematicRootThis specifies the first node of the robot's kinematic tree to be used for updating all members of this set. kinematicRoot does not have to be a node of this set. If not given, the first entry of robotNodes is used.

◆ ~KinematicChain()

VirtualRobot::KinematicChain::~KinematicChain ( )
overridedefault

Friends And Related Function Documentation

◆ RobotFactory

friend class RobotFactory
friend

Field Documentation

◆ kinematicRoot

RobotNodePtr VirtualRobot::KinematicChain::kinematicRoot
protected