hpp-rbprm  4.10.1
Implementation of RB-PRM planner using hpp.
random-shortcut-dynamic.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 #ifndef HPP_RBPRM_RANDOM_SHORTCUT_DYNAMIC_HH
20 #define HPP_RBPRM_RANDOM_SHORTCUT_DYNAMIC_HH
21 
22 #include <hpp/core/path-optimization/random-shortcut.hh>
25 
26 namespace hpp {
27 namespace rbprm {
30 
42 
43 // forward declaration
44 HPP_PREDEF_CLASS(RandomShortcutDynamic);
45 // Planner objects are manipulated only via shared pointers
46 typedef boost::shared_ptr<RandomShortcutDynamic> RandomShortcutDynamicPtr_t;
47 
48 class RandomShortcutDynamic : public core::pathOptimization::RandomShortcut {
49  public:
51  static RandomShortcutDynamicPtr_t create(const core::Problem& problem);
52 
54  virtual core::PathVectorPtr_t optimize(const core::PathVectorPtr_t& path);
55 
56  protected:
57  RandomShortcutDynamic(const core::Problem& problem);
58 
59  core::PathPtr_t steer(core::ConfigurationIn_t q1, core::ConfigurationIn_t q2) const;
60 
61  private:
63  const RbPrmPathValidationPtr_t rbprmPathValidation_;
64  double sizeFootX_, sizeFootY_;
65  bool rectangularContact_;
66  bool tryJump_;
67  double mu_;
68 }; // class RandomShortcut
70 } // namespace rbprm
71 } // namespace hpp
72 
73 #endif // HPP_RBPRM_RANDOM_SHORTCUT_DYNAMIC_HH
hpp::rbprm::RandomShortcutDynamicPtr_t
boost::shared_ptr< RandomShortcutDynamic > RandomShortcutDynamicPtr_t
Definition: random-shortcut-dynamic.hh:46
rbprm-path-validation.hh
hpp::rbprm::HPP_PREDEF_CLASS
HPP_PREDEF_CLASS(RbPrmFullBody)
hpp::rbprm::RandomShortcutDynamic::RandomShortcutDynamic
RandomShortcutDynamic(const core::Problem &problem)
hpp::rbprm::RandomShortcutDynamic
Definition: random-shortcut-dynamic.hh:48
hpp::rbprm::RandomShortcutDynamic::steer
core::PathPtr_t steer(core::ConfigurationIn_t q1, core::ConfigurationIn_t q2) const
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
Definition: algorithm.hh:27
rbprm-steering-kinodynamic.hh
hpp::rbprm::RandomShortcutDynamic::optimize
virtual core::PathVectorPtr_t optimize(const core::PathVectorPtr_t &path)
Optimize path.
hpp::rbprm::RandomShortcutDynamic::create
static RandomShortcutDynamicPtr_t create(const core::Problem &problem)
Return shared pointer to new object.