hpp-manipulation 9.0.2
Classes for manipulation planning.
Loading...
Searching...
No Matches
hpp::manipulation::pathOptimization::EnforceTransitionSemantic Class Reference

#include <hpp/manipulation/path-optimization/enforce-transition-semantic.hh>

Inheritance diagram for hpp::manipulation::pathOptimization::EnforceTransitionSemantic:
Collaboration diagram for hpp::manipulation::pathOptimization::EnforceTransitionSemantic:

Public Types

typedef hpp::core::PathVectorPtr_t PathVectorPtr_t
 
typedef shared_ptr< EnforceTransitionSemanticPtr_t
 

Public Member Functions

virtual PathVectorPtr_t optimize (const PathVectorPtr_t &path)
 
- Public Member Functions inherited from hpp::core::PathOptimizer
virtual ~PathOptimizer ()
 
ProblemConstPtr_t problem () const
 
void interrupt ()
 
void maxIterations (const unsigned long int &n)
 
void timeOut (const double &timeOut)
 

Static Public Member Functions

static Ptr_t create (const core::ProblemConstPtr_t &problem)
 

Protected Member Functions

 EnforceTransitionSemantic (const ProblemConstPtr_t &problem)
 Constructor.
 
- Protected Member Functions inherited from hpp::core::PathOptimizer
 PathOptimizer (const ProblemConstPtr_t &problem)
 
PathPtr_t steer (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
void monitorExecution ()
 
void endIteration ()
 
bool shouldStop () const
 
void initFromParameters ()
 

Additional Inherited Members

- Public Attributes inherited from hpp::core::PathOptimizer
bool enabled
 
size_type iteration
 
boost::posix_time::ptime timeStart
 
- Protected Attributes inherited from hpp::core::PathOptimizer
bool interrupt_
 

Detailed Description

Recompute the transition relative to each element of the path vector

When executing a sequence of direct paths on a real robot, it is useful to know which transition of the graph each direct path corresponds to. For example, in a manipulation motion, before grasping an object, the robot needs to open the gripper. This information is contained in the transition that leads to a pregrasp waypoint state. The direct path should therefore have access to the transition.

The information is stored in the constraint set of the path and is accessible via method edge .

If the path vector is produced by a manipulation planner, each direct path has been created by a transition. However, the path may later be cut by random shortcut or due to collision and the associated transition become irrelevant. For example if a path is created by a transition that leads to a pre-grasp, and cut due to a collision, the path does not reach the target state and the relevant transition is not the one that built the path.

This class takes a path vector as input an relabel each direct path with the correct transition.

Precondition
The path should have been created by a manipulation planning algorithm: in other words, the constraint set of each direct path should be of type hpp::manipulation::ConstraintSet.

Member Typedef Documentation

◆ PathVectorPtr_t

◆ Ptr_t

Constructor & Destructor Documentation

◆ EnforceTransitionSemantic()

hpp::manipulation::pathOptimization::EnforceTransitionSemantic::EnforceTransitionSemantic ( const ProblemConstPtr_t problem)
inlineprotected

Constructor.

Member Function Documentation

◆ create()

static Ptr_t hpp::manipulation::pathOptimization::EnforceTransitionSemantic::create ( const core::ProblemConstPtr_t problem)
inlinestatic

◆ optimize()

virtual PathVectorPtr_t hpp::manipulation::pathOptimization::EnforceTransitionSemantic::optimize ( const PathVectorPtr_t path)
virtual

The documentation for this class was generated from the following file: