Main Page
Namespaces
Classes
Files
File List
File Members
include
footstep_planner
Heuristic.h
Go to the documentation of this file.
1
/*
2
* A footstep planner for humanoid robots
3
*
4
* Copyright 2010-2011 Johannes Garimort, Armin Hornung, University of Freiburg
5
* http://www.ros.org/wiki/footstep_planner
6
*
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, version 3.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef FOOTSTEP_PLANNER_HEURISTIC_H_
22
#define FOOTSTEP_PLANNER_HEURISTIC_H_
23
24
#include <
footstep_planner/helper.h
>
25
#include <
footstep_planner/PlanningState.h
>
26
27
28
namespace
footstep_planner
29
{
34
class
Heuristic
35
{
36
public
:
37
enum
HeuristicType
{
EUCLIDEAN
=0,
EUCLIDEAN_STEPCOST
=1,
PATH_COST
=2 };
38
39
Heuristic
(
double
cell_size,
int
num_angle_bins,
HeuristicType
type);
40
virtual
~Heuristic
();
41
47
virtual
double
getHValue
(
const
PlanningState
& from,
48
const
PlanningState
& to)
const
= 0;
49
50
HeuristicType
getHeuristicType
()
const
{
return
ivHeuristicType
; }
51
52
protected
:
53
double
ivCellSize
;
54
int
ivNumAngleBins
;
55
56
const
HeuristicType
ivHeuristicType
;
57
};
58
59
64
class
EuclideanHeuristic
:
public
Heuristic
65
{
66
public
:
67
EuclideanHeuristic
(
double
cell_size,
int
num_angle_bins);
68
virtual
~
EuclideanHeuristic
();
69
70
virtual
double
getHValue
(
const
PlanningState
& from,
71
const
PlanningState
& to)
const
;
72
};
73
74
82
class
EuclStepCostHeuristic
:
public
Heuristic
83
{
84
85
public
:
86
EuclStepCostHeuristic
(
double
cell_size,
int
num_angle_bins,
87
double
step_cost,
double
diff_angle_cost,
88
double
max_step_width);
89
virtual
~
EuclStepCostHeuristic
();
90
91
virtual
double
getHValue
(
const
PlanningState
& from,
92
const
PlanningState
& to)
const
;
93
94
private
:
95
const
double
ivStepCost
;
96
const
double
ivDiffAngleCost
;
97
99
const
double
ivMaxStepWidth
;
100
};
101
}
102
#endif // FOOTSTEP_PLANNER_HEURISTIC_H_
footstep_planner::Heuristic::ivHeuristicType
const HeuristicType ivHeuristicType
Definition:
Heuristic.h:56
footstep_planner::EuclStepCostHeuristic::ivDiffAngleCost
const double ivDiffAngleCost
Definition:
Heuristic.h:96
footstep_planner::Heuristic
An abstract super class providing methods necessary to be used as heuristic function within the Foots...
Definition:
Heuristic.h:34
footstep_planner::Heuristic::EUCLIDEAN_STEPCOST
Definition:
Heuristic.h:37
footstep_planner::Heuristic::EUCLIDEAN
Definition:
Heuristic.h:37
footstep_planner::Heuristic::ivNumAngleBins
int ivNumAngleBins
Definition:
Heuristic.h:54
footstep_planner::EuclStepCostHeuristic
Determining the heuristic value by the euclidean distance between two states, the expected step costs...
Definition:
Heuristic.h:82
footstep_planner::Heuristic::HeuristicType
HeuristicType
Definition:
Heuristic.h:37
PlanningState.h
footstep_planner::EuclideanHeuristic
Determining the heuristic value by the euclidean distance between two states.
Definition:
Heuristic.h:64
footstep_planner::Heuristic::getHValue
virtual double getHValue(const PlanningState &from, const PlanningState &to) const =0
footstep_planner::Heuristic::Heuristic
Heuristic(double cell_size, int num_angle_bins, HeuristicType type)
Definition:
Heuristic.cpp:25
footstep_planner::EuclStepCostHeuristic::ivMaxStepWidth
const double ivMaxStepWidth
longest step width
Definition:
Heuristic.h:99
footstep_planner::PlanningState
A class representing the robot's pose (i.e. position and orientation) in the underlying SBPL...
Definition:
PlanningState.h:45
footstep_planner::Heuristic::ivCellSize
double ivCellSize
Definition:
Heuristic.h:53
footstep_planner::Heuristic::~Heuristic
virtual ~Heuristic()
Definition:
Heuristic.cpp:33
footstep_planner::Heuristic::getHeuristicType
HeuristicType getHeuristicType() const
Definition:
Heuristic.h:50
footstep_planner::EuclStepCostHeuristic::ivStepCost
const double ivStepCost
Definition:
Heuristic.h:95
footstep_planner::Heuristic::PATH_COST
Definition:
Heuristic.h:37
helper.h
footstep_planner
Definition:
Footstep.h:28
footstep_planner
Author(s): Johannes Garimort, Armin Hornung
autogenerated on Mon Jun 10 2019 13:38:24