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< EnforceTransitionSemantic > Ptr_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()

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: