hpp::manipulation::graph::Edge Class Reference

Transition between two states of a constraint graph. More...

#include <hpp/manipulation/graph/edge.hh>

Inheritance diagram for hpp::manipulation::graph::Edge:
[legend]
Collaboration diagram for hpp::manipulation::graph::Edge:
[legend]

Public Types

typedef core::RelativeMotion RelativeMotion
 

Public Member Functions

virtual ~Edge ()
 Destructor. More...
 
virtual bool applyConstraints (core::NodePtr_t nnear, ConfigurationOut_t q) const
 Apply edge constraint. More...
 
virtual bool applyConstraints (ConfigurationIn_t qoffset, ConfigurationOut_t q) const
 Apply edge constraint. More...
 
virtual bool canConnect (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
virtual bool build (core::PathPtr_t &path, ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
StatePtr_t to () const
 Get the destination. More...
 
StatePtr_t from () const
 Get the origin. More...
 
StatePtr_t state () const
 Get the state in which path is. More...
 
void state (StatePtr_t state)
 
const core::SteeringMethodPtr_tsteeringMethod () const
 Get steering method associated to the edge. More...
 
const core::PathValidationPtr_tpathValidation () const
 Get path validation associated to the edge. More...
 
const RelativeMotion::matrix_typerelativeMotion () const
 
void relativeMotion (const RelativeMotion::matrix_type &m)
 Update the relative motion matrix. More...
 
virtual bool direction (const core::PathPtr_t &path) const
 Get direction of the path compare to the edge. More...
 
virtual bool intersectionConstraint (const EdgePtr_t &other, ConfigProjectorPtr_t projector) const
 Populate a ConfigProjector with constraints required to generate a path at the intersection of two edges. More...
 
virtual std::ostream & dotPrint (std::ostream &os, dot::DrawingAttributes da=dot::DrawingAttributes()) const
 Print the object in a stream. More...
 
ConstraintSetPtr_t configConstraint () const
 Constraint of the destination state and of the path. More...
 
void setShort (bool isShort)
 
bool isShort () const
 
ConstraintSetPtr_t pathConstraint () const
 Constraint to project a path. More...
 
- Public Member Functions inherited from hpp::manipulation::graph::GraphComponent
virtual ~GraphComponent ()
 
const std::string & name () const
 Get the component name. More...
 
const std::size_t & id () const
 Return the component id. More...
 
virtual void addNumericalConstraint (const ImplicitPtr_t &numConstraint, const segments_t &passiveDofs=segments_t())
 Add Implicit to the component. More...
 
virtual void addNumericalConstraint (const DifferentiableFunctionPtr_t &function, const ComparisonTypes_t &ineq) HPP_MANIPULATION_DEPRECATED
 Add core::DifferentiableFunction to the component. More...
 
virtual void resetNumericalConstraints ()
 Reset the numerical constraints stored in the component. More...
 
virtual void addLockedJointConstraint (const LockedJointPtr_t &constraint)
 Add core::LockedJoint constraint to the component. More...
 
virtual void resetLockedJoints ()
 Reset the locked joint in the component. More...
 
bool insertNumericalConstraints (ConfigProjectorPtr_t &proj) const
 Insert the numerical constraints in a ConfigProjector. More...
 
bool insertLockedJoints (ConfigProjectorPtr_t &cs) const
 Insert the LockedJoint constraints in a ConstraintSet. More...
 
const NumericalConstraints_tnumericalConstraints () const
 Get a reference to the NumericalConstraints_t. More...
 
const IntervalsContainer_tpassiveDofs () const
 Get a reference to the NumericalConstraints_t. More...
 
const LockedJoints_tlockedJoints () const
 Get a reference to the LockedJoints_t. More...
 
void parentGraph (const GraphWkPtr_t &parent)
 Set the parent graph. More...
 
GraphPtr_t parentGraph () const
 Set the parent graph. More...
 
void setDirty ()
 Declare a component as dirty. More...
 

Static Public Member Functions

static EdgePtr_t create (const std::string &name, const GraphWkPtr_t &graph, const StateWkPtr_t &from, const StateWkPtr_t &to)
 Create a new empty Edge. More...
 

Protected Member Functions

void init (const EdgeWkPtr_t &weak, const GraphWkPtr_t &graph, const StateWkPtr_t &from, const StateWkPtr_t &to)
 Initialization of the object. More...
 
 Edge (const std::string &name)
 Constructor. More...
 
virtual ConstraintSetPtr_t buildConfigConstraint ()
 
virtual ConstraintSetPtr_t buildPathConstraint ()
 
virtual void initialize ()
 
virtual std::ostream & print (std::ostream &os) const
 Print the object in a stream. More...
 
- Protected Member Functions inherited from hpp::manipulation::graph::GraphComponent
void init (const GraphComponentWkPtr_t &weak)
 Initialize the component. More...
 
 GraphComponent (const std::string &name)
 
void throwIfNotInitialized () const
 
virtual void populateTooltip (dot::Tooltip &tp) const
 Populate DrawingAttributes tooltip. More...
 

Protected Attributes

bool isShort_
 
- Protected Attributes inherited from hpp::manipulation::graph::GraphComponent
NumericalConstraints_t numericalConstraints_
 Stores the numerical constraints. More...
 
IntervalsContainer_t passiveDofs_
 Stores the passive dofs for each numerical constraints. More...
 
LockedJoints_t lockedJoints_
 List of LockedJoint constraints. More...
 
GraphWkPtr_t graph_
 A weak pointer to the parent graph. More...
 
bool isInit_
 

Friends

class Graph
 

Detailed Description

Transition between two states of a constraint graph.

An edge stores two types of constraints.

  • Path constraints should be safisfied by paths belonging to the edge. Along any path, the right hand side of the constraint is constant, but can differ between paths. For instance if an edge represents a transit path of a robot that can grasp an object, the right hand side of the constraint represents the position of the object. Along any transit path, the object does not move, but for different paths the object can be at different positions.
    See also
    method pathConstraint.
  • Configuration constraints are constraints that configurations in the destination state should satisfy and the constraints that paths should satisfy. For instance, if the edge links a state where the robot does not hold the object to a state where the robot holds the object, the configuration constraints represent a fixed relative position of the object with respect to the gripper and a stable position of the object. Configuration constraints are necessary to generate a configuration in the destination state of the edge that is reachable from a given configuration in the start state by an admissible path.

Member Typedef Documentation

Constructor & Destructor Documentation

virtual hpp::manipulation::graph::Edge::~Edge ( )
virtual

Destructor.

hpp::manipulation::graph::Edge::Edge ( const std::string &  name)
protected

Constructor.

Member Function Documentation

virtual bool hpp::manipulation::graph::Edge::applyConstraints ( core::NodePtr_t  nnear,
ConfigurationOut_t  q 
) const
virtual

Apply edge constraint.

Parameters
nnearnode containing the configuration defining the right hand side of the edge constraint,
[in,out]qconfiguration to which the edge constraint is applied.
See also
hpp::core::ConfigProjector::rightHandSideFromConfig

Reimplemented in hpp::manipulation::graph::LevelSetEdge.

virtual bool hpp::manipulation::graph::Edge::applyConstraints ( ConfigurationIn_t  qoffset,
ConfigurationOut_t  q 
) const
virtual

Apply edge constraint.

Parameters
qoffsetconfiguration defining the right hand side of the edge constraint,
[in,out]qconfiguration to which the edge constraint is applied.
See also
hpp::core::ConfigProjector::rightHandSideFromConfig

Reimplemented in hpp::manipulation::graph::LevelSetEdge, and hpp::manipulation::graph::WaypointEdge.

virtual bool hpp::manipulation::graph::Edge::build ( core::PathPtr_t path,
ConfigurationIn_t  q1,
ConfigurationIn_t  q2 
) const
virtual
virtual ConstraintSetPtr_t hpp::manipulation::graph::Edge::buildConfigConstraint ( )
protectedvirtual
virtual ConstraintSetPtr_t hpp::manipulation::graph::Edge::buildPathConstraint ( )
protectedvirtual
virtual bool hpp::manipulation::graph::Edge::canConnect ( ConfigurationIn_t  q1,
ConfigurationIn_t  q2 
) const
virtual
ConstraintSetPtr_t hpp::manipulation::graph::Edge::configConstraint ( ) const

Constraint of the destination state and of the path.

static EdgePtr_t hpp::manipulation::graph::Edge::create ( const std::string &  name,
const GraphWkPtr_t &  graph,
const StateWkPtr_t &  from,
const StateWkPtr_t &  to 
)
static

Create a new empty Edge.

virtual bool hpp::manipulation::graph::Edge::direction ( const core::PathPtr_t path) const
virtual

Get direction of the path compare to the edge.

Returns
true is reverse
virtual std::ostream& hpp::manipulation::graph::Edge::dotPrint ( std::ostream &  os,
dot::DrawingAttributes  da = dot::DrawingAttributes() 
) const
virtual
StatePtr_t hpp::manipulation::graph::Edge::from ( ) const

Get the origin.

void hpp::manipulation::graph::Edge::init ( const EdgeWkPtr_t &  weak,
const GraphWkPtr_t &  graph,
const StateWkPtr_t &  from,
const StateWkPtr_t &  to 
)
protected

Initialization of the object.

virtual void hpp::manipulation::graph::Edge::initialize ( )
protectedvirtual
virtual bool hpp::manipulation::graph::Edge::intersectionConstraint ( const EdgePtr_t other,
ConfigProjectorPtr_t  projector 
) const
virtual

Populate a ConfigProjector with constraints required to generate a path at the intersection of two edges.

bool hpp::manipulation::graph::Edge::isShort ( ) const
inline

References init(), and print().

ConstraintSetPtr_t hpp::manipulation::graph::Edge::pathConstraint ( ) const

Constraint to project a path.

Returns
The initialized constraint.
const core::PathValidationPtr_t& hpp::manipulation::graph::Edge::pathValidation ( ) const
inline

Get path validation associated to the edge.

virtual std::ostream& hpp::manipulation::graph::Edge::print ( std::ostream &  os) const
protectedvirtual
const RelativeMotion::matrix_type& hpp::manipulation::graph::Edge::relativeMotion ( ) const
inline
void hpp::manipulation::graph::Edge::relativeMotion ( const RelativeMotion::matrix_type m)

Update the relative motion matrix.

void hpp::manipulation::graph::Edge::setShort ( bool  isShort)
inline
StatePtr_t hpp::manipulation::graph::Edge::state ( ) const
inline

Get the state in which path is.

void hpp::manipulation::graph::Edge::state ( StatePtr_t  state)
inline
const core::SteeringMethodPtr_t& hpp::manipulation::graph::Edge::steeringMethod ( ) const
inline

Get steering method associated to the edge.

References steeringMethod_.

StatePtr_t hpp::manipulation::graph::Edge::to ( ) const

Get the destination.

Friends And Related Function Documentation

friend class Graph
friend

Member Data Documentation

bool hpp::manipulation::graph::Edge::isShort_
protected