path_cost_heuristic.h
Go to the documentation of this file.
00001 //=================================================================================================
00002 // Copyright (c) 2017, Alexander Stumpf, TU Darmstadt
00003 // Based on http://wiki.ros.org/footstep_planner by Johannes Garimort and Armin Hornung
00004 // All rights reserved.
00005 
00006 // Redistribution and use in source and binary forms, with or without
00007 // modification, are permitted provided that the following conditions are met:
00008 //     * Redistributions of source code must retain the above copyright
00009 //       notice, this list of conditions and the following disclaimer.
00010 //     * Redistributions in binary form must reproduce the above copyright
00011 //       notice, this list of conditions and the following disclaimer in the
00012 //       documentation and/or other materials provided with the distribution.
00013 //     * Neither the name of the Simulation, Systems Optimization and Robotics
00014 //       group, TU Darmstadt nor the names of its contributors may be used to
00015 //       endorse or promote products derived from this software without
00016 //       specific prior written permission.
00017 
00018 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00019 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00020 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00021 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
00022 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00023 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00024 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00025 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00026 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00027 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00028 //=================================================================================================
00029 
00030 #ifndef VIGIR_FOOTSTEP_PLANNING_PATH_COST_HEURISTIC_H_
00031 #define VIGIR_FOOTSTEP_PLANNING_PATH_COST_HEURISTIC_H_
00032 
00033 #include <sbpl/headers.h>
00034 
00035 #include <vigir_footstep_planning_plugins/plugins/heuristic_plugin.h>
00036 
00037 #include <vigir_footstep_planning_default_plugins/world_model/grid_map_2d.h>
00038 
00039 
00040 
00041 namespace vigir_footstep_planning
00042 {
00057 class PathCostHeuristic
00058   : public HeuristicPlugin
00059 {
00060 public:
00061   PathCostHeuristic();
00062 
00063   ~PathCostHeuristic();
00064 
00065   bool loadParams(const vigir_generic_params::ParameterSet& params = vigir_generic_params::ParameterSet()) override;
00066 
00071   double getHeuristicValue(const State& from, const State& to, const State& start, const State& goal) const override;
00072 
00079   bool calculateDistances(const State& from, const State& to);
00080 
00081   void updateMap(vigir_gridmap_2d::GridMap2DPtr map);
00082 
00083 protected:
00084   static const int cvObstacleThreshold = 200;
00085 
00086   unsigned char** ivpGrid;
00087 
00088   double ivCellSize;
00089   int ivNumAngleBins;
00090   double ivAngleBinSize;
00091 
00092   double ivStepCost;
00093   double ivDiffAngleCost;
00094   double ivMaxStepWidth;
00095   double ivInflationRadius;
00096 
00097   int ivGoalX;
00098   int ivGoalY;
00099 
00100   vigir_gridmap_2d::GridMap2DPtr ivMapPtr;
00101   boost::shared_ptr<SBPL2DGridSearch> ivGridSearchPtr;
00102 
00103   void resetGrid();
00104 };
00105 }
00106 
00107 #endif


vigir_footstep_planning_default_plugins
Author(s): Alexander Stumpf
autogenerated on Fri Apr 7 2017 02:59:40