hpp::manipulation::graph::WaypointEdge Class Reference

Edge with waypoint. More...

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

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

Public Member Functions

virtual bool canConnect (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
virtual bool build (core::PathPtr_t &path, ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
virtual bool applyConstraints (ConfigurationIn_t qoffset, ConfigurationOut_t q) const
 Apply edge constraint. More...
 
const EdgePtr_twaypoint (const std::size_t index) const
 Return the index-th edge. More...
 
virtual std::ostream & dotPrint (std::ostream &os, dot::DrawingAttributes da=dot::DrawingAttributes()) const
 Print the object in a stream. More...
 
void nbWaypoints (const size_type number)
 Set the number of waypoints. More...
 
std::size_t nbWaypoints () const
 
void setWaypoint (const std::size_t index, const EdgePtr_t wEdge, const StatePtr_t wTo)
 Set waypoint index with wEdge and wTo. More...
 
- Public Member Functions inherited from hpp::manipulation::graph::Edge
virtual ~Edge ()
 Destructor. More...
 
virtual bool applyConstraints (core::NodePtr_t nnear, ConfigurationOut_t q) const
 Apply edge constraint. More...
 
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...
 
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 WaypointEdgePtr_t create (const std::string &name, const GraphWkPtr_t &graph, const StateWkPtr_t &from, const StateWkPtr_t &to)
 Create a new WaypointEdge. More...
 
- Static Public Member Functions inherited from hpp::manipulation::graph::Edge
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

 WaypointEdge (const std::string &name)
 
void init (const WaypointEdgeWkPtr_t &weak, const GraphWkPtr_t &graph, const StateWkPtr_t &from, const StateWkPtr_t &to)
 Initialization of the object. More...
 
virtual std::ostream & print (std::ostream &os) const
 Print the object in a stream. More...
 
- Protected Member Functions inherited from hpp::manipulation::graph::Edge
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 ()
 
- 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...
 

Additional Inherited Members

- Public Types inherited from hpp::manipulation::graph::Edge
typedef core::RelativeMotion RelativeMotion
 
- Protected Attributes inherited from hpp::manipulation::graph::Edge
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_
 

Detailed Description

Edge with waypoint.

Waypoints are handled recursively, i.e. class WaypointEdge contains only a State and an Edge, the second Edge being itself. In this package, the State in a WaypointEdge is semantically different from other State because it does not correspond to a state with different manipulation rules. It has the same rules as another State (either Edge::from() or Edge::to()).

Semantically, a waypoint State is fully part of the WaypointEdge. When a corresponding path reaches it, no planning is required to know what to do next. To the contrary, when a path reaches Edge::from() or Edge::to(), there may be several possibilities.

Note
Implementation details: let's say, between the two states $N_f$ and $N_t$, two waypoints are required: $ N_f \xrightarrow{e_0} n_0 \xrightarrow{e_1} n_1 \xrightarrow{e_2} N_t$. The WaypointEdge contains:
  • from: $N_f$,
  • to: $N_t$,
  • states: $(n_0, n_1)$
  • transitions: $(e_0, e_1, e_2)$
  • constraints: any calls to the constraints throw,

Constructor & Destructor Documentation

hpp::manipulation::graph::WaypointEdge::WaypointEdge ( const std::string &  name)
inlineprotected

References init(), and print().

Member Function Documentation

virtual bool hpp::manipulation::graph::WaypointEdge::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 from hpp::manipulation::graph::Edge.

virtual bool hpp::manipulation::graph::WaypointEdge::build ( core::PathPtr_t path,
ConfigurationIn_t  q1,
ConfigurationIn_t  q2 
) const
virtual

Reimplemented from hpp::manipulation::graph::Edge.

virtual bool hpp::manipulation::graph::WaypointEdge::canConnect ( ConfigurationIn_t  q1,
ConfigurationIn_t  q2 
) const
virtual

Reimplemented from hpp::manipulation::graph::Edge.

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

Create a new WaypointEdge.

virtual std::ostream& hpp::manipulation::graph::WaypointEdge::dotPrint ( std::ostream &  os,
dot::DrawingAttributes  da = dot::DrawingAttributes() 
) const
virtual

Print the object in a stream.

Reimplemented from hpp::manipulation::graph::Edge.

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

Initialization of the object.

void hpp::manipulation::graph::WaypointEdge::nbWaypoints ( const size_type  number)

Set the number of waypoints.

std::size_t hpp::manipulation::graph::WaypointEdge::nbWaypoints ( ) const
inline
virtual std::ostream& hpp::manipulation::graph::WaypointEdge::print ( std::ostream &  os) const
protectedvirtual

Print the object in a stream.

Reimplemented from hpp::manipulation::graph::Edge.

void hpp::manipulation::graph::WaypointEdge::setWaypoint ( const std::size_t  index,
const EdgePtr_t  wEdge,
const StatePtr_t  wTo 
)

Set waypoint index with wEdge and wTo.

Parameters
wTois the destination state of wEdge
const EdgePtr_t& hpp::manipulation::graph::WaypointEdge::waypoint ( const std::size_t  index) const

Return the index-th edge.