15 #ifndef NAV2_COSTMAP_2D__CLEAR_COSTMAP_SERVICE_HPP_
16 #define NAV2_COSTMAP_2D__CLEAR_COSTMAP_SERVICE_HPP_
22 #include "rclcpp/rclcpp.hpp"
23 #include "nav2_msgs/srv/clear_costmap_except_region.hpp"
24 #include "nav2_msgs/srv/clear_costmap_around_robot.hpp"
25 #include "nav2_msgs/srv/clear_entire_costmap.hpp"
26 #include "nav2_costmap_2d/costmap_layer.hpp"
27 #include "nav2_util/lifecycle_node.hpp"
28 #include "nav2_util/service_server.hpp"
46 const nav2_util::LifecycleNode::WeakPtr & parent,
Costmap2DROS & costmap);
61 void clearRegion(
double reset_distance,
bool invert);
70 rclcpp::Logger logger_{rclcpp::get_logger(
"nav2_costmap_2d")};
76 unsigned char reset_value_;
80 std::shared_ptr<rclcpp_lifecycle::LifecycleNode>>::SharedPtr clear_except_service_;
84 void clearExceptRegionCallback(
85 const std::shared_ptr<rmw_request_id_t> request_header,
86 const std::shared_ptr<nav2_msgs::srv::ClearCostmapExceptRegion::Request> request,
87 const std::shared_ptr<nav2_msgs::srv::ClearCostmapExceptRegion::Response> response);
90 std::shared_ptr<rclcpp_lifecycle::LifecycleNode>>::SharedPtr clear_around_service_;
94 void clearAroundRobotCallback(
95 const std::shared_ptr<rmw_request_id_t> request_header,
96 const std::shared_ptr<nav2_msgs::srv::ClearCostmapAroundRobot::Request> request,
97 const std::shared_ptr<nav2_msgs::srv::ClearCostmapAroundRobot::Response> response);
100 std::shared_ptr<rclcpp_lifecycle::LifecycleNode>>::SharedPtr clear_entire_service_;
104 void clearEntireCallback(
105 const std::shared_ptr<rmw_request_id_t> request_header,
106 const std::shared_ptr<nav2_msgs::srv::ClearEntireCostmap::Request> request,
107 const std::shared_ptr<nav2_msgs::srv::ClearEntireCostmap::Response> response);
112 void clearLayerRegion(
113 std::shared_ptr<CostmapLayer> & costmap,
double pose_x,
double pose_y,
double reset_distance,
119 bool getPosition(
double & x,
double & y)
const;
Exposes services to clear costmap objects in inclusive/exclusive regions or completely.
~ClearCostmapService()
A destructor.
ClearCostmapService()=delete
A constructor.
void clearRegion(double reset_distance, bool invert)
Clears the region outside of a user-specified area reverting to the static map.
void clearEntirely()
Clears all layers.
A ROS wrapper for a 2D Costmap. Handles subscribing to topics that provide observations about obstacl...
A simple wrapper on ROS2 services server.