hpp-rbprm 4.14.0
Implementation of RB-PRM planner using hpp.
Loading...
Searching...
No Matches
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#ifndef HPP_RBPRM_ORIENTED_PATH_OPTIMIZER_HH
20#define HPP_RBPRM_ORIENTED_PATH_OPTIMIZER_HH
21
22#include <hpp/core/path-optimizer.hh>
25
26namespace hpp {
27namespace rbprm {
30
40
41// forward declaration
43// Planner objects are manipulated only via shared pointers
44typedef shared_ptr<OrientedPathOptimizer> OrientedPathOptimizerPtr_t;
45
46class OrientedPathOptimizer : public core::PathOptimizer {
47 public:
49 static OrientedPathOptimizerPtr_t create(core::ProblemConstPtr_t problem);
50
52 virtual core::PathVectorPtr_t optimize(const core::PathVectorPtr_t& path);
53
54 protected:
55 OrientedPathOptimizer(core::ProblemConstPtr_t problem);
57 const size_t index, const size_t lastIndex,
58 std::vector<bool> replaceValid, std::vector<bool> orientedValid,
59 std::vector<core::KinodynamicOrientedPathPtr_t> orientedPaths,
60 std::vector<core::KinodynamicPathPtr_t> resultPaths);
61
62 core::PathPtr_t steer(core::ConfigurationIn_t q1,
63 core::ConfigurationIn_t q2) const;
64
65 private:
67 const RbPrmPathValidationPtr_t rbprmPathValidation_;
68 double sizeFootX_, sizeFootY_;
69 bool rectangularContact_;
70 bool tryJump_;
71 double mu_;
72 bool orientationIgnoreZValue_;
73
74}; // class oriented-path-optimizer
76} // namespace rbprm
77} // namespace hpp
78#endif // HPP_RBPRM_ORIENTED_PATH_OPTIMIZER_HH
Definition: oriented-path-optimizer.hh:46
core::PathPtr_t steer(core::ConfigurationIn_t q1, core::ConfigurationIn_t q2) const
OrientedPathOptimizer(core::ProblemConstPtr_t problem)
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)
static OrientedPathOptimizerPtr_t create(core::ProblemConstPtr_t problem)
Return shared pointer to new object.
virtual core::PathVectorPtr_t optimize(const core::PathVectorPtr_t &path)
Optimize path.
shared_ptr< OrientedPathOptimizer > OrientedPathOptimizerPtr_t
Definition: oriented-path-optimizer.hh:44
HPP_PREDEF_CLASS(RbPrmFullBody)
shared_ptr< RbPrmPathValidation > RbPrmPathValidationPtr_t
Definition: rbprm-path-validation.hh:31
shared_ptr< SteeringMethodKinodynamic > SteeringMethodKinodynamicPtr_t
Definition: rbprm-steering-kinodynamic.hh:33
Definition: algorithm.hh:26