hpp-core
5.2.0
Implement basic classes for canonical path planning for kinematic chains.
path-planner.hh
Go to the documentation of this file.
1
//
2
// Copyright (c) 2014 CNRS
3
// Authors: Florent Lamiraux
4
//
5
6
// Redistribution and use in source and binary forms, with or without
7
// modification, are permitted provided that the following conditions are
8
// met:
9
//
10
// 1. Redistributions of source code must retain the above copyright
11
// notice, this list of conditions and the following disclaimer.
12
//
13
// 2. Redistributions in binary form must reproduce the above copyright
14
// notice, this list of conditions and the following disclaimer in the
15
// documentation and/or other materials provided 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 FOR
20
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28
// DAMAGE.
29
30
#ifndef HPP_CORE_PATH_PLANNER_HH
31
#define HPP_CORE_PATH_PLANNER_HH
32
33
#include <
hpp/core/config.hh
>
34
#include <
hpp/core/fwd.hh
>
35
36
namespace
hpp
{
37
namespace
core {
40
45
class
HPP_CORE_DLLAPI
PathPlanner
{
46
public
:
47
virtual
~
PathPlanner
();
48
50
virtual
const
RoadmapPtr_t
& roadmap()
const
;
52
ProblemConstPtr_t
problem()
const
;
56
virtual
void
startSolve();
65
virtual
PathVectorPtr_t
solve();
67
virtual
void
tryConnectInitAndGoals();
68
70
virtual
void
oneStep() = 0;
72
virtual
PathVectorPtr_t
finishSolve(
const
PathVectorPtr_t
& path);
74
void
interrupt();
76
void
maxIterations(
const
unsigned
long
int
& n);
78
unsigned
long
int
maxIterations
()
const
{
return
maxIterations_; }
80
void
timeOut(
const
double
& timeOut);
82
double
timeOut
()
const
{
return
timeOut_; }
87
void
stopWhenProblemIsSolved(
bool
enable);
88
90
PathVectorPtr_t
computePath()
const
;
91
92
protected
:
96
PathPlanner
(
const
ProblemConstPtr_t
& problem);
100
PathPlanner
(
const
ProblemConstPtr_t
& problem,
const
RoadmapPtr_t
& roadmap);
102
void
init(
const
PathPlannerWkPtr_t& weak);
103
104
private
:
106
const
ProblemConstWkPtr_t problem_;
108
const
RoadmapPtr_t
roadmap_;
109
bool
interrupt_;
112
unsigned
long
int
maxIterations_;
114
double
timeOut_;
116
bool
stopWhenProblemIsSolved_;
117
119
PathPlannerWkPtr_t weakPtr_;
120
};
// class PathPlanner
122
}
// namespace core
123
}
// namespace hpp
124
#endif // HPP_CORE_PATH_PLANNER_HH
hpp::core::ProblemConstPtr_t
shared_ptr< const Problem > ProblemConstPtr_t
Definition:
fwd.hh:197
hpp::core::PathPlanner::timeOut
double timeOut() const
Get time out.
Definition:
path-planner.hh:82
hpp::core::PathVectorPtr_t
shared_ptr< PathVector > PathVectorPtr_t
Definition:
fwd.hh:193
fwd.hh
hpp::core::RoadmapPtr_t
shared_ptr< Roadmap > RoadmapPtr_t
Definition:
fwd.hh:199
hpp
Definition:
bi-rrt-planner.hh:35
hpp::core::PathPlanner::maxIterations
unsigned long int maxIterations() const
Get maximal number of iterations.
Definition:
path-planner.hh:78
hpp::core::PathPlanner
Definition:
path-planner.hh:45
config.hh
HPP_CORE_DLLAPI
#define HPP_CORE_DLLAPI
Definition:
config.hh:88
include
hpp
core
path-planner.hh
Generated by
1.8.17