Nav2 Navigation Stack - lyrical  lyrical
ROS 2 Navigation Stack
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
nav2_costmap_2d::BinaryFilter Class Reference

Reads in a speed restriction mask and enables a robot to dynamically adjust speed based on pose in map to slow in dangerous areas. Done via absolute speed setting or percentage of maximum speed. More...

#include <nav2_costmap_2d/include/nav2_costmap_2d/costmap_filters/binary_filter.hpp>

Inheritance diagram for nav2_costmap_2d::BinaryFilter:
Inheritance graph
[legend]
Collaboration diagram for nav2_costmap_2d::BinaryFilter:
Collaboration graph
[legend]

Public Member Functions

 BinaryFilter ()
 A constructor.
 
void initializeFilter (const std::string &filter_info_topic) override
 Initialize the filter and subscribe to the info topic.
 
void process (nav2_costmap_2d::Costmap2D &master_grid, int min_i, int min_j, int max_i, int max_j, const geometry_msgs::msg::Pose &pose) override
 Process the keepout layer at the current pose / bounds / grid.
 
void resetFilter () override
 Reset the costmap filter / topic / info.
 
bool isActive ()
 If this filter is active.
 
- Public Member Functions inherited from nav2_costmap_2d::CostmapFilter
 CostmapFilter ()
 A constructor.
 
 ~CostmapFilter ()
 A destructor.
 
mutex_tgetMutex ()
 : returns pointer to a mutex
 
void onInitialize () final
 Initialization process of layer on startup.
 
void updateBounds (double robot_x, double robot_y, double robot_yaw, double *min_x, double *min_y, double *max_x, double *max_y) override
 Update the bounds of the master costmap by this layer's update dimensions. More...
 
void updateCosts (nav2_costmap_2d::Costmap2D &master_grid, int min_i, int min_j, int max_i, int max_j) final
 Update the costs in the master costmap in the window. More...
 
void activate () final
 Activate the layer.
 
void deactivate () final
 Deactivate the layer.
 
void reset () final
 Reset the layer.
 
bool isClearable () final
 If clearing operations should be processed on this layer or not.
 
- Public Member Functions inherited from nav2_costmap_2d::Layer
 Layer ()
 A constructor.
 
virtual ~Layer ()
 A destructor.
 
void initialize (LayeredCostmap *parent, std::string name, nav2::TransformBuffer *tf, const nav2::LifecycleNode::WeakPtr &node, rclcpp::CallbackGroup::SharedPtr callback_group)
 Initialization process of layer on startup.
 
virtual void matchSize ()
 Implement this to make this layer match the size of the parent costmap.
 
virtual void onFootprintChanged ()
 LayeredCostmap calls this whenever the footprint there changes (via LayeredCostmap::setFootprint()). Override to be notified of changes to the robot's footprint.
 
std::string getName () const
 Get the name of the costmap layer.
 
bool isCurrent () const
 Check to make sure all the data in the layer is up to date. If the layer is not up to date, then it may be unsafe to plan using the data from this layer, and the planner may need to know. More...
 
void setCurrent (bool current)
 Set whether the data in the layer is up to date. More...
 
bool isEnabled () const
 Gets whether the layer is enabled.
 
const std::vector< geometry_msgs::msg::Point > & getFootprint () const
 Convenience function for layered_costmap_->getFootprint().
 
std::string getFullName (const std::string &param_name)
 Convenience functions for declaring ROS parameters.
 
std::string joinWithParentNamespace (const std::string &topic)
 

Protected Member Functions

void filterInfoCallback (const nav2_msgs::msg::CostmapFilterInfo::ConstSharedPtr &msg)
 Callback for the filter information.
 
void maskCallback (const nav_msgs::msg::OccupancyGrid::ConstSharedPtr &msg)
 Callback for the filter mask.
 
void changeState (const bool state)
 Changes binary state of filter. Sends a message with new state. More...
 
- Protected Member Functions inherited from nav2_costmap_2d::CostmapFilter
void enableCallback (const std::shared_ptr< rmw_request_id_t > request_header, const std::shared_ptr< std_srvs::srv::SetBool::Request > request, std::shared_ptr< std_srvs::srv::SetBool::Response > response)
 Costmap filter enabling/disabling callback. More...
 
bool transformPose (const std::string global_frame, const geometry_msgs::msg::Pose &global_pose, const std::string mask_frame, geometry_msgs::msg::Pose &mask_pose) const
 : Transforms robot pose from current layer frame to mask frame More...
 
int8_t getMaskData (nav_msgs::msg::OccupancyGrid::ConstSharedPtr filter_mask, const unsigned int mx, const unsigned int my) const
 Get the data of a cell in the filter mask. More...
 
unsigned char getMaskCost (nav_msgs::msg::OccupancyGrid::ConstSharedPtr filter_mask, const unsigned int mx, const unsigned int &my) const
 Get the cost of a cell in the filter mask. More...
 

Protected Attributes

nav2::Subscription< nav2_msgs::msg::CostmapFilterInfo >::SharedPtr filter_info_sub_
 
nav2::Subscription< nav_msgs::msg::OccupancyGrid >::SharedPtr mask_sub_
 
nav2::Publisher< std_msgs::msg::Bool >::SharedPtr binary_state_pub_
 
nav_msgs::msg::OccupancyGrid::ConstSharedPtr filter_mask_
 
std::string global_frame_
 
double base_
 
double multiplier_
 
double flip_threshold_
 
bool default_state_
 
bool binary_state_
 
- Protected Attributes inherited from nav2_costmap_2d::CostmapFilter
std::string filter_info_topic_
 : Name of costmap filter info topic
 
std::string mask_topic_
 : Name of filter mask topic
 
tf2::Duration transform_tolerance_
 : mask_frame->global_frame_ transform tolerance
 
nav2::ServiceServer< std_srvs::srv::SetBool >::SharedPtr enable_service_
 : A service to enable/disable costmap filter
 
- Protected Attributes inherited from nav2_costmap_2d::Layer
LayeredCostmaplayered_costmap_
 
std::string name_
 
nav2::TransformBuffer * tf_
 
rclcpp::CallbackGroup::SharedPtr callback_group_
 
nav2::LifecycleNode::WeakPtr node_
 
rclcpp::Clock::SharedPtr clock_
 
rclcpp::Logger logger_ {rclcpp::get_logger("nav2_costmap_2d")}
 
std::atomic_bool current_
 
bool enabled_
 

Additional Inherited Members

- Public Types inherited from nav2_costmap_2d::CostmapFilter
typedef std::recursive_mutex mutex_t
 : Provide a typedef to ease future code maintenance
 

Detailed Description

Reads in a speed restriction mask and enables a robot to dynamically adjust speed based on pose in map to slow in dangerous areas. Done via absolute speed setting or percentage of maximum speed.

Definition at line 57 of file binary_filter.hpp.

Member Function Documentation

◆ changeState()

void nav2_costmap_2d::BinaryFilter::changeState ( const bool  state)
protected

Changes binary state of filter. Sends a message with new state.

Parameters
stateNew binary state

Definition at line 255 of file binary_filter.cpp.

Referenced by initializeFilter(), and process().

Here is the caller graph for this function:

The documentation for this class was generated from the following files: