collision_check_grid_map_plugin.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_PLUGINS_COLLISION_CHECK_GRID_MAP_PLUGIN_H__
00031 #define VIGIR_FOOTSTEP_PLANNING_PLUGINS_COLLISION_CHECK_GRID_MAP_PLUGIN_H__
00032 
00033 #include <ros/ros.h>
00034 
00035 #include <boost/thread/shared_mutex.hpp>
00036 
00037 #include <nav_msgs/OccupancyGrid.h>
00038 
00039 #include <vigir_footstep_planning_lib/helper.h>
00040 
00041 #include <vigir_footstep_planning_plugins/plugins/collision_check_plugin.h>
00042 
00043 
00044 
00045 namespace vigir_footstep_planning
00046 {
00047 class CollisionCheckGridMapPlugin
00048   : public CollisionCheckPlugin
00049 {
00050 public:
00051   CollisionCheckGridMapPlugin(const std::string& name = "collision_check_grid_map_plugin");
00052 
00053   bool initialize(const vigir_generic_params::ParameterSet& params = vigir_generic_params::ParameterSet()) override;
00054 
00055   void reset() override;
00056 
00057   bool isCollisionCheckAvailable() const override;
00058 
00059   bool isAccessible(const State& s) const override;
00060   bool isAccessible(const State& next, const State& current) const override;
00061 
00062   void setOccupancyThreshold(unsigned char thresh);
00063 
00064 protected:
00065   virtual void mapCallback(const nav_msgs::OccupancyGridConstPtr& occupancy_grid_map);
00066 
00067   // subscribers
00068   ros::Subscriber occupancy_grid_map_sub_;
00069 
00070   // mutex
00071   mutable boost::shared_mutex grid_map_shared_mutex_;
00072 
00073   // pointer to last received grid map
00074   nav_msgs::OccupancyGridConstPtr occupancy_grid_map_;
00075 
00076   // occupancy threshold
00077   int8_t occ_thresh_;
00078 };
00079 }
00080 
00081 #endif


vigir_footstep_planning_plugins
Author(s): Alexander Stumpf
autogenerated on Sat Jun 8 2019 19:01:52