82 ROS_INFO(
"Map Size: %d, %d", size(0, 0), size(1, 0));
84 ROS_INFO(
"Position: %f, %f", pos(0), pos(1));
97 ROS_WARN(
"Static map has not been received yet. Ignoring marker.");
106 ROS_WARN(
"Recieved Marker not inside of map.");
111 double radius = _marker.scale.x;
127 geometry_msgs::TransformStamped transform;
132 catch (
const std::exception &e)
134 ROS_WARN(
"Unable to find transform: %s. Not including map in permanent obstacles.", e.what());
149 if (permanent(index(0), index(1)) != 100)
158 geometry_msgs::Pose poseIn;
159 poseIn.position.x = pos.x();
160 poseIn.position.y = pos.y();
162 geometry_msgs::Pose poseOut;
183 nav_msgs::OccupancyGrid occGrid;
189 grid_map_msgs::GridMap gridMapMessage;
ros::Subscriber markerSub_
ros::Publisher occGridPub_
float & atPosition(const std::string &layer, const Position &position)
void publish(const boost::shared_ptr< M > &message) const
bool getPosition(const Index &index, Position &position) const
std::string gridMapLayer
Layer to retrieve permanent obstacles from.
#define ROS_DEBUG_THROTTLE(rate,...)
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
StaticMapConfiguration config_
void gridMapCb(const grid_map_msgs::GridMap &)
const std::string & getFrameId() const
std::string gridMapSubTopic
in the grid map will be added to the static map instance.
void mapMarkerCb(const visualization_msgs::Marker &)
virtual geometry_msgs::TransformStamped lookupTransform(const std::string &target_frame, const std::string &source_frame, const ros::Time &time, const ros::Duration timeout) const
static void toMessage(const grid_map::GridMap &gridMap, grid_map_msgs::GridMap &message)
static bool fromOccupancyGrid(const nav_msgs::OccupancyGrid &occupancyGrid, const std::string &layer, grid_map::GridMap &gridMap)
ros::Subscriber staticMapSub_
void doTransform(const T &data_in, T &data_out, const geometry_msgs::TransformStamped &transform)
static void toOccupancyGrid(const grid_map::GridMap &gridMap, const std::string &layer, float dataMin, float dataMax, nav_msgs::OccupancyGrid &occupancyGrid)
tf2_ros::Buffer tfBuffer_
Holds transformations from tf tree.
std::string staticMapSubTopic
Static map from map server to use as starting configuration.
static bool fromMessage(const grid_map_msgs::GridMap &message, grid_map::GridMap &gridMap, const std::vector< std::string > &layers, bool copyBasicLayers=true, bool copyAllNonBasicLayers=true)
double getResolution() const
bool isInside(const Position &position) const
std::string markerSubTopic
Topic users can post marker messages to to add obstacles.
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
tf2_ros::TransformListener tfListener_
Used in tfBuffer_.
float & at(const std::string &layer, const Index &index)
std::string occupancyOutputTopic
Topic for occupancy grid.
void staticMapCb(const nav_msgs::OccupancyGrid &)
ros::Publisher gridMapPub_
grid_map::GridMap gridMap_
Mapping solution for largely static obstacles. Despite the name, it can be modified, but all modifications are considered permanent unless explicitly removed. Not for use as a rapidly changing dynamic map. See the SensorMap for that capability.
ros::Subscriber gridMapSub_
std::string gridmapOutputTopic
Topic for grid map msgs output.
const Size & getSize() const