Main Page
Namespaces
Classes
Files
File List
File Members
include
vigir_footstep_planning_plugins
plugin_aggregators
world_model.h
Go to the documentation of this file.
1
//=================================================================================================
2
// Copyright (c) 2017, Alexander Stumpf, TU Darmstadt
3
// All rights reserved.
4
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
// * Redistributions of source code must retain the above copyright
8
// notice, this list of conditions and the following disclaimer.
9
// * Redistributions in binary form must reproduce the above copyright
10
// notice, this list of conditions and the following disclaimer in the
11
// documentation and/or other materials provided with the distribution.
12
// * Neither the name of the Simulation, Systems Optimization and Robotics
13
// group, TU Darmstadt nor the names of its contributors may be used to
14
// endorse or promote products derived from this software without
15
// specific prior written permission.
16
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
21
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
//=================================================================================================
28
29
#ifndef VIGIR_FOOTSTEP_PLANNING_PLUGINS_WORLD_MODEL_H__
30
#define VIGIR_FOOTSTEP_PLANNING_PLUGINS_WORLD_MODEL_H__
31
32
#include <
ros/ros.h
>
33
34
#include <
vigir_footstep_planning_plugins/plugin_aggregators/extended_plugin_aggregator.h
>
35
#include <
vigir_footstep_planning_plugins/plugins/collision_check_plugin.h
>
36
#include <
vigir_footstep_planning_plugins/plugins/terrain_model_plugin.h
>
37
38
39
40
namespace
vigir_footstep_planning
41
{
42
class
WorldModel
43
:
public
ExtendedPluginAggregator
<WorldModel, CollisionCheckPlugin>
44
{
45
public
:
46
WorldModel
();
47
48
void
loadPlugins
()
override
;
49
bool
loadParams
(
const
vigir_generic_params::ParameterSet& params)
override
;
50
51
void
resetPlugins
()
override
;
52
53
// evaluation will be done in alphabetical order of plugin names
54
bool
isAccessible
(
const
State
&
s
)
const
;
55
bool
isAccessible
(
const
State
& next,
const
State
& current)
const
;
56
57
void
useTerrainModel
(
bool
enabled);
58
bool
isTerrainModelAvailable
()
const
;
59
TerrainModelPlugin::ConstPtr
getTerrainModel
()
const
;
60
66
bool
getHeight
(
double
x
,
double
y
,
double
& height)
const
;
67
bool
update3DData
(
State
& s)
const
;
68
69
protected
:
70
bool
use_terrain_model_
;
71
TerrainModelPlugin::Ptr
terrain_model_
;
72
};
73
}
74
75
typedef
vigir_footstep_planning::WorldModel
PlannerWorldModel
;
76
77
#endif
collision_check_plugin.h
vigir_footstep_planning::WorldModel::useTerrainModel
void useTerrainModel(bool enabled)
Definition:
world_model.cpp:61
vigir_footstep_planning::WorldModel::getTerrainModel
TerrainModelPlugin::ConstPtr getTerrainModel() const
Definition:
world_model.cpp:71
vigir_footstep_planning::WorldModel::getHeight
bool getHeight(double x, double y, double &height) const
update z, roll and pitch of state based on terrain model
Definition:
world_model.cpp:76
s
XmlRpcServer s
vigir_footstep_planning::WorldModel::loadParams
bool loadParams(const vigir_generic_params::ParameterSet ¶ms) override
Definition:
world_model.cpp:23
y
TFSIMD_FORCE_INLINE const tfScalar & y() const
vigir_footstep_planning::WorldModel::use_terrain_model_
bool use_terrain_model_
Definition:
world_model.h:70
vigir_footstep_planning::WorldModel::terrain_model_
TerrainModelPlugin::Ptr terrain_model_
Definition:
world_model.h:71
boost::shared_ptr
vigir_footstep_planning::State
extended_plugin_aggregator.h
vigir_footstep_planning
vigir_footstep_planning::WorldModel::isTerrainModelAvailable
bool isTerrainModelAvailable() const
Definition:
world_model.cpp:66
x
TFSIMD_FORCE_INLINE const tfScalar & x() const
ros.h
vigir_footstep_planning::WorldModel::WorldModel
WorldModel()
Definition:
world_model.cpp:5
vigir_footstep_planning::WorldModel::resetPlugins
void resetPlugins() override
Definition:
world_model.cpp:33
vigir_footstep_planning::WorldModel::update3DData
bool update3DData(State &s) const
Definition:
world_model.cpp:84
vigir_footstep_planning::WorldModel::loadPlugins
void loadPlugins() override
Definition:
world_model.cpp:10
vigir_footstep_planning::WorldModel::isAccessible
bool isAccessible(const State &s) const
Definition:
world_model.cpp:41
vigir_footstep_planning::ExtendedPluginAggregator
Definition:
extended_plugin_aggregator.h:43
PlannerWorldModel
vigir_footstep_planning::WorldModel PlannerWorldModel
Definition:
world_model.h:75
terrain_model_plugin.h
vigir_footstep_planning::WorldModel
Definition:
world_model.h:42
vigir_footstep_planning_plugins
Author(s): Alexander Stumpf
autogenerated on Mon Jun 10 2019 15:47:39