hpp-core
9.0.2
Implement basic classes for canonical path planning for kinematic chains.
Toggle main menu visibility
Loading...
Searching...
No Matches
path-optimizer.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_OPTIMIZER_HH
31
#define HPP_CORE_PATH_OPTIMIZER_HH
32
33
#include <boost/date_time/posix_time/ptime.hpp>
34
#include <
hpp/core/config.hh
>
35
#include <
hpp/core/fwd.hh
>
36
37
namespace
hpp
{
38
namespace
core
{
41
44
class
HPP_CORE_DLLAPI
PathOptimizer
{
45
public
:
46
virtual
~PathOptimizer
() {};
47
49
ProblemConstPtr_t
problem
()
const
{
return
problem_; }
50
52
virtual
PathVectorPtr_t
optimize
(
const
PathVectorPtr_t
&
path
) = 0;
53
55
void
interrupt
() {
interrupt_
=
true
; }
57
void
maxIterations
(
const
unsigned
long
int
& n);
59
void
timeOut
(
const
double
&
timeOut
);
60
61
protected
:
65
bool
interrupt_
;
66
67
PathOptimizer
(
const
ProblemConstPtr_t
&
problem
);
68
69
PathPtr_t
steer
(
ConfigurationIn_t
q1,
ConfigurationIn_t
q2)
const
;
70
71
void
monitorExecution
();
72
73
void
endIteration
() { ++monitor_.iteration; }
74
75
bool
shouldStop
()
const
;
76
77
void
initFromParameters
();
78
79
private
:
80
ProblemConstPtr_t
problem_;
81
84
size_type
maxIterations_;
86
double
timeOut_;
87
93
struct
{
94
bool
enabled
;
95
size_type
iteration
;
96
boost::posix_time::ptime
timeStart
;
97
} monitor_;
98
};
// class PathOptimizer;
99
100
}
// namespace core
101
}
// namespace hpp
102
#endif
// HPP_CORE_PATH_OPTIMIZER_HH
config.hh
HPP_CORE_DLLAPI
#define HPP_CORE_DLLAPI
Definition
config.hh:88
fwd.hh
hpp::core::PathOptimizer::optimize
virtual PathVectorPtr_t optimize(const PathVectorPtr_t &path)=0
Optimize path.
hpp::core::PathOptimizer::iteration
size_type iteration
Definition
path-optimizer.hh:95
hpp::core::PathOptimizer::problem
ProblemConstPtr_t problem() const
Get problem.
Definition
path-optimizer.hh:49
hpp::core::PathOptimizer::timeStart
boost::posix_time::ptime timeStart
Definition
path-optimizer.hh:96
hpp::core::PathOptimizer::shouldStop
bool shouldStop() const
hpp::core::PathOptimizer::maxIterations
void maxIterations(const unsigned long int &n)
Set maximal number of iterations.
hpp::core::PathOptimizer::timeOut
void timeOut(const double &timeOut)
set time out (in seconds)
hpp::core::PathOptimizer::endIteration
void endIteration()
Definition
path-optimizer.hh:73
hpp::core::PathOptimizer::initFromParameters
void initFromParameters()
hpp::core::PathOptimizer::PathOptimizer
PathOptimizer(const ProblemConstPtr_t &problem)
hpp::core::PathOptimizer::interrupt_
bool interrupt_
Definition
path-optimizer.hh:65
hpp::core::PathOptimizer::interrupt
void interrupt()
Interrupt path optimization.
Definition
path-optimizer.hh:55
hpp::core::PathOptimizer::monitorExecution
void monitorExecution()
hpp::core::PathOptimizer::~PathOptimizer
virtual ~PathOptimizer()
Definition
path-optimizer.hh:46
hpp::core::PathOptimizer::steer
PathPtr_t steer(ConfigurationIn_t q1, ConfigurationIn_t q2) const
hpp::core::PathOptimizer::enabled
bool enabled
Definition
path-optimizer.hh:94
hpp
hpp::core::path
Definition
fwd.hh:242
hpp::core
Definition
bi-rrt-planner.hh:36
hpp::core::PathVectorPtr_t
shared_ptr< PathVector > PathVectorPtr_t
Definition
fwd.hh:193
hpp::core::ConfigurationIn_t
pinocchio::ConfigurationIn_t ConfigurationIn_t
Definition
fwd.hh:108
hpp::core::size_type
pinocchio::size_type size_type
Definition
fwd.hh:173
hpp::core::ProblemConstPtr_t
shared_ptr< const Problem > ProblemConstPtr_t
Definition
fwd.hh:197
hpp::core::PathPtr_t
shared_ptr< Path > PathPtr_t
Definition
fwd.hh:187
include
hpp
core
path-optimizer.hh
Generated by
1.17.0