Class Polygon
- Defined in File polygon.hpp 
Inheritance Relationships
Derived Types
- public nav2_collision_monitor::Circle(Class Circle)
- public nav2_collision_monitor::VelocityPolygon(Class VelocityPolygon)
Class Documentation
- Basic polygon shape class. For STOP/SLOWDOWN/LIMIT model it represents zone around the robot while for APPROACH model it represents robot footprint. - Subclassed by nav2_collision_monitor::Circle, nav2_collision_monitor::VelocityPolygon - Public Functions - Polygon constructor. - Parameters:
- node – Collision Monitor node pointer 
- polygon_name – Name of polygon 
- tf_buffer – Shared pointer to a TF buffer 
- base_frame_id – Robot base frame ID 
- transform_tolerance – Transform tolerance 
 
 
 - Polygon destructor. 
 - Shape configuration routine. Obtains ROS-parameters related to shape object and creates polygon lifecycle publisher. - Returns:
- True in case of everything is configured correctly, or false otherwise 
 
 - Activates polygon lifecycle publisher. 
 - Deactivates polygon lifecycle publisher. 
 - Returns the name of polygon. - Returns:
- Polygon name 
 
 - Obtains polygon action type. - Returns:
- Action type for current polygon 
 
 - Obtains polygon enabled state. - Returns:
- Whether polygon is enabled 
 
 - Obtains polygon minimum points to enter inside polygon causing the action. - Returns:
- Minimum number of data readings within a zone to trigger the action 
 
 - Obtains speed slowdown ratio for current polygon. Applicable for SLOWDOWN model. - Returns:
- Speed slowdown ratio 
 
 - Obtains speed linear limit for current polygon. Applicable for LIMIT model. - Returns:
- Speed linear limit 
 
 - Obtains speed angular z limit for current polygon. Applicable for LIMIT model. - Returns:
- Speed angular limit 
 
 - Obtains required time before collision for current polygon. Applicable for APPROACH model. - Returns:
- Time before collision in seconds 
 
 - Gets polygon points. - Parameters:
- poly – Output polygon points (vertices) 
 
 - Obtains the name of the observation sources for current polygon. - Returns:
- Names of the observation sources 
 
 - Returns true if polygon points were set. Otherwise, prints a warning and returns false. 
 - Updates polygon from footprint subscriber (if any) 
 - Gets number of points inside given polygon. - Parameters:
- points – Input array of points to be checked 
- Returns:
- Number of points inside polygon. If there are no points, returns zero value. 
 
 - Gets number of points inside given polygon. - Parameters:
- sources_collision_points_map – Map containing source name as key, and input array of source’s points to be checked as value 
- Returns:
- Number of points inside polygon, for sources in map that are associated with current polygon. If there are no points, returns zero value. 
 
 - Obtains estimated (simulated) time before a collision. Applicable for APPROACH model. - Parameters:
- sources_collision_points_map – Map containing source name as key, and input array of source’s 2D obstacle points as value 
- velocity – Simulated robot velocity 
 
- Returns:
- Estimated time before a collision. If there is no collision, return value will be negative. 
 
 - Publishes polygon message into a its own topic. 
 - Protected Functions - Supporting routine obtaining ROS-parameters common for all shapes. - Parameters:
- polygon_pub_topic – Output name of polygon or radius subscription topic. Empty, if no polygon subscription. 
- polygon_sub_topic – Output name of polygon publishing topic 
- footprint_topic – Output name of footprint topic. Empty, if no footprint subscription. 
- use_dynamic_sub – If false, the parameter polygon_sub_topic or footprint_topic will not be declared 
 
- Returns:
- True if all parameters were obtained or false in failure case 
 
 - Supporting routine obtaining polygon-specific ROS-parameters. - Parameters:
- polygon_sub_topic – Output name of polygon or radius subscription topic. Empty, if no polygon subscription. 
- polygon_pub_topic – Output name of polygon publishing topic 
- footprint_topic – Output name of footprint topic. Empty, if no footprint subscription. 
 
- Returns:
- True if all parameters were obtained or false in failure case 
 
 - Creates polygon or radius topic subscription. - Parameters:
- polygon_sub_topic – Output name of polygon or radius subscription topic. Empty, if no polygon subscription. 
 
 - Updates polygon from geometry_msgs::msg::PolygonStamped message. - Parameters:
- msg – Message to update polygon from 
 
 - Dynamic polygon callback. - Parameters:
- msg – Shared pointer to the polygon message 
 
 - Callback executed when a parameter change is detected. - Parameters:
- event – ParameterEvent message 
 
 - Checks if point is inside polygon. - Parameters:
- point – Given point to check 
- Returns:
- True if given point is inside polygon, otherwise false 
 
 - Protected Attributes - Collision Monitor node. 
 - Collision monitor node logger stored for further usage. 
 - Dynamic parameters handler. 
 - Name of polygon. 
 - Action type for the polygon. 
 - Minimum number of data readings within a zone to trigger the action. 
 - Robot slowdown (share of its actual speed) 
 - Robot linear limit. 
 - Robot angular limit. 
 - Time before collision in seconds. 
 - Time step for robot movement simulation. 
 - Whether polygon is enabled. 
 - Whether the subscription to polygon topic has transient local QoS durability. 
 - Polygon subscription. 
 - Footprint subscriber. 
 - Name of the observation sources to check for polygon. 
 - TF buffer. 
 - Base frame ID. 
 - Transform tolerance. 
 - Collision monitor node’s clock. 
 - Whether to publish the polygon. 
 - Polygon, used for: 1. visualization; 2. storing latest dynamic polygon message. 
 - Polygon publisher for visualization purposes. 
 - Polygon points (vertices) in a base_frame_id_.