hpp-python: src/pyhpp/manipulation/graph.hh Source File

hpp-python 9.0.2 python bindings for HPP, based on boost python

Loading...
Searching...
No Matches
graph.hh
Go to the documentation of this file.
1//
2// Copyright (c) 2025, CNRS
3// Authors: Florent Lamiraux, Paul Sardin
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions
7// are met:
8
9// 1. Redistributions of source code must retain the above copyright
10// notice, this list of conditions and the following disclaimer.
11
12// 2. Redistributions in binary form must reproduce the above
13// copyright notice, this list of conditions and the following
14// disclaimer in the documentation and/or other materials provided
15// with the distribution.
16
17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
21// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28// OF THE POSSIBILITY OF SUCH DAMAGE.
29
30#ifndef PYHPP_GRAPH_HH
31#define PYHPP_GRAPH_HH
32
33#include <hpp/core/path-validation.hh>
34#include <hpp/manipulation/graph/graph.hh>
35#include <pyhpp/manipulation/fwd.hh>
36
37namespace pyhpp {
38namespace manipulation {
39
40 typedef hpp::core::PathValidationPtr_t PathValidationPtr_t;
41typedef hpp::manipulation::Configuration_t Configuration_t;
42typedef hpp::manipulation::ConfigurationIn_t ConfigurationIn_t;
43typedef hpp::manipulation::size_type size_type;
44typedef hpp::manipulation::value_type value_type;
45 typedef hpp::manipulation::graph::GraphComponent GraphComponent;
46 typedef hpp::manipulation::graph::GraphComponentPtr_t GraphComponentPtr_t;
47 typedef hpp::manipulation::ProblemPtr_t ProblemPtr_t;
48 typedef hpp::manipulation::graph::Edge Edge;
49 typedef hpp::manipulation::graph::EdgePtr_t EdgePtr_t;
50 typedef hpp::manipulation::graph::State State;
51 typedef hpp::manipulation::graph::StatePtr_t StatePtr_t;
52 typedef hpp::manipulation::graph::GraphPtr_t GraphPtr_t;
53typedef hpp::manipulation::ConstraintsAndComplements_t
54 ConstraintsAndComplements_t;
55 typedef hpp::manipulation::ConstraintAndComplement_t ConstraintAndComplement_t;
56
58 struct PyWState {
59 StatePtr_t obj;
60 PyWState(const StatePtr_t& object);
61 std::size_t id() const;
62 std::string name() const;
63 boost::python::list neighborEdges();
64 hpp::core::ConstraintSetPtr_t configConstraint() const;
65};
66 typedef std::shared_ptr<PyWState> PyWStatePtr_t;
67
69 struct PyWEdge {
70 EdgePtr_t obj;
71 PyWEdge(const EdgePtr_t& object);
72 std::size_t id() const;
73 std::string name() const;
74 bool isWaypointTransition() const;
75 std::size_t nbWaypoints() const;
76 std::size_t weight() const;
77 PyWEdge waypoint(int index) const;
78 PathValidationPtr_t pathValidation() const;
79};
80 typedef std::shared_ptr<PyWEdge> PyWEdgePtr_t;
81
83 struct PyWGraph {
84 typedef hpp::constraints::ImplicitPtr_t ImplicitPtr_t;
85 typedef hpp::constraints::NumericalConstraints_t NumericalConstraints_t;
86
87 std::map<std::string, std::size_t> id;
88
89 // Member variables
90 GraphPtr_t obj;
91 PyWDevicePtr_t robot;
92 PyWProblemPtr_t problem;
93
94 ConstraintsAndComplements_t constraintsAndComplements;
95
96 // Constructors
97 PyWGraph(const GraphPtr_t& object);
98 PyWGraph(const std::string& name, const PyWDevicePtr_t& d,
99 const PyWProblemPtr_t& problem);
100
101 // Configuration methods
102 void maxIterations(size_type iterations);
103 size_type maxIterations() const;
104 void errorThreshold(const value_type& threshold);
105 value_type errorThreshold() const;
106
107 // Graph construction
108 PyWStatePtr_t createState(const std::string& nodeName, bool waypoint,
109 int priority);
110 PyWEdgePtr_t createTransition(PyWStatePtr_t nodeFrom, PyWStatePtr_t nodeTo,
111 const std::string& transitionName, int w,
112 PyWStatePtr_t isInState);
113 PyWEdgePtr_t createWaypointTransition(PyWStatePtr_t nodeFrom,
114 PyWStatePtr_t nodeTo,
115 const std::string& edgeName, int nb,
116 int w, PyWStatePtr_t isInState,
117 bool automaticBuilder);
118 PyWEdgePtr_t createLevelSetTransition(PyWStatePtr_t nodeFrom,
119 PyWStatePtr_t nodeTo,
120 const std::string& edgeName, int w,
121 PyWStatePtr_t isInState);
122
123 // Edge/State management
124 void setContainingNode(PyWEdgePtr_t edge, PyWStatePtr_t node);
125 std::string getContainingNode(PyWEdgePtr_t edge);
126 void setShort(PyWEdgePtr_t edge, bool isShort);
127 bool isShort(PyWEdgePtr_t edge);
128 boost::python::tuple getNodesConnectedByTransition(PyWEdgePtr_t edge);
129 void setWeight(PyWEdgePtr_t edge, int weight);
130 size_t getWeight(PyWEdgePtr_t edge);
131 void setWaypoint(PyWEdgePtr_t waypointEdge, int index, PyWEdgePtr_t edge,
132 PyWStatePtr_t state);
133 void addNumericalConstraintsToGraph(
134 const boost::python::list& py_constraints);
135 PyWEdgePtr_t getTransition(const std::string& edgeName);
136 PyWStatePtr_t getState(const std::string& stateName);
137
138 boost::python::list getTransitions();
139 boost::python::list getStates();
140 boost::python::list getTransitionNames();
141 boost::python::list getStateNames();
142
143 // State queries
144 std::string getStateFromConfiguration(ConfigurationIn_t input);
145
146 // Constraint management
147 void addNumericalConstraint(PyWStatePtr_t node,
148 const ImplicitPtr_t& constraint);
149 void addNumericalConstraintsToState(
150 PyWStatePtr_t component, const boost::python::list& py_constraints);
151 void addNumericalConstraintsToTransition(
152 PyWEdgePtr_t component, const boost::python::list& py_constraints);
153 void addNumericalConstraintsForPath(
154 PyWStatePtr_t component, const boost::python::list& py_constraints);
155 void resetConstraints(PyWStatePtr_t component);
156 void registerConstraints(const ImplicitPtr_t& constraint,
157 const ImplicitPtr_t& complement,
158 const ImplicitPtr_t& both);
159
160 boost::python::tuple createPlacementConstraint(
161 const std::string& name, const boost::python::list& py_surface1,
162 const boost::python::list& py_surface2, const value_type& margin);
163 ImplicitPtr_t createPrePlacementConstraint(
164 const std::string& name, const boost::python::list& py_surface1,
165 const boost::python::list& py_surface2, const value_type& width,
166 const value_type& margin);
167 boost::python::tuple createPlacementConstraint1(
168 const std::string& name, const boost::python::list& py_surface1,
169 const boost::python::list& py_surface2, const value_type& margin);
170 boost::python::tuple createPlacementConstraint2(
171 const std::string& name, const boost::python::list& py_surface1,
172 const boost::python::list& py_surface2);
173 ImplicitPtr_t createPrePlacementConstraint1(
174 const std::string& name, const boost::python::list& py_surface1,
175 const boost::python::list& py_surface2, const value_type& width,
176 const value_type& margin);
177 ImplicitPtr_t createPrePlacementConstraint2(
178 const std::string& name, const boost::python::list& py_surface1,
179 const boost::python::list& py_surface2, const value_type& width);
180
181 boost::python::list createGraspConstraint(const std::string& name,
182 const std::string& gripper,
183 const std::string& handle);
184 ImplicitPtr_t createPreGraspConstraint(const std::string& name,
185 const std::string& gripper,
186 const std::string& handle);
187 boost::python::list getNumericalConstraintsForState(PyWStatePtr_t component);
188 boost::python::list getNumericalConstraintsForEdge(PyWEdgePtr_t component);
189 boost::python::list getNumericalConstraintsForGraph();
190
191 // Configuration error checking
192 boost::python::tuple getConfigErrorForState(PyWStatePtr_t component,
193 ConfigurationIn_t input);
194 boost::python::tuple getConfigErrorForTransition(PyWEdgePtr_t edge,
195 ConfigurationIn_t input);
196 boost::python::tuple getConfigErrorForTransitionLeaf(
197 const PyWEdgePtr_t& edge, ConfigurationIn_t leafConfig,
198 ConfigurationIn_t config) const;
199 boost::python::tuple getConfigErrorForTransitionTarget(
200 const PyWEdgePtr_t& edge, ConfigurationIn_t leafConfig,
201 ConfigurationIn_t config) const;
202
203 // Level set edges
204 void addLevelSetFoliation(PyWEdgePtr_t edge,
205 const boost::python::list& condNC,
206 const boost::python::list& paramNC);
207
208 // Security margins and collision
209 boost::python::list getSecurityMarginMatrixForTransition(PyWEdgePtr_t edge);
210 void setSecurityMarginForTransition(PyWEdgePtr_t edge, const char* joint1,
211 const char* joint2, double margin);
212 boost::python::list getRelativeMotionMatrix(PyWEdgePtr_t edge);
213 void removeCollisionPairFromTransition(PyWEdgePtr_t edge, const char* joint1,
214 const char* joint2);
215
216 boost::python::tuple applyStateConstraints(PyWStatePtr_t state,
217 ConfigurationIn_t input);
218 boost::python::tuple applyLeafConstraints(PyWEdgePtr_t transition,
219 ConfigurationIn_t q_rhs,
220 ConfigurationIn_t input);
221 boost::python::tuple generateTargetConfig(PyWEdgePtr_t transition,
222 ConfigurationIn_t q_rhs,
223 ConfigurationIn_t input);
224 // Subgraph management
225 void createSubGraph(const char* subgraphName,
226 hpp::core::RoadmapPtr_t roadmap);
227 void setTargetNodeList(const boost::python::list& nodes);
228
229 // Display and debugging
230 std::string displayStateConstraints(PyWStatePtr_t state);
231 std::string displayTransitionConstraints(PyWEdgePtr_t edge);
232 std::string displayTransitionTargetConstraints(PyWEdgePtr_t edge);
233 void display(const char* filename);
234
235 // Initialization
236 void initialize();
237 // Get transition at given parameter of a PathVector
238 static PyWEdgePtr_t transitionAtParam(hpp::core::PathVectorPtr_t path,
239 value_type param);
240};
241typedef std::shared_ptr<PyWGraph> PyWGraphPtr_t;
242
243} // namespace manipulation
244} // namespace pyhpp
245#endif // PYHPP_GRAPH_HH
hpp::core::Edge
hpp::manipulation::graph::Edge
hpp::manipulation::graph::GraphComponent
hpp::manipulation::graph::State
graph.hh
hpp::manipulation::ConstraintsAndComplements_t
std::vector< ConstraintAndComplement_t > ConstraintsAndComplements_t
fwd.hh
hpp::constraints::ImplicitPtr_t
shared_ptr< Implicit > ImplicitPtr_t
hpp::constraints::NumericalConstraints_t
std::vector< constraints::ImplicitPtr_t > NumericalConstraints_t
hpp::core::value_type
pinocchio::value_type value_type
hpp::core::PathVectorPtr_t
shared_ptr< PathVector > PathVectorPtr_t
hpp::core::PathValidationPtr_t
shared_ptr< PathValidation > PathValidationPtr_t
hpp::core::EdgePtr_t
Edge * EdgePtr_t
hpp::core::RoadmapPtr_t
shared_ptr< Roadmap > RoadmapPtr_t
hpp::core::ProblemPtr_t
shared_ptr< Problem > ProblemPtr_t
hpp::core::ConfigurationIn_t
pinocchio::ConfigurationIn_t ConfigurationIn_t
hpp::core::size_type
pinocchio::size_type size_type
hpp::core::Configuration_t
pinocchio::Configuration_t Configuration_t
hpp::core::ConstraintSetPtr_t
shared_ptr< ConstraintSet > ConstraintSetPtr_t
hpp::manipulation::graph::EdgePtr_t
shared_ptr< Edge > EdgePtr_t
hpp::manipulation::graph::StatePtr_t
shared_ptr< State > StatePtr_t
hpp::manipulation::graph::GraphComponentPtr_t
shared_ptr< GraphComponent > GraphComponentPtr_t
hpp::manipulation::graph::GraphPtr_t
shared_ptr< Graph > GraphPtr_t
hpp::manipulation::ProblemPtr_t
shared_ptr< Problem > ProblemPtr_t
hpp::manipulation::Configuration_t
pinocchio::Configuration_t Configuration_t
hpp::manipulation::size_type
core::size_type size_type
hpp::manipulation::value_type
core::value_type value_type
hpp::manipulation::ConfigurationIn_t
pinocchio::ConfigurationIn_t ConfigurationIn_t
pyhpp::manipulation::StatePtr_t
hpp::manipulation::graph::StatePtr_t StatePtr_t
Definition graph.hh:51
pyhpp::manipulation::PyWDevicePtr_t
std::shared_ptr< Device > PyWDevicePtr_t
Definition fwd.hh:45
pyhpp::manipulation::PyWEdgePtr_t
std::shared_ptr< PyWEdge > PyWEdgePtr_t
Definition graph.hh:80
pyhpp::manipulation::PyWGraphPtr_t
std::shared_ptr< PyWGraph > PyWGraphPtr_t
Definition fwd.hh:47
pyhpp::manipulation::State
hpp::manipulation::graph::State State
Definition graph.hh:50
pyhpp::manipulation::GraphComponentPtr_t
hpp::manipulation::graph::GraphComponentPtr_t GraphComponentPtr_t
Definition graph.hh:46
pyhpp::manipulation::PyWStatePtr_t
std::shared_ptr< PyWState > PyWStatePtr_t
Definition graph.hh:66
pyhpp::manipulation::GraphComponent
hpp::manipulation::graph::GraphComponent GraphComponent
Definition graph.hh:45
pyhpp::manipulation::PyWProblemPtr_t
std::shared_ptr< Problem > PyWProblemPtr_t
Definition fwd.hh:46
pyhpp::manipulation::GraphPtr_t
hpp::manipulation::graph::GraphPtr_t GraphPtr_t
Definition graph.hh:52
pyhpp
Definition fwd.hh:35
path-validation.hh
hpp::manipulation::ConstraintAndComplement_t
pyhpp::manipulation::PyWEdge
Python wrapper for Edge.
Definition graph.hh:69
pyhpp::manipulation::PyWEdge::nbWaypoints
std::size_t nbWaypoints() const
Definition graph.cc:287
pyhpp::manipulation::PyWEdge::weight
std::size_t weight() const
pyhpp::manipulation::PyWEdge::name
std::string name() const
Definition graph.cc:286
pyhpp::manipulation::PyWEdge::obj
EdgePtr_t obj
Definition graph.hh:70
pyhpp::manipulation::PyWEdge::waypoint
PyWEdge waypoint(int index) const
Definition graph.cc:297
pyhpp::manipulation::PyWEdge::isWaypointTransition
bool isWaypointTransition() const
Definition graph.cc:292
pyhpp::manipulation::PyWEdge::id
std::size_t id() const
Definition graph.cc:285
pyhpp::manipulation::PyWEdge::pathValidation
PathValidationPtr_t pathValidation() const
Definition graph.cc:951
pyhpp::manipulation::PyWGraph
Python wrapper for Graph.
Definition graph.hh:83
pyhpp::manipulation::PyWGraph::getConfigErrorForTransitionLeaf
boost::python::tuple getConfigErrorForTransitionLeaf(const PyWEdgePtr_t &edge, ConfigurationIn_t leafConfig, ConfigurationIn_t config) const
Definition graph.cc:764
pyhpp::manipulation::PyWGraph::setShort
void setShort(PyWEdgePtr_t edge, bool isShort)
Definition graph.cc:441
pyhpp::manipulation::PyWGraph::getWeight
size_t getWeight(PyWEdgePtr_t edge)
Definition graph.cc:476
pyhpp::manipulation::PyWGraph::getRelativeMotionMatrix
boost::python::list getRelativeMotionMatrix(PyWEdgePtr_t edge)
Definition graph.cc:904
pyhpp::manipulation::PyWGraph::initialize
void initialize()
Definition graph.cc:1047
pyhpp::manipulation::PyWGraph::transitionAtParam
static PyWEdgePtr_t transitionAtParam(hpp::core::PathVectorPtr_t path, value_type param)
Definition graph.cc:509
pyhpp::manipulation::PyWGraph::getStates
boost::python::list getStates()
Definition graph.cc:566
pyhpp::manipulation::PyWGraph::constraintsAndComplements
ConstraintsAndComplements_t constraintsAndComplements
Definition graph.hh:94
pyhpp::manipulation::PyWGraph::getConfigErrorForTransitionTarget
boost::python::tuple getConfigErrorForTransitionTarget(const PyWEdgePtr_t &edge, ConfigurationIn_t leafConfig, ConfigurationIn_t config) const
Definition graph.cc:773
pyhpp::manipulation::PyWGraph::getConfigErrorForTransition
boost::python::tuple getConfigErrorForTransition(PyWEdgePtr_t edge, ConfigurationIn_t input)
Definition graph.cc:745
pyhpp::manipulation::PyWGraph::createPreGraspConstraint
ImplicitPtr_t createPreGraspConstraint(const std::string &name, const std::string &gripper, const std::string &handle)
Definition graph.cc:1254
pyhpp::manipulation::PyWGraph::createPrePlacementConstraint
ImplicitPtr_t createPrePlacementConstraint(const std::string &name, const boost::python::list &py_surface1, const boost::python::list &py_surface2, const value_type &width, const value_type &margin)
Definition graph.cc:1169
pyhpp::manipulation::PyWGraph::setContainingNode
void setContainingNode(PyWEdgePtr_t edge, PyWStatePtr_t node)
Definition graph.cc:425
pyhpp::manipulation::PyWGraph::createPlacementConstraint1
boost::python::tuple createPlacementConstraint1(const std::string &name, const boost::python::list &py_surface1, const boost::python::list &py_surface2, const value_type &margin)
Definition graph.cc:1158
pyhpp::manipulation::PyWGraph::applyStateConstraints
boost::python::tuple applyStateConstraints(PyWStatePtr_t state, ConfigurationIn_t input)
Definition graph.cc:786
pyhpp::manipulation::PyWGraph::problem
PyWProblemPtr_t problem
Definition graph.hh:92
pyhpp::manipulation::PyWGraph::getNumericalConstraintsForEdge
boost::python::list getNumericalConstraintsForEdge(PyWEdgePtr_t component)
Definition graph.cc:707
pyhpp::manipulation::PyWGraph::generateTargetConfig
boost::python::tuple generateTargetConfig(PyWEdgePtr_t transition, ConfigurationIn_t q_rhs, ConfigurationIn_t input)
Definition graph.cc:818
pyhpp::manipulation::PyWGraph::createPrePlacementConstraint1
ImplicitPtr_t createPrePlacementConstraint1(const std::string &name, const boost::python::list &py_surface1, const boost::python::list &py_surface2, const value_type &width, const value_type &margin)
Definition graph.cc:1214
pyhpp::manipulation::PyWGraph::getNumericalConstraintsForGraph
boost::python::list getNumericalConstraintsForGraph()
Definition graph.cc:711
pyhpp::manipulation::PyWGraph::createLevelSetTransition
PyWEdgePtr_t createLevelSetTransition(PyWStatePtr_t nodeFrom, PyWStatePtr_t nodeTo, const std::string &edgeName, int w, PyWStatePtr_t isInState)
Definition graph.cc:404
pyhpp::manipulation::PyWGraph::createPrePlacementConstraint2
ImplicitPtr_t createPrePlacementConstraint2(const std::string &name, const boost::python::list &py_surface1, const boost::python::list &py_surface2, const value_type &width)
Definition graph.cc:1221
pyhpp::manipulation::PyWGraph::maxIterations
size_type maxIterations() const
Definition graph.cc:328
pyhpp::manipulation::PyWGraph::display
void display(const char *filename)
Definition graph.cc:1032
pyhpp::manipulation::PyWGraph::getNodesConnectedByTransition
boost::python::tuple getNodesConnectedByTransition(PyWEdgePtr_t edge)
Definition graph.cc:457
pyhpp::manipulation::PyWGraph::isShort
bool isShort(PyWEdgePtr_t edge)
Definition graph.cc:449
pyhpp::manipulation::PyWGraph::getTransition
PyWEdgePtr_t getTransition(const std::string &edgeName)
Definition graph.cc:515
pyhpp::manipulation::PyWGraph::obj
GraphPtr_t obj
Definition graph.hh:90
pyhpp::manipulation::PyWGraph::setWaypoint
void setWaypoint(PyWEdgePtr_t waypointEdge, int index, PyWEdgePtr_t edge, PyWStatePtr_t state)
Definition graph.cc:484
pyhpp::manipulation::PyWGraph::createPlacementConstraint
boost::python::tuple createPlacementConstraint(const std::string &name, const boost::python::list &py_surface1, const boost::python::list &py_surface2, const value_type &margin)
Definition graph.cc:1065
pyhpp::manipulation::PyWGraph::removeCollisionPairFromTransition
void removeCollisionPairFromTransition(PyWEdgePtr_t edge, const char *joint1, const char *joint2)
Definition graph.cc:930
pyhpp::manipulation::PyWGraph::getNumericalConstraintsForState
boost::python::list getNumericalConstraintsForState(PyWStatePtr_t component)
Definition graph.cc:703
pyhpp::manipulation::PyWGraph::getStateNames
boost::python::list getStateNames()
Definition graph.cc:600
pyhpp::manipulation::PyWGraph::addLevelSetFoliation
void addLevelSetFoliation(PyWEdgePtr_t edge, const boost::python::list &condNC, const boost::python::list &paramNC)
Definition graph.cc:842
pyhpp::manipulation::PyWGraph::NumericalConstraints_t
hpp::constraints::NumericalConstraints_t NumericalConstraints_t
Definition graph.hh:85
pyhpp::manipulation::PyWGraph::resetConstraints
void resetConstraints(PyWStatePtr_t component)
Definition graph.cc:715
pyhpp::manipulation::PyWGraph::createSubGraph
void createSubGraph(const char *subgraphName, hpp::core::RoadmapPtr_t roadmap)
Definition graph.cc:959
pyhpp::manipulation::PyWGraph::createState
PyWStatePtr_t createState(const std::string &nodeName, bool waypoint, int priority)
Definition graph.cc:340
pyhpp::manipulation::PyWGraph::createTransition
PyWEdgePtr_t createTransition(PyWStatePtr_t nodeFrom, PyWStatePtr_t nodeTo, const std::string &transitionName, int w, PyWStatePtr_t isInState)
Definition graph.cc:352
pyhpp::manipulation::PyWGraph::errorThreshold
value_type errorThreshold() const
Definition graph.cc:334
pyhpp::manipulation::PyWGraph::createGraspConstraint
boost::python::list createGraspConstraint(const std::string &name, const std::string &gripper, const std::string &handle)
Definition graph.cc:1227
pyhpp::manipulation::PyWGraph::addNumericalConstraintsForPath
void addNumericalConstraintsForPath(PyWStatePtr_t component, const boost::python::list &py_constraints)
Definition graph.cc:687
pyhpp::manipulation::PyWGraph::getContainingNode
std::string getContainingNode(PyWEdgePtr_t edge)
Definition graph.cc:433
pyhpp::manipulation::PyWGraph::applyLeafConstraints
boost::python::tuple applyLeafConstraints(PyWEdgePtr_t transition, ConfigurationIn_t q_rhs, ConfigurationIn_t input)
Definition graph.cc:801
pyhpp::manipulation::PyWGraph::createWaypointTransition
PyWEdgePtr_t createWaypointTransition(PyWStatePtr_t nodeFrom, PyWStatePtr_t nodeTo, const std::string &edgeName, int nb, int w, PyWStatePtr_t isInState, bool automaticBuilder)
Definition graph.cc:365
pyhpp::manipulation::PyWGraph::setSecurityMarginForTransition
void setSecurityMarginForTransition(PyWEdgePtr_t edge, const char *joint1, const char *joint2, double margin)
Definition graph.cc:886
pyhpp::manipulation::PyWGraph::displayStateConstraints
std::string displayStateConstraints(PyWStatePtr_t state)
Definition graph.cc:996
pyhpp::manipulation::PyWGraph::getTransitionNames
boost::python::list getTransitionNames()
Definition graph.cc:583
pyhpp::manipulation::PyWGraph::getConfigErrorForState
boost::python::tuple getConfigErrorForState(PyWStatePtr_t component, ConfigurationIn_t input)
Definition graph.cc:734
pyhpp::manipulation::PyWGraph::getSecurityMarginMatrixForTransition
boost::python::list getSecurityMarginMatrixForTransition(PyWEdgePtr_t edge)
Definition graph.cc:870
pyhpp::manipulation::PyWGraph::id
std::map< std::string, std::size_t > id
Definition graph.hh:87
pyhpp::manipulation::PyWGraph::setTargetNodeList
void setTargetNodeList(const boost::python::list &nodes)
Definition graph.cc:971
pyhpp::manipulation::PyWGraph::displayTransitionTargetConstraints
std::string displayTransitionTargetConstraints(PyWEdgePtr_t edge)
Definition graph.cc:1020
pyhpp::manipulation::PyWGraph::addNumericalConstraintsToTransition
void addNumericalConstraintsToTransition(PyWEdgePtr_t component, const boost::python::list &py_constraints)
Definition graph.cc:655
pyhpp::manipulation::PyWGraph::ImplicitPtr_t
hpp::constraints::ImplicitPtr_t ImplicitPtr_t
Definition graph.hh:84
pyhpp::manipulation::PyWGraph::addNumericalConstraintsToGraph
void addNumericalConstraintsToGraph(const boost::python::list &py_constraints)
Definition graph.cc:671
pyhpp::manipulation::PyWGraph::getStateFromConfiguration
std::string getStateFromConfiguration(ConfigurationIn_t input)
Definition graph.cc:621
pyhpp::manipulation::PyWGraph::createPlacementConstraint2
boost::python::tuple createPlacementConstraint2(const std::string &name, const boost::python::list &py_surface1, const boost::python::list &py_surface2)
Definition graph.cc:1163
pyhpp::manipulation::PyWGraph::addNumericalConstraint
void addNumericalConstraint(PyWStatePtr_t node, const ImplicitPtr_t &constraint)
Definition graph.cc:634
pyhpp::manipulation::PyWGraph::robot
PyWDevicePtr_t robot
Definition graph.hh:91
pyhpp::manipulation::PyWGraph::displayTransitionConstraints
std::string displayTransitionConstraints(PyWEdgePtr_t edge)
Definition graph.cc:1008
pyhpp::manipulation::PyWGraph::addNumericalConstraintsToState
void addNumericalConstraintsToState(PyWStatePtr_t component, const boost::python::list &py_constraints)
Definition graph.cc:639
pyhpp::manipulation::PyWGraph::registerConstraints
void registerConstraints(const ImplicitPtr_t &constraint, const ImplicitPtr_t &complement, const ImplicitPtr_t &both)
Definition graph.cc:719
pyhpp::manipulation::PyWGraph::getTransitions
boost::python::list getTransitions()
Definition graph.cc:549
pyhpp::manipulation::PyWGraph::setWeight
void setWeight(PyWEdgePtr_t edge, int weight)
Definition graph.cc:468
pyhpp::manipulation::PyWGraph::getState
PyWStatePtr_t getState(const std::string &stateName)
Definition graph.cc:532
pyhpp::manipulation::PyWState
Python wrapper for State.
Definition graph.hh:58
pyhpp::manipulation::PyWState::neighborEdges
boost::python::list neighborEdges()
Definition graph.cc:266
pyhpp::manipulation::PyWState::name
std::string name() const
Definition graph.cc:263
pyhpp::manipulation::PyWState::obj
StatePtr_t obj
Definition graph.hh:59
pyhpp::manipulation::PyWState::id
std::size_t id() const
Definition graph.cc:264
pyhpp::manipulation::PyWState::configConstraint
hpp::core::ConstraintSetPtr_t configConstraint() const
Definition graph.cc:280