hpp-manipulation 7.0.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, 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 placementComplement, FoliatedManifold &place, FoliatedManifold &preplace)
void hpp::manipulation::graph::helper::relaxedPlacementManifold (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 boollevelSetGrasp,
const boollevelSetPlace,
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 boollevelSet,
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_tgraph,
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_tplacement,
const ImplicitPtr_tpreplacement,
const LockedJoints_tobjectLocks,
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_tplacement,
const ImplicitPtr_tpreplacement,
const ImplicitPtr_tplacementComplement,
FoliatedManifold &place,
FoliatedManifold &preplace )

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