Main Page
Namespaces
Classes
Files
File List
File Members
include
vigir_footstep_planning_default_plugins
heuristics
path_cost_heuristic.h
Go to the documentation of this file.
1
//=================================================================================================
2
// Copyright (c) 2018, Alexander Stumpf, TU Darmstadt
3
// Based on http://wiki.ros.org/footstep_planner by Johannes Garimort and Armin Hornung
4
// All rights reserved.
5
6
// Redistribution and use in source and binary forms, with or without
7
// modification, are permitted provided that the following conditions are met:
8
// * Redistributions of source code must retain the above copyright
9
// notice, this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of the Simulation, Systems Optimization and Robotics
14
// group, TU Darmstadt nor the names of its contributors may be used to
15
// endorse or promote products derived from this software without
16
// specific prior written permission.
17
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
22
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
//=================================================================================================
29
30
#ifndef VIGIR_FOOTSTEP_PLANNING_PATH_COST_HEURISTIC_H_
31
#define VIGIR_FOOTSTEP_PLANNING_PATH_COST_HEURISTIC_H_
32
33
#include <sbpl/headers.h>
34
35
#include <vigir_footstep_planning_plugins/plugins/heuristic_plugin.h>
36
37
#include <
vigir_footstep_planning_default_plugins/world_model/grid_map_2d.h
>
38
39
40
41
namespace
vigir_footstep_planning
42
{
57
class
PathCostHeuristic
58
:
public
HeuristicPlugin
59
{
60
public
:
61
PathCostHeuristic
();
62
63
~PathCostHeuristic
();
64
65
bool
loadParams
(
const
vigir_generic_params::ParameterSet& params = vigir_generic_params::ParameterSet())
override
;
66
71
double
getHeuristicValue
(
const
State& from,
const
State& to,
const
State& start,
const
State& goal)
const override
;
72
79
bool
calculateDistances
(
const
State& from,
const
State& to);
80
81
void
updateMap
(
vigir_gridmap_2d::GridMap2DPtr
map);
82
83
protected
:
84
static
const
int
cvObstacleThreshold
= 200;
85
86
unsigned
char
**
ivpGrid
;
87
88
double
ivCellSize
;
89
int
ivNumAngleBins
;
90
double
ivAngleBinSize
;
91
92
double
ivStepCost
;
93
double
ivDiffAngleCost
;
94
double
ivMaxStepWidth
;
95
double
ivInflationRadius
;
96
97
int
ivGoalX
;
98
int
ivGoalY
;
99
100
vigir_gridmap_2d::GridMap2DPtr
ivMapPtr
;
101
boost::shared_ptr<SBPL2DGridSearch>
ivGridSearchPtr
;
102
103
void
resetGrid
();
104
};
105
}
106
107
#endif
vigir_footstep_planning::PathCostHeuristic::ivMaxStepWidth
double ivMaxStepWidth
Definition:
path_cost_heuristic.h:94
vigir_footstep_planning::PathCostHeuristic::ivNumAngleBins
int ivNumAngleBins
Definition:
path_cost_heuristic.h:89
vigir_footstep_planning::PathCostHeuristic::ivDiffAngleCost
double ivDiffAngleCost
Definition:
path_cost_heuristic.h:93
vigir_footstep_planning::PathCostHeuristic::ivMapPtr
vigir_gridmap_2d::GridMap2DPtr ivMapPtr
Definition:
path_cost_heuristic.h:100
vigir_footstep_planning::PathCostHeuristic::ivGoalX
int ivGoalX
Definition:
path_cost_heuristic.h:97
vigir_footstep_planning::PathCostHeuristic::cvObstacleThreshold
static const int cvObstacleThreshold
Definition:
path_cost_heuristic.h:84
vigir_footstep_planning::PathCostHeuristic::ivGoalY
int ivGoalY
Definition:
path_cost_heuristic.h:98
vigir_footstep_planning::PathCostHeuristic::loadParams
bool loadParams(const vigir_generic_params::ParameterSet ¶ms=vigir_generic_params::ParameterSet()) override
Definition:
path_cost_heuristic.cpp:23
vigir_footstep_planning::PathCostHeuristic::ivCellSize
double ivCellSize
Definition:
path_cost_heuristic.h:88
boost::shared_ptr< GridMap2D >
vigir_footstep_planning::PathCostHeuristic::getHeuristicValue
double getHeuristicValue(const State &from, const State &to, const State &start, const State &goal) const override
Definition:
path_cost_heuristic.cpp:40
vigir_footstep_planning::PathCostHeuristic::calculateDistances
bool calculateDistances(const State &from, const State &to)
Calculates for each grid cell of the map a 2D path to the cell (to.x, to.y). For forward planning 'to...
Definition:
path_cost_heuristic.cpp:83
vigir_footstep_planning::PathCostHeuristic::PathCostHeuristic
PathCostHeuristic()
Definition:
path_cost_heuristic.cpp:9
vigir_footstep_planning
Definition:
dynamics_heuristic.h:39
vigir_footstep_planning::PathCostHeuristic
Determining the heuristic value by calculating a 2D path from each grid cell of the map to the goal a...
Definition:
path_cost_heuristic.h:57
vigir_footstep_planning::PathCostHeuristic::updateMap
void updateMap(vigir_gridmap_2d::GridMap2DPtr map)
Definition:
path_cost_heuristic.cpp:111
vigir_footstep_planning::PathCostHeuristic::ivStepCost
double ivStepCost
Definition:
path_cost_heuristic.h:92
vigir_footstep_planning::PathCostHeuristic::ivGridSearchPtr
boost::shared_ptr< SBPL2DGridSearch > ivGridSearchPtr
Definition:
path_cost_heuristic.h:101
vigir_footstep_planning::PathCostHeuristic::ivInflationRadius
double ivInflationRadius
Definition:
path_cost_heuristic.h:95
vigir_footstep_planning::PathCostHeuristic::ivAngleBinSize
double ivAngleBinSize
Definition:
path_cost_heuristic.h:90
grid_map_2d.h
vigir_footstep_planning::PathCostHeuristic::resetGrid
void resetGrid()
Definition:
path_cost_heuristic.cpp:146
vigir_footstep_planning::PathCostHeuristic::ivpGrid
unsigned char ** ivpGrid
Definition:
path_cost_heuristic.h:86
vigir_footstep_planning::PathCostHeuristic::~PathCostHeuristic
~PathCostHeuristic()
Definition:
path_cost_heuristic.cpp:17
vigir_footstep_planning_default_plugins
Author(s): Alexander Stumpf
autogenerated on Sun Nov 17 2019 03:30:01