hpp-rbprm  4.10.0
Implementation of RB-PRM planner using hpp.
oriented-path-optimizer.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2017 CNRS
3 // Authors: Pierre Fernbach
4 //
5 // This file is part of hpp-rbprm
6 // hpp-core is free software: you can redistribute it
7 // and/or modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation, either version
9 // 3 of the License, or (at your option) any later version.
10 //
11 // hpp-core is distributed in the hope that it will be
12 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // General Lesser Public License for more details. You should have
15 // received a copy of the GNU Lesser General Public License along with
16 // hpp-core If not, see
17 // <http://www.gnu.org/licenses/>.
18 
19 
20 #ifndef HPP_RBPRM_ORIENTED_PATH_OPTIMIZER_HH
21 #define HPP_RBPRM_ORIENTED_PATH_OPTIMIZER_HH
22 
23 #include <hpp/core/path-optimizer.hh>
26 
27 
28 namespace hpp {
29  namespace rbprm {
32 
41 
42 
43 
44  // forward declaration
45  HPP_PREDEF_CLASS (OrientedPathOptimizer);
46  // Planner objects are manipulated only via shared pointers
47  typedef boost::shared_ptr <OrientedPathOptimizer> OrientedPathOptimizerPtr_t;
48 
49 
50  class OrientedPathOptimizer : public core::PathOptimizer
51  {
52  public:
54  static OrientedPathOptimizerPtr_t create (const core::Problem& problem);
55 
57  virtual core::PathVectorPtr_t optimize (const core::PathVectorPtr_t& path);
58  protected:
59  OrientedPathOptimizer (const core::Problem& problem);
60  bool checkReplaceOrientation(const size_t index,const size_t lastIndex, std::vector<bool> replaceValid, std::vector<bool> orientedValid, std::vector<core::KinodynamicOrientedPathPtr_t> orientedPaths, std::vector<core::KinodynamicPathPtr_t> resultPaths);
61 
62  core::PathPtr_t steer (core::ConfigurationIn_t q1, core::ConfigurationIn_t q2) const;
63 
64  private:
66  const RbPrmPathValidationPtr_t rbprmPathValidation_;
67  double sizeFootX_,sizeFootY_;
68  bool rectangularContact_;
69  bool tryJump_;
70  double mu_;
71  bool orientationIgnoreZValue_;
72 
73 
74  };//class oriented-path-optimizer
76  } // namespace core
77 } // namespace hpp
78 #endif // HPP_RBPRM_ORIENTED_PATH_OPTIMIZER_HH
hpp::rbprm::OrientedPathOptimizerPtr_t
boost::shared_ptr< OrientedPathOptimizer > OrientedPathOptimizerPtr_t
Definition: oriented-path-optimizer.hh:47
rbprm-path-validation.hh
hpp::rbprm::HPP_PREDEF_CLASS
HPP_PREDEF_CLASS(RbPrmFullBody)
hpp::rbprm::OrientedPathOptimizer::steer
core::PathPtr_t steer(core::ConfigurationIn_t q1, core::ConfigurationIn_t q2) const
hpp::rbprm::OrientedPathOptimizer::optimize
virtual core::PathVectorPtr_t optimize(const core::PathVectorPtr_t &path)
Optimize path.
hpp::rbprm::OrientedPathOptimizer::checkReplaceOrientation
bool checkReplaceOrientation(const size_t index, const size_t lastIndex, std::vector< bool > replaceValid, std::vector< bool > orientedValid, std::vector< core::KinodynamicOrientedPathPtr_t > orientedPaths, std::vector< core::KinodynamicPathPtr_t > resultPaths)
hpp::rbprm::RbPrmPathValidationPtr_t
boost::shared_ptr< RbPrmPathValidation > RbPrmPathValidationPtr_t
Definition: rbprm-path-validation.hh:31
hpp::rbprm::SteeringMethodKinodynamicPtr_t
boost::shared_ptr< SteeringMethodKinodynamic > SteeringMethodKinodynamicPtr_t
Definition: rbprm-steering-kinodynamic.hh:33
hpp::rbprm::OrientedPathOptimizer::OrientedPathOptimizer
OrientedPathOptimizer(const core::Problem &problem)
hpp
Definition: algorithm.hh:27
hpp::rbprm::OrientedPathOptimizer
Definition: oriented-path-optimizer.hh:50
rbprm-steering-kinodynamic.hh
hpp::rbprm::OrientedPathOptimizer::create
static OrientedPathOptimizerPtr_t create(const core::Problem &problem)
Return shared pointer to new object.