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

Public Types

typedef std::vector< RobotNodePtrNodeContainerT
 
typedef NodeContainerT::iterator NodeContainerIterT
 

Public Member Functions

RobotNodeSetPtr clone (RobotPtr newRobot, const RobotNodePtr newKinematicRoot=RobotNodePtr())
 
bool hasRobotNode (RobotNodePtr robotNode) const
 
bool hasRobotNode (const std::string &nodeName) const
 
const std::vector< RobotNodePtrgetAllRobotNodes () const
 
std::vector< std::string > getNodeNames () const
 
RobotNodePtr getKinematicRoot () const
 
void setKinematicRoot (RobotNodePtr robotNode)
 
RobotNodePtr getTCP () const
 
void print () const
 Print out some information. More...
 
virtual unsigned int getSize () const
 
std::vector< float > getJointValues () 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)
 
RobotNodePtrgetNode (int i)
 
NodeContainerIterT begin ()
 
NodeContainerIterT end ()
 
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...
 
virtual std::string toXML (int tabs)
 
virtual bool addSceneObject (SceneObjectPtr sceneObject)
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
virtual bool addSceneObjects (SceneObjectSetPtr sceneObjectSet)
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
virtual bool addSceneObjects (RobotNodeSetPtr robotNodeSet)
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
virtual bool addSceneObjects (std::vector< RobotNodePtr > robotNodes)
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
virtual bool removeSceneObject (SceneObjectPtr sceneObject)
 this is forbidden for RobotNodeSets, a call will throw an exception More...
 
- 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
 
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)
 

Static Public Member Functions

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)
 

Protected Member Functions

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

Protected Attributes

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
 

Detailed Description

A RobotNodeSet is a sub-set of RobotNodes of a Robot. Additionally to the list of RobotNodes, a RobotNodeSet holds information about

  • the kinematic root (the topmost RobotNode of the Robot's kinematic tree that has to be updated in order to update all covered RobotNodes)
  • the Tool Center point (TCP)

Member Typedef Documentation

typedef NodeContainerT::iterator VirtualRobot::RobotNodeSet::NodeContainerIterT

Constructor & Destructor Documentation

VirtualRobot::RobotNodeSet::RobotNodeSet ( const std::string &  name,
RobotWeakPtr  robot,
const std::vector< RobotNodePtr > &  robotNodes,
const RobotNodePtr  kinematicRoot = RobotNodePtr(),
const RobotNodePtr  tcp = RobotNodePtr() 
)
protected

Initialize this set with a vector of RobotNodes.

Parameters
nameA name
robotA robot
robotNodesA set of robot nodes.
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.
tcpThe tcp.

Member Function Documentation

bool VirtualRobot::RobotNodeSet::addSceneObject ( SceneObjectPtr  sceneObject)
virtual

this is forbidden for RobotNodeSets, a call will throw an exception

Reimplemented from VirtualRobot::SceneObjectSet.

bool VirtualRobot::RobotNodeSet::addSceneObjects ( SceneObjectSetPtr  sceneObjectSet)
virtual

this is forbidden for RobotNodeSets, a call will throw an exception

Reimplemented from VirtualRobot::SceneObjectSet.

bool VirtualRobot::RobotNodeSet::addSceneObjects ( RobotNodeSetPtr  robotNodeSet)
virtual

this is forbidden for RobotNodeSets, a call will throw an exception

Reimplemented from VirtualRobot::SceneObjectSet.

bool VirtualRobot::RobotNodeSet::addSceneObjects ( std::vector< RobotNodePtr robotNodes)
virtual

this is forbidden for RobotNodeSets, a call will throw an exception

Reimplemented from VirtualRobot::SceneObjectSet.

NodeContainerIterT VirtualRobot::RobotNodeSet::begin ( )
inline
bool VirtualRobot::RobotNodeSet::checkJointLimits ( std::vector< float > &  jointValues,
bool  verbose = false 
) const

Checks if the jointValues are within the current joint limits.

Parameters
jointValuesA vector of correct size.
verbosePrint information if joint limits are violated.
Returns
True when all given joint values are within joint limits.
bool VirtualRobot::RobotNodeSet::checkJointLimits ( Eigen::VectorXf &  jointValues,
bool  verbose = false 
) const
RobotNodeSetPtr VirtualRobot::RobotNodeSet::clone ( RobotPtr  newRobot,
const RobotNodePtr  newKinematicRoot = RobotNodePtr() 
)

Registers a copy of this node set with the given robot

RobotNodeSetPtr VirtualRobot::RobotNodeSet::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

Use this method to create and fully initialize an instance of RobotNodeSet.

RobotNodeSetPtr VirtualRobot::RobotNodeSet::createRobotNodeSet ( RobotPtr  robot,
const std::string &  name,
const std::vector< RobotNodePtr > &  robotNodes,
const RobotNodePtr  kinematicRoot = RobotNodePtr(),
const RobotNodePtr  tcp = RobotNodePtr(),
bool  registerToRobot = false 
)
static

Use this method to create and fully initialize an instance of RobotNodeSet.

NodeContainerIterT VirtualRobot::RobotNodeSet::end ( )
inline
const std::vector< RobotNodePtr > VirtualRobot::RobotNodeSet::getAllRobotNodes ( ) const

Returns all nodes.

Eigen::Vector3f VirtualRobot::RobotNodeSet::getCoM ( )

Return center of mass of this node set.

std::map< std::string, float > VirtualRobot::RobotNodeSet::getJointValueMap ( ) const
std::vector< float > VirtualRobot::RobotNodeSet::getJointValues ( ) const
void VirtualRobot::RobotNodeSet::getJointValues ( std::vector< float > &  fillVector) const
void VirtualRobot::RobotNodeSet::getJointValues ( Eigen::VectorXf &  fillVector) const
void VirtualRobot::RobotNodeSet::getJointValues ( RobotConfigPtr  fillVector) const
RobotNodePtr VirtualRobot::RobotNodeSet::getKinematicRoot ( ) const

Returns the topmost node of the robot's kinematic tree to be used for updating all members of this set. This node is usually defined in the RobotNodeSet's XML definition.

float VirtualRobot::RobotNodeSet::getMass ( )

Return accumulated mass of this node set.

float VirtualRobot::RobotNodeSet::getMaximumExtension ( )

Compute an upper bound of the extension of the kinematic chain formed by this RobotNodeSet. This is done by summing the distances between all succeeding RobotNodes of this set.

RobotNodePtr & VirtualRobot::RobotNodeSet::getNode ( int  i)
std::vector< std::string > VirtualRobot::RobotNodeSet::getNodeNames ( ) const
int VirtualRobot::RobotNodeSet::getNumFaces ( bool  collisionModel = false)
virtual

get number of faces (i.e. triangles) of this object collisionModel Indicates weather the faces of the collision model or the full model should be returned.

RobotPtr VirtualRobot::RobotNodeSet::getRobot ( )
unsigned int VirtualRobot::RobotNodeSet::getSize ( ) const
virtual

The number of associated robot nodes.

Reimplemented from VirtualRobot::SceneObjectSet.

RobotNodePtr VirtualRobot::RobotNodeSet::getTCP ( ) const

Returns the TCP.

bool VirtualRobot::RobotNodeSet::hasRobotNode ( RobotNodePtr  robotNode) const
bool VirtualRobot::RobotNodeSet::hasRobotNode ( const std::string &  nodeName) const
void VirtualRobot::RobotNodeSet::highlight ( VisualizationPtr  visualization,
bool  enable 
)
virtual

Convenient method for highlighting the visualization of this node. It is automatically checked whether the collision model or the full model is part of the visualization.

Parameters
visualizationThe visualization for which the highlighting should be performed.
enableSet or unset highlighting.
bool VirtualRobot::RobotNodeSet::isKinematicChain ( )

Checks if this set of robot nodes form a valid kinematic chain.

bool VirtualRobot::RobotNodeSet::isKinematicRoot ( RobotNodePtr  robotNode)
protected

Tests if the given robot node is a valid kinematic root

bool VirtualRobot::RobotNodeSet::nodesSufficient ( std::vector< RobotNodePtr nodes) const

Returns true, if nodes (only name strings are checked) are sufficient for building this rns.

RobotNodePtr & VirtualRobot::RobotNodeSet::operator[] ( int  i)
void VirtualRobot::RobotNodeSet::print ( ) const

Print out some information.

bool VirtualRobot::RobotNodeSet::removeSceneObject ( SceneObjectPtr  sceneObject)
virtual

this is forbidden for RobotNodeSets, a call will throw an exception

Reimplemented from VirtualRobot::SceneObjectSet.

void VirtualRobot::RobotNodeSet::respectJointLimits ( std::vector< float > &  jointValues) const

Cut

void VirtualRobot::RobotNodeSet::respectJointLimits ( Eigen::VectorXf &  jointValues) const
void VirtualRobot::RobotNodeSet::setJointValues ( const std::vector< float > &  jointValues)
virtual

Set joint values [rad]. The subpart of the robot, defined by the start joint (kinematicRoot) of rns, is updated to apply the new joint values.

Parameters
jointValuesA vector with joint values, size must be equal to number of joints in this RobotNodeSet.
void VirtualRobot::RobotNodeSet::setJointValues ( const Eigen::VectorXf &  jointValues)
virtual

Set joint values [rad]. The subpart of the robot, defined by the start joint (kinematicRoot) of rns, is updated to apply the new joint values.

Parameters
jointValuesA vector with joint values, size must be equal to number of joints in this RobotNodeSet.
void VirtualRobot::RobotNodeSet::setJointValues ( const RobotConfigPtr  jointValues)
virtual

Set joints that are within the given RobotConfig. Joints of this NodeSet that are not stored in jointValues remain untouched.

void VirtualRobot::RobotNodeSet::setKinematicRoot ( RobotNodePtr  robotNode)
KinematicChainPtr VirtualRobot::RobotNodeSet::toKinematicChain ( )
std::string VirtualRobot::RobotNodeSet::toXML ( int  tabs)
virtual

Reimplemented from VirtualRobot::SceneObjectSet.

Friends And Related Function Documentation

friend class RobotFactory
friend

Field Documentation

RobotNodePtr VirtualRobot::RobotNodeSet::kinematicRoot
protected
RobotWeakPtr VirtualRobot::RobotNodeSet::robot
protected
NodeContainerT VirtualRobot::RobotNodeSet::robotNodes
protected
RobotNodePtr VirtualRobot::RobotNodeSet::tcp
protected