hpp-manipulation 5.2.0
Classes for manipulation planning.
Loading...
Searching...
No Matches
Helpers to build the graph of constraints

Classes

struct  hpp::manipulation::graph::helper::FoliatedManifold
 
struct  hpp::manipulation::graph::helper::Rule
 
struct  hpp::manipulation::graph::helper::ObjectDef_t
 

Typedefs

typedef std::vector< Rulehpp::manipulation::graph::helper::Rules_t
 
typedef std::tuple< ImplicitPtr_t, ImplicitPtr_t, LockedJoints_thpp::manipulation::graph::helper::PlacementConstraint_t
 
typedef std::vector< HandlePtr_thpp::manipulation::graph::helper::Handles_t
 
typedef std::vector< GripperPtr_thpp::manipulation::graph::helper::Grippers_t
 
typedef std::tuple< PlacementConstraint_t, Handles_t, std::size_t > hpp::manipulation::graph::helper::Object_t
 
typedef std::vector< Object_thpp::manipulation::graph::helper::Objects_t
 

Enumerations

enum  hpp::manipulation::graph::helper::GraspingCase { hpp::manipulation::graph::helper::NoGrasp = 1 << 0 , hpp::manipulation::graph::helper::GraspOnly = 1 << 1 , hpp::manipulation::graph::helper::WithPreGrasp = 1 << 2 }
 
enum  hpp::manipulation::graph::helper::PlacementCase { hpp::manipulation::graph::helper::NoPlace = 1 << 3 , hpp::manipulation::graph::helper::PlaceOnly = 1 << 4 , hpp::manipulation::graph::helper::WithPrePlace = 1 << 5 }
 

Functions

NumericalConstraints_t hpp::manipulation::graph::helper::merge_nc (const NumericalConstraints_t &a, const NumericalConstraints_t &b)
 
template<int gCase>
Edges_t hpp::manipulation::graph::helper::createEdges (const std::string &forwName, const std::string &backName, const StatePtr_t &from, const StatePtr_t &to, const size_type &wForw, const size_type &wBack, const FoliatedManifold &grasp, const FoliatedManifold &pregrasp, const FoliatedManifold &place, const FoliatedManifold &preplace, const bool levelSetGrasp, const bool levelSetPlace, const FoliatedManifold &submanifoldDef=FoliatedManifold())
 
EdgePtr_t hpp::manipulation::graph::helper::createLoopEdge (const std::string &loopName, const StatePtr_t &state, const size_type &w, const bool levelSet, const FoliatedManifold &submanifoldDef=FoliatedManifold())
 
void hpp::manipulation::graph::helper::graspManifold (const GripperPtr_t &gripper, const HandlePtr_t &handle, FoliatedManifold &grasp, FoliatedManifold &pregrasp)
 
void hpp::manipulation::graph::helper::strictPlacementManifold (const ImplicitPtr_t placement, const ImplicitPtr_t preplacement, const ImplicitPtr_t placementComplement, FoliatedManifold &place, FoliatedManifold &preplace)
 
void hpp::manipulation::graph::helper::relaxedPlacementManifold (const ImplicitPtr_t placement, const ImplicitPtr_t preplacement, const LockedJoints_t objectLocks, FoliatedManifold &place, FoliatedManifold &preplace)
 
void hpp::manipulation::graph::helper::graphBuilder (const ProblemSolverPtr_t &ps, const Objects_t &objects, const Grippers_t &grippers, GraphPtr_t graph, const Rules_t &rules=Rules_t())
 
GraphPtr_t hpp::manipulation::graph::helper::graphBuilder (const ProblemSolverPtr_t &ps, const std::string &graphName, const Strings_t &griNames, const std::vector< ObjectDef_t > &objs, const Strings_t &envNames, const Rules_t &rules, const value_type &prePlaceWidth=0.05)
 

Detailed Description

Typedef Documentation

◆ Grippers_t

◆ Handles_t

◆ Object_t

Tuple representing an object as follows:

  • PlacementConstraint_t constraint to place the object
  • Handles_t list of handles of the object
  • std::size_t the index of this tuple in Objects_t.
    Note
    the index must be unique, as object equallity is checked using this index.

◆ Objects_t

◆ PlacementConstraint_t

◆ Rules_t

Enumeration Type Documentation

◆ GraspingCase

Enumerator
NoGrasp 
GraspOnly 
WithPreGrasp 

◆ PlacementCase

Enumerator
NoPlace 
PlaceOnly 
WithPrePlace 

Function Documentation

◆ createEdges()

template<int gCase>
Edges_t hpp::manipulation::graph::helper::createEdges ( const std::string & forwName,
const std::string & backName,
const StatePtr_t & from,
const StatePtr_t & to,
const size_type & wForw,
const size_type & wBack,
const FoliatedManifold & grasp,
const FoliatedManifold & pregrasp,
const FoliatedManifold & place,
const FoliatedManifold & preplace,
const bool levelSetGrasp,
const bool levelSetPlace,
const FoliatedManifold & submanifoldDef = FoliatedManifold() )

Create edges according to the case. gCase is a logical OR combination of GraspingCase and PlacementCase

When an argument is not relevant, use the default constructor of FoliatedManifold

◆ createLoopEdge()

EdgePtr_t hpp::manipulation::graph::helper::createLoopEdge ( const std::string & loopName,
const StatePtr_t & state,
const size_type & w,
const bool levelSet,
const FoliatedManifold & submanifoldDef = FoliatedManifold() )

◆ graphBuilder() [1/2]

void hpp::manipulation::graph::helper::graphBuilder ( const ProblemSolverPtr_t & ps,
const Objects_t & objects,
const Grippers_t & grippers,
GraphPtr_t graph,
const Rules_t & rules = Rules_t() )

Fill a Graph

Note
It is assumed that a gripper can grasp only one handle and each handle cannot be grasped by several grippers at the same time.
Parameters
[in,out]graphmust be an initialized empty Graph.

◆ graphBuilder() [2/2]

GraphPtr_t hpp::manipulation::graph::helper::graphBuilder ( const ProblemSolverPtr_t & ps,
const std::string & graphName,
const Strings_t & griNames,
const std::vector< ObjectDef_t > & objs,
const Strings_t & envNames,
const Rules_t & rules,
const value_type & prePlaceWidth = 0.05 )

◆ graspManifold()

void hpp::manipulation::graph::helper::graspManifold ( const GripperPtr_t & gripper,
const HandlePtr_t & handle,
FoliatedManifold & grasp,
FoliatedManifold & pregrasp )

Create a waypoint edge taking into account:

  • grasp
  • placement
  • preplacement Create a waypoint edge taking into account
  • grasp
  • pregrasp
  • placement

◆ merge_nc()

NumericalConstraints_t hpp::manipulation::graph::helper::merge_nc ( const NumericalConstraints_t & a,
const NumericalConstraints_t & b )

◆ relaxedPlacementManifold()

void hpp::manipulation::graph::helper::relaxedPlacementManifold ( const ImplicitPtr_t placement,
const ImplicitPtr_t preplacement,
const LockedJoints_t objectLocks,
FoliatedManifold & place,
FoliatedManifold & preplace )

The placement foliation constraint is built locked joints It is faster than strictPlacementManifold but the foliation parametrisation is redundant.

◆ strictPlacementManifold()

void hpp::manipulation::graph::helper::strictPlacementManifold ( const ImplicitPtr_t placement,
const ImplicitPtr_t preplacement,
const ImplicitPtr_t placementComplement,
FoliatedManifold & place,
FoliatedManifold & preplace )

The placement foliation constraint is built using hpp::constraints::ConvexShapeMatcherComplement