29 #ifndef HPP_MANIPULATION_GRAPH_HELPER_HH
30 #define HPP_MANIPULATION_GRAPH_HELPER_HH
41 namespace manipulation {
52 nc.reserve(a.size() + b.size());
53 std::copy(a.begin(), a.end(), nc.begin());
54 std::copy(b.begin(), b.end(), nc.begin());
72 std::copy(
lj.begin(),
lj.end(), both.
lj.end());
73 std::copy(other.
lj.begin(), other.
lj.end(), both.
lj.end());
82 bool empty()
const {
return lj.empty() &&
nc.empty(); }
112 const std::string& forwName,
const std::string& backName,
117 const bool levelSetPlace,
155 typedef std::tuple<ImplicitPtr_t, ImplicitPtr_t, LockedJoints_t>
165 typedef std::tuple<PlacementConstraint_t, Handles_t, std::size_t>
Object_t;
184 const std::string& graphName,
const Strings_t& griNames,
185 const std::vector<ObjectDef_t>& objs,
Definition: problem-solver.hh:45
EdgePtr_t createLoopEdge(const std::string &loopName, const StatePtr_t &state, const size_type &w, const bool levelSet, const FoliatedManifold &submanifoldDef=FoliatedManifold())
std::vector< HandlePtr_t > Handles_t
Definition: helper.hh:157
Edges_t 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())
void graphBuilder(const ProblemSolverPtr_t &ps, const Objects_t &objects, const Grippers_t &grippers, GraphPtr_t graph, const Rules_t &rules=Rules_t())
std::tuple< PlacementConstraint_t, Handles_t, std::size_t > Object_t
Definition: helper.hh:165
std::vector< Object_t > Objects_t
Definition: helper.hh:166
void strictPlacementManifold(const ImplicitPtr_t placement, const ImplicitPtr_t preplacement, const ImplicitPtr_t placementComplement, FoliatedManifold &place, FoliatedManifold &preplace)
PlacementCase
Definition: helper.hh:90
GraspingCase
Definition: helper.hh:85
std::vector< GripperPtr_t > Grippers_t
Definition: helper.hh:158
void relaxedPlacementManifold(const ImplicitPtr_t placement, const ImplicitPtr_t preplacement, const LockedJoints_t objectLocks, FoliatedManifold &place, FoliatedManifold &preplace)
std::vector< Rule > Rules_t
Definition: helper.hh:103
NumericalConstraints_t merge_nc(const NumericalConstraints_t &a, const NumericalConstraints_t &b)
Definition: helper.hh:49
std::tuple< ImplicitPtr_t, ImplicitPtr_t, LockedJoints_t > PlacementConstraint_t
Definition: helper.hh:156
void graspManifold(const GripperPtr_t &gripper, const HandlePtr_t &handle, FoliatedManifold &grasp, FoliatedManifold &pregrasp)
@ NoPlace
Definition: helper.hh:91
@ PlaceOnly
Definition: helper.hh:92
@ WithPrePlace
Definition: helper.hh:93
@ GraspOnly
Definition: helper.hh:87
@ NoGrasp
Definition: helper.hh:86
@ WithPreGrasp
Definition: helper.hh:88
hpp::core::NumericalConstraints_t NumericalConstraints_t
Definition: fwd.hh:64
shared_ptr< Edge > EdgePtr_t
Definition: fwd.hh:49
shared_ptr< State > StatePtr_t
Definition: fwd.hh:48
shared_ptr< LevelSetEdge > LevelSetEdgePtr_t
Definition: fwd.hh:51
hpp::core::LockedJoints_t LockedJoints_t
Definition: fwd.hh:65
std::vector< EdgePtr_t > Edges_t
Definition: fwd.hh:57
shared_ptr< Graph > GraphPtr_t
Definition: fwd.hh:47
pinocchio::GripperPtr_t GripperPtr_t
Definition: fwd.hh:51
constraints::ImplicitPtr_t ImplicitPtr_t
Definition: fwd.hh:131
core::size_type size_type
Definition: fwd.hh:90
core::value_type value_type
Definition: fwd.hh:89
std::vector< std::string > Strings_t
Definition: fwd.hh:159
shared_ptr< Handle > HandlePtr_t
Definition: fwd.hh:58
bool foliated() const
Definition: helper.hh:81
NumericalConstraints_t nc_path
Definition: helper.hh:62
FoliatedManifold merge(const FoliatedManifold &other)
Definition: helper.hh:67
void specifyFoliation(LevelSetEdgePtr_t lse) const
bool empty() const
Definition: helper.hh:82
void addToState(StatePtr_t comp) const
NumericalConstraints_t nc
Definition: helper.hh:60
LockedJoints_t lj_fol
Definition: helper.hh:65
NumericalConstraints_t nc_fol
Definition: helper.hh:64
LockedJoints_t lj
Definition: helper.hh:61
void addToEdge(EdgePtr_t comp) const
Definition: helper.hh:178
std::string name
Definition: helper.hh:179
Strings_t shapes
Definition: helper.hh:180
Strings_t handles
Definition: helper.hh:180
std::vector< std::string > grippers_
Definition: helper.hh:97
Rule()
Definition: helper.hh:100
std::vector< std::string > handles_
Definition: helper.hh:98
bool link_
Definition: helper.hh:99