hpp-python  9.0.2
python bindings for HPP, based on boost python
path-planner.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_MANIPULATION_PATH_PLANNER_HH
31 #define PYHPP_MANIPULATION_PATH_PLANNER_HH
32 
33 #include <hpp/manipulation/fwd.hh>
35 
36 namespace pyhpp {
37 namespace manipulation {
38 
47 // typedef hpp::manipulation::pathPlanner::IkSolverInitializationPtr_t
48 // IkSolverInitializationPtr_t;
49 
51  // Dynamic cast pointer into TransitionPlanner
55  void innerPlanner(const pyhpp::core::PathPlanner& planner);
58  bool resetRoadmap);
60  bool resetRoadmap);
61  tuple directPath(ConfigurationIn_t q1, ConfigurationIn_t q2, bool validate);
62  tuple validateConfiguration(ConfigurationIn_t q, std::size_t id) const;
65  void setEdge(const PyWEdge& transition);
66  void setTransition(const PyWEdge& transition);
67  void setReedsAndSheppSteeringMethod(double turningRadius);
69  void clearPathOptimizers();
70  void addPathOptimizer(const PathOptimizerPtr_t& pathOptimizer);
71 };
72 
76  const RoadmapPtr_t& roadmap);
78  int nRandomConfig() const;
79  void nRandomConfig(int n);
80  int nDiscreteSteps() const;
81  void nDiscreteSteps(int n);
82  void checkFeasibilityOnly(bool enable);
83  bool checkFeasibilityOnly() const;
84  // void ikSolverInitialization(IkSolverInitializationPtr_t solver);
85 };
86 
87 void exposePathPlanners();
88 
89 } // namespace manipulation
90 } // namespace pyhpp
91 #endif // PYHPP_MANIPULATION_PATH_PLANNER_HH
virtual const RoadmapPtr_t & roadmap() const
Definition: path-planner.cc:117
ProblemConstPtr_t problem() const
Definition: path-planner.cc:119
PathVectorPtr_t computePath() const
Definition: path-planner.cc:151
shared_ptr< PathVector > PathVectorPtr_t
shared_ptr< PathOptimizer > PathOptimizerPtr_t
shared_ptr< PathProjector > PathProjectorPtr_t
shared_ptr< Roadmap > RoadmapPtr_t
pinocchio::ConfigurationIn_t ConfigurationIn_t
constraints::matrixIn_t matrixIn_t
shared_ptr< Path > PathPtr_t
shared_ptr< EndEffectorTrajectory > EndEffectorTrajectoryPtr_t
shared_ptr< TransitionPlanner > TransitionPlannerPtr_t
core::matrixIn_t matrixIn_t
void exposePathPlanners()
Definition: path-planner.cc:319
hpp::core::PathOptimizerPtr_t PathOptimizerPtr_t
Definition: path-planner.hh:41
boost::python::tuple tuple
Definition: path-planner.hh:39
hpp::core::PathVectorPtr_t PathVectorPtr_t
Definition: path-planner.hh:44
hpp::core::RoadmapPtr_t RoadmapPtr_t
Definition: path-planner.hh:45
hpp::pinocchio::ConfigurationIn_t ConfigurationIn_t
Definition: device.hh:56
hpp::core::PathProjectorPtr_t PathProjectorPtr_t
Definition: path-planner.hh:42
hpp::core::PathPtr_t PathPtr_t
Definition: path-planner.hh:43
hpp::manipulation::matrixIn_t matrixIn_t
Definition: path-planner.hh:46
Definition: fwd.hh:35
Definition: path-planner.hh:73
int nDiscreteSteps() const
Definition: path-planner.cc:297
hpp::manipulation::pathPlanner::EndEffectorTrajectoryPtr_t eetObj() const
Definition: path-planner.cc:284
int nRandomConfig() const
Definition: path-planner.cc:291
EndEffectorTrajectory(const pyhpp::core::Problem &problem)
Definition: path-planner.cc:263
bool checkFeasibilityOnly() const
Definition: path-planner.cc:309
Python wrapper for Edge.
Definition: graph.hh:69
Definition: path-planner.hh:50
void setReedsAndSheppSteeringMethod(double turningRadius)
Definition: path-planner.cc:245
PathVectorPtr_t timeParameterization(const PathVectorPtr_t &path)
Definition: path-planner.cc:227
void pathProjector(const PathProjectorPtr_t pathProjector)
Definition: path-planner.cc:249
tuple directPath(ConfigurationIn_t q1, ConfigurationIn_t q2, bool validate)
Definition: path-planner.cc:196
PathVectorPtr_t planPath(ConfigurationIn_t qInit, matrixIn_t qGoals, bool resetRoadmap)
Definition: path-planner.cc:116
hpp::manipulation::pathPlanner::TransitionPlannerPtr_t trObj() const
Definition: path-planner.cc:95
void addPathOptimizer(const PathOptimizerPtr_t &pathOptimizer)
Definition: path-planner.cc:257
void setEdge(const PyWEdge &transition)
Definition: path-planner.cc:233
void clearPathOptimizers()
Definition: path-planner.cc:253
void setTransition(const PyWEdge &transition)
Definition: path-planner.cc:241
tuple validateConfiguration(ConfigurationIn_t q, std::size_t id) const
Definition: path-planner.cc:216
PathVectorPtr_t optimizePath(const PathPtr_t &path)
Definition: path-planner.cc:223
pyhpp::core::Problem innerProblem() const
Definition: path-planner.cc:112
pyhpp::core::PathPlanner innerPlanner() const
Definition: path-planner.cc:102
TransitionPlanner(const pyhpp::core::Problem &problem)
Definition: path-planner.cc:88