include
jsk_footstep_planner
graph.h
Go to the documentation of this file.
1
// -*- mode: c++ -*-
2
/*********************************************************************
3
* Software License Agreement (BSD License)
4
*
5
* Copyright (c) 2015, JSK Lab
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/o2r other materials provided
17
* with the distribution.
18
* * Neither the name of the JSK Lab nor the names of its
19
* contributors may be used to endorse or promote products derived
20
* from this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*********************************************************************/
35
36
37
#ifndef JSK_FOOTSTEP_PLANNER_GRAPH_H_
38
#define JSK_FOOTSTEP_PLANNER_GRAPH_H_
39
40
#include <boost/shared_ptr.hpp>
41
#include <vector>
42
43
namespace
jsk_footstep_planner
44
{
45
template
<
class
StateT_>
46
class
Graph
47
{
48
public
:
49
typedef
boost::shared_ptr<Graph>
Ptr
;
50
typedef
StateT_
StateT
;
51
typedef
boost::shared_ptr<StateT>
StatePtr
;
52
Graph
() {}
53
virtual
void
setStartState
(
StatePtr
start) {
start_state_
=
start
; }
54
virtual
void
setGoalState
(
StatePtr
goal) {
goal_state_
= goal; }
55
56
virtual
StatePtr
getStartState
() {
return
start_state_
; }
57
virtual
StatePtr
getGoalState
() {
return
goal_state_
; }
58
59
virtual
void
addNode
(
StatePtr
state) {
nodes_
.push_back(state); }
60
virtual
size_t
numNodes
() {
return
nodes_
.size(); }
61
virtual
std::vector<StatePtr>
successors
(
StatePtr
target_state) = 0;
62
virtual
double
pathCost
(
StatePtr
from,
StatePtr
to,
double
prev_cost)
63
{
64
return
prev_cost + 1;
65
}
66
67
virtual
bool
isGoal
(
StatePtr
state) = 0;
68
69
protected
:
70
StatePtr
start_state_
;
71
StatePtr
goal_state_
;
72
std::vector<StatePtr>
nodes_
;
73
//double pos_goal_thr_;
74
//double rot_goal_thr_;
75
private
:
76
77
};
78
}
79
80
#endif
boost::shared_ptr
jsk_footstep_planner::Graph::Graph
Graph()
Definition:
graph.h:116
start
start
jsk_footstep_planner::Graph::goal_state_
StatePtr goal_state_
Definition:
graph.h:135
jsk_footstep_planner::Graph::successors
virtual std::vector< StatePtr > successors(StatePtr target_state)=0
jsk_footstep_planner::Graph::pathCost
virtual double pathCost(StatePtr from, StatePtr to, double prev_cost)
Definition:
graph.h:126
jsk_footstep_planner::Graph::getStartState
virtual StatePtr getStartState()
Definition:
graph.h:120
jsk_footstep_planner::Graph::StateT
StateT_ StateT
Definition:
graph.h:114
jsk_footstep_planner
Definition:
ann_grid.h:50
jsk_footstep_planner::Graph::setStartState
virtual void setStartState(StatePtr start)
Definition:
graph.h:117
jsk_footstep_planner::Graph::StatePtr
boost::shared_ptr< StateT > StatePtr
Definition:
graph.h:115
jsk_footstep_planner::Graph::Ptr
boost::shared_ptr< Graph > Ptr
Definition:
graph.h:113
jsk_footstep_planner::Graph::isGoal
virtual bool isGoal(StatePtr state)=0
jsk_footstep_planner::Graph::setGoalState
virtual void setGoalState(StatePtr goal)
Definition:
graph.h:118
jsk_footstep_planner::Graph::addNode
virtual void addNode(StatePtr state)
Definition:
graph.h:123
jsk_footstep_planner::Graph::nodes_
std::vector< StatePtr > nodes_
Definition:
graph.h:136
jsk_footstep_planner::Graph::getGoalState
virtual StatePtr getGoalState()
Definition:
graph.h:121
jsk_footstep_planner::Graph::start_state_
StatePtr start_state_
Definition:
graph.h:134
jsk_footstep_planner::Graph::numNodes
virtual size_t numNodes()
Definition:
graph.h:124
jsk_footstep_planner
Author(s): Ryohei Ueda
autogenerated on Wed Jan 24 2024 04:05:30