๐ŸšกD.22 Collision Monitor

แ€žแ€ฐแ€€แ€แ€ฑแ€ฌแ€ท robot safety แ€กแ€แ€ฝแ€€แ€บ node แ€•แ€ซแ€•แ€ฒแ‹ แ€แ€แ€ฏแ€แ€ฏแ€”แ€ฒแ€ท แ€แ€ญแ€ฏแ€€แ€บแ€™แ€ญ แ€™แ€žแ€ฝแ€ฌแ€ธแ€˜แ€ฒ แ€›แ€พแ€ฑแ€ฌแ€„แ€บแ€žแ€ฝแ€ฌแ€ธแ€”แ€ญแ€ฏแ€„แ€บแ€กแ€ฑแ€ฌแ€„แ€บ sensor data แ€€แ€ญแ€ฏแ€›แ€šแ€ฐแ€•แ€ผแ€ฎแ€ธแ€แ€ฑแ€ฌแ€ท costmap, trajectory planners แ€แ€ญแ€ฏแ€ทแ€”แ€ฒแ€ทแ€กแ€œแ€ฏแ€•แ€บแ€œแ€ฏแ€•แ€บแ€•แ€ซแ€แ€šแ€บแ‹ แ€กแ€แ€ฌแ€ธแ€กแ€†แ€ฎแ€ธแ€•แ€ฑแ€ซแ€บแ€œแ€ฌแ€แ€ฌแ€”แ€ฒแ€ท robot แ€€แ€ญแ€ฏ slow down แ€’แ€ซแ€™แ€พแ€™แ€Ÿแ€ฏแ€แ€บ แ€›แ€•แ€บแ€แ€”แ€บแ€ทแ€œแ€ญแ€ฏแ€€แ€บแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹ แ€’แ€ฎแ€€แ€ฑแ€ฌแ€„แ€บแ€€ industrial robots แ€แ€ฝแ€ฑแ€™แ€พแ€ฌแ€†แ€ญแ€ฏ แ€กแ€›แ€ฑแ€ธแ€€แ€ผแ€ฎแ€ธแ€แ€ฒแ€ท แ€กแ€…แ€ญแ€แ€บแ€กแ€•แ€ญแ€ฏแ€„แ€บแ€ธแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹ industrial robot แ€แ€ฝแ€ฑแ€žแ€Šแ€บ high torque แ€žแ€ญแ€ฏแ€ทแ€™แ€Ÿแ€ฏแ€แ€บ high velocity แ€”แ€ฒแ€ท แ€™แ€ฑแ€ฌแ€„แ€บแ€ธแ€แ€ฌแ€™แ€ญแ€ฏแ€ท safety แ€–แ€ผแ€…แ€บแ€–แ€ญแ€ฏแ€ท แ€กแ€›แ€ฑแ€ธแ€€แ€ผแ€ฎแ€ธแ€•แ€ซแ€แ€šแ€บแ‹ แ€žแ€ฐแ€€ robot แ€›แ€ฒแ€ท base frame แ€”แ€ฒแ€ท แ€แ€แ€ญแ€ฏแ€€แ€บ แ€”แ€ฑแ€›แ€ฌ แ€แ€ฝแ€ฑแ€€แ€ญแ€ฏ zone แ€กแ€”แ€ฑแ€”แ€ฒแ€ทแ€žแ€แ€บแ€™แ€พแ€แ€บแ€‘แ€ฌแ€ธแ€•แ€ซแ€แ€šแ€บแ‹ แ€กแ€แ€ฌแ€ธแ€กแ€†แ€ฎแ€ธแ€แ€ฝแ€ฑแ€žแ€Šแ€บ แ€กแ€ฒแ€ทแ€’แ€ฎ zone แ€‘แ€ฒแ€›แ€ฑแ€ฌแ€€แ€บแ€œแ€ฌแ€แ€ฒแ€ทแ€›แ€„แ€บ แ€žแ€แ€บแ€™แ€พแ€แ€บแ€‘แ€ฌแ€ธแ€แ€ฒแ€ท แ€กแ€œแ€ฏแ€•แ€บแ€€แ€ญแ€ฏ แ€œแ€ฏแ€•แ€บแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹ zone แ€กแ€œแ€ญแ€ฏแ€€แ€บ แ€žแ€แ€บแ€™แ€พแ€แ€บแ€‘แ€ฌแ€ธแ€แ€ฒแ€ท model แ€แ€ฝแ€ฑแ€€

  • Stop model:zone แ€แ€…แ€บแ€แ€ฏแ€”แ€ฒแ€ท threshold แ€แ€…แ€บแ€แ€ฏ แ€žแ€แ€บแ€™แ€พแ€แ€บแ€•แ€ฑแ€ธแ€‘แ€ฌแ€ธแ€›แ€„แ€บ แ€กแ€ฒแ€ทแ€’แ€ฎแ€‡แ€ฏแ€ถแ€‘แ€ฒแ€™แ€พแ€ฌ min_points แ€กแ€›แ€ฑแ€กแ€แ€ฝแ€€แ€บแ€‘แ€€แ€บ obstacle แ€กแ€›แ€ฑแ€กแ€แ€ฝแ€€แ€บ แ€™แ€ปแ€ฌแ€ธแ€œแ€ฌแ€แ€ฒแ€ท แ€กแ€แ€ซ obstacle แ€•แ€ปแ€ฑแ€ฌแ€€แ€บแ€žแ€ฝแ€ฌแ€ธแ€แ€ฒแ€ท แ€กแ€‘แ€ญ robot แ€€แ€ญแ€ฏ แ€›แ€•แ€บแ€‘แ€ฌแ€‘แ€ธแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹

  • Slowdown model: obstacle แ€žแ€Šแ€บ แ€’แ€ฎ zone แ€‘แ€ฒแ€›แ€ฑแ€ฌแ€€แ€บแ€œแ€ฌแ€›แ€„แ€บแ€แ€ฑแ€ฌแ€ท speed แ€€แ€ญแ€ฏ แ€œแ€ปแ€ฑแ€ฌแ€ทแ€แ€ปแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹ slowdown_ration แ€‘แ€ฌแ€ธแ€•แ€ฑแ€ธแ€แ€ฒแ€ท แ€กแ€แ€ญแ€ฏแ€„แ€บแ€ธ แ€œแ€ปแ€ฑแ€ฌแ€ทแ€แ€ปแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ผแ€ฎแ€ธ min_points แ€€แ€แ€ฑแ€ฌแ€ท แ€กแ€•แ€ฑแ€ซแ€บแ€€ แ€€แ€ฑแ€ฌแ€„แ€บแ€”แ€ฒแ€ท แ€žแ€˜แ€ฑแ€ฌแ€แ€›แ€ฌแ€ธแ€กแ€แ€ฐแ€แ€ฐแ€•แ€ซแ€•แ€ฒแ‹

  • Limit model: แ€žแ€ฐแ€€แ€แ€ฑแ€ฌแ€ท linear_limit แ€”แ€ฒแ€ท angular_limit แ€‘แ€ฌแ€ธแ€•แ€ผแ€ฎแ€ธ velocity แ€€แ€ญแ€ฏ แ€€แ€”แ€บแ€ทแ€žแ€แ€บแ€•แ€ฑแ€ธแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹

  • Approach model: แ€žแ€ฐแ€€ แ€œแ€€แ€บแ€›แ€พแ€ญ robot speed แ€€แ€ญแ€ฏแ€›แ€šแ€ฐแ€•แ€ผแ€ฎแ€ธ sensor data แ€€แ€›แ€แ€ฒแ€ท obstacle แ€€แ€ญแ€ฏ แ€แ€ญแ€ฏแ€€แ€บแ€™แ€ญแ€”แ€ญแ€ฏแ€„แ€บแ€™แ€Šแ€บแ€ท แ€กแ€แ€ปแ€ญแ€”แ€บแ€€แ€ญแ€ฏแ€แ€ฝแ€€แ€บแ€•แ€ซแ€แ€šแ€บแ‹ แ€กแ€ฒแ€ทแ€’แ€ฎ แ€กแ€แ€ปแ€ญแ€”แ€บแ€žแ€Šแ€บ time_before_collision แ€†แ€ญแ€ฏแ€แ€ฒแ€ท parameter แ€แ€”แ€บแ€–แ€ญแ€ฏแ€ธแ€‘แ€€แ€บ แ€”แ€Šแ€บแ€ธแ€แ€ฒแ€ทแ€กแ€แ€ซ robot แ€€แ€ญแ€ฏ แ€กแ€›แ€พแ€ญแ€”แ€บ แ€œแ€ปแ€ฑแ€ฌแ€ทแ€แ€ปแ€žแ€ฝแ€ฌแ€ธแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹ ( obstacle แ€†แ€ฎแ€€แ€ญแ€ฏ แ€แ€›แ€ฏแ€”แ€บแ€ธแ€žแ€ฏแ€”แ€บแ€ธแ€€แ€ฌแ€ธ แ€™แ€Ÿแ€ฏแ€แ€บแ€•แ€ฒ แ€–แ€ผแ€ฑแ€ธแ€–แ€ผแ€ฑแ€ธแ€แ€ปแ€„แ€บแ€ธ แ€แ€ปแ€ฅแ€บแ€ธแ€€แ€•แ€บแ€™แ€šแ€บแ€•แ€ฑแ€ซแ€ทแ‹ ) แ€กแ€ฒแ€ทแ€’แ€ฎ time_before_collision seconds แ€€แ€ญแ€ฏ แ€กแ€™แ€ผแ€ฒแ€กแ€žแ€ฏแ€ถแ€ธแ€•แ€ผแ€ฏแ€”แ€ฑแ€™แ€พแ€ฌแ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹

zone แ€กแ€ฌแ€ธแ€œแ€ฏแ€ถแ€ธแ€”แ€ฒแ€ท แ€แ€ฝแ€ฒแ€–แ€€แ€บ แ€กแ€žแ€ฏแ€ถแ€ธแ€•แ€ผแ€ฏแ€œแ€ญแ€ฏแ€ทแ€€แ€ฑแ€ฌแ€„แ€บแ€ธแ€แ€ฌแ€€แ€แ€ฑแ€ฌแ€ท circle shape robot แ€•แ€ฒแ‹ แ€€แ€ปแ€”แ€บแ€แ€ฒแ€ทแ€€แ€ฑแ€ฌแ€„แ€บแ€แ€ฝแ€ฑแ€€แ€แ€ฑแ€ฌแ€ท แ€…แ€™แ€บแ€ธแ€€แ€ผแ€Šแ€บแ€ทแ€›แ€™แ€พแ€ฌแ€•แ€ฒแ‹

Name
Description
Type
Default

base_frame_id

Robot base frame.

string

โ€œbase_footprintโ€

odom_frame_id

Which frame to use for odometry.

string

"odom"

cmd_vel_in_topic

Input cmd_vel topic with desired robot velocity.

string

"cmd_vel_raw"

cmd_vel_out_topic

Output cmd_vel topic with output produced by Collision Monitor velocities.

string

โ€œcmd_velโ€

state_topic

Output the currently activated polygon action type and name. Optional parameter. No publisher will be created if it is unspecified.

string

""

transform_tolerance

Time with which to post-date the transform that is published, to indicate that this transform is valid into the future.

double

0.1

source_timeout

Maximum time interval in which source data is considered as valid.

double

0.2

base_shift_correction

Whether to correct source data towards to base frame movement, considering the difference between current time and latest source time. If enabled, produces more accurate sources positioning in the robot base frame, at the cost of slower performance. This will cause average delays for ~1/(2*odom_rate) per each cmd_vel calculation cycle. However, disabling this option for better performance is not recommended for the fast moving robots, where during the typical rate of data sources, robot could move unacceptably far. Thus reasonable odometry rates are recommended (~100 hz). (current time แ€”แ€ฒแ€ท latest source time แ€€แ€ฝแ€ฌแ€แ€ผแ€ฌแ€ธแ€แ€ปแ€€แ€บแ€€แ€ญแ€ฏ แ€žแ€ฏแ€ถแ€ธแ€•แ€ผแ€ฎแ€ธ base frame movement แ€›แ€ฒแ€ท source data แ€€แ€ญแ€ฏ correct แ€œแ€ฏแ€•แ€บแ€•แ€ฑแ€ธแ€แ€šแ€บแ‹ enable แ€œแ€ฏแ€•แ€บแ€‘แ€ฌแ€ธแ€›แ€„แ€บ performance แ€”แ€พแ€ฑแ€ธแ€™แ€šแ€บ แŠ แ€’แ€ซแ€•แ€ฑแ€™แ€šแ€บ แ€แ€ญแ€€แ€ปแ€™แ€šแ€บแ‹ delay แ€แ€ฑแ€ฌแ€ท ~1/(2*odom_rate) per each cmd_vel calculation cycle . Performance แ€™แ€ผแ€”แ€บแ€แ€ปแ€„แ€บแ€œแ€ญแ€ฏแ€ท disable แ€œแ€ฏแ€•แ€บแ€แ€ฌแ€€แ€ญแ€ฏ แ€แ€ฑแ€ฌแ€ท recommend แ€™แ€•แ€ฑแ€ธแ€•แ€ซแ€˜แ€ฐแ€ธ แ‹ แ€กแ€€แ€šแ€บแ disable แ€œแ€ญแ€ฏแ€€แ€บแ€›แ€„แ€บ robot แ€›แ€ฒแ€ท typical odometry rate แ€กแ€แ€นแ€ฝแ€„แ€บแ€ธแ€™แ€พแ€ฌแ€•แ€ฒ data sources แ€แ€ฝแ€ฑแ€แ€ฝแ€€แ€บแ€แ€ปแ€€แ€บแ€”แ€ฑแ€แ€ปแ€ญแ€”แ€บแ€™แ€พแ€ฌ robot แ€€ แ€แ€ฑแ€ฌแ€บแ€แ€ฑแ€ฌแ€บ แ€แ€ฑแ€ธแ€แ€ฑแ€ธแ€›แ€ฑแ€ฌแ€€แ€บแ€žแ€ฝแ€ฌแ€ธแ€•แ€ซแ€œแ€ญแ€™แ€บแ€ทแ€™แ€šแ€บแ‹ แ€กแ€žแ€„แ€บแ€ทแ€แ€ฑแ€ฌแ€บแ€†แ€ฏแ€ถแ€ธ odometry rate แ€แ€ฝแ€ฑแ€€แ€แ€ฑแ€ฌแ€ท 100Hz แ€แ€”แ€บแ€ธแ€€แ€ปแ€„แ€บแ€œแ€ญแ€ฏแ€ทแ€›แ€ฑแ€ธแ€‘แ€ฌแ€ธแ€•แ€ซแ€แ€šแ€บแ‹)

stop_pub_timeout

Timeout, after which zero-velocity ceases to be published. It could be used for other overrode systems outside Nav2 are trying to bring the robot out of a state close to a collision, or to allow a standing robot to go into sleep mode. (Zero-velocity case แ€™แ€พแ€ฌ robot แ€€แ€ญแ€ฏ timeout แ€œแ€ฏแ€•แ€บแ€–แ€ญแ€ฏแ€ทแ€กแ€แ€ฝแ€€แ€บparameter แ€–แ€ผแ€…แ€บแ€•แ€ซแ€แ€šแ€บแ‹แ€’แ€ฎ param แ€€แ€ญแ€ฏ Nav2 แ€›แ€ฒแ€ท แ€กแ€•แ€ผแ€„แ€บแ€แ€ฝแ€ฑแ€™แ€พแ€ฌแ€•แ€ซ แ€กแ€žแ€ฏแ€ถแ€ธแ€•แ€ผแ€ฏแ€”แ€ญแ€ฏแ€„แ€บแ€•แ€ซแ€แ€šแ€บแ‹ robot แ€€แ€ญแ€ฏ standing mode แ€แ€ญแ€ฏแ€ท sleep mode แ€แ€ญแ€ฏแ€ท แ€กแ€–แ€ผแ€…แ€บแ€”แ€ฒแ€ทแ€•แ€ฑแ€ซแ€ทแ‹)

double

0.1

polygons

List of data sources (laser scanners, pointclouds, etcโ€ฆ). Causes an error, if not specialized.

vector<string>

N/A

Polygons parameters

Name
Description
Type
Default

<polygon_name>.type

Type of polygon shape. Available values are polygon, circle. Causes an error, if not specialized.

string

N/A

<polygon_name>.points

Polygon vertexes, listed in {p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, ...} format (e.g. {0.5, 0.25, 0.5, -0.25, 0.0, -0.25, 0.0, 0.25} for the square in the front). Used for polygon type. Minimum 3 points for a triangle polygon. If not specified, the collision monitor will use dynamic polygon subscription to polygon_sub_topic for points in the stop/slowdown/limit action types, or footprint subscriber to footprint_topic for approach action type. (Polygon แ€€แ€ญแ€ฏ vector แ€”แ€ฒแ€ท 3D แ€กแ€žแ€ฏแ€ถแ€ธแ€•แ€ผแ€ฏแ€–แ€ญแ€ฏแ€ท แ€–แ€ผแ€…แ€บแ€”แ€ญแ€ฏแ€„แ€บ)

vector<double>

N/A

<polygon_name>.polygon_sub_topic

Topic to listen the polygon points from. Applicable only for polygon type and stop/slowdown/limit action types. Causes an error, if not specified and points are also not specified. If both points and polygon_sub_topic are specified, the static points takes priority. (polygon points topic แ€€แ€ญแ€ฏ แ€”แ€ฌแ€ธแ€‘แ€ฑแ€ฌแ€„แ€บแ€แ€šแ€บแ‹ Stop/slowdown/limit แ€…แ€แ€ฒแ€ท action types แ€แ€ฑแ€ฝแ€กแ€แ€ฝแ€€แ€บแ€•แ€ฒ แ€กแ€žแ€ฏแ€ถแ€ธแ€•แ€ผแ€ฏแ€แ€ฒแ€ท polygon type แ€–แ€ผแ€…แ€บแ€แ€šแ€บแ‹ topic แ€€แ€ญแ€ฏ specified แ€œแ€ฏแ€•แ€บแ€™แ€‘แ€ฌแ€ธแ€›แ€„แ€บ point แ€แ€ฝแ€ฑแ€œแ€Šแ€บแ€ธ specified แ€™แ€–แ€ผแ€…แ€บแ€˜แ€ฐแ€ธแ‹แ€กแ€€แ€šแ€บแ point แ€€แ€ฑแ€ฌ polygon_sub_topic แ€€แ€ฑแ€ฌ specified แ€‘แ€ฌแ€ธแ€›แ€„แ€บ static points แ€€แ€ญแ€ฏแ€•แ€ฒ แ€ฅแ€ฎแ€ธแ€…แ€ฌแ€ธแ€•แ€ฑแ€ธ แ€šแ€ฐแ€•แ€ซแ€™แ€šแ€บแ‹)

string

N/A

<polygon_name>.radius

Circle radius. Used for circle type. Causes an error, if not specialized.

double

N/A

<polygon_name>.action_type

Zone behavior model. Available values are stop, slowdown, limit, approach. Causes an error, if not specialized.

string

N/A

<polygon_name>.min_points

Minimum number of data readings within a zone to trigger the action. Former max_points parameter for Humble, that meant the maximum number of data readings within a zone to not trigger the action). min_points is equal to max_points + 1 value. (zone แ€€แ€”แ€ฑ action แ€€แ€ญแ€ฏ แ€–แ€ฝแ€„แ€บแ€ทแ€–แ€ญแ€ฏแ€ท แ€กแ€”แ€Šแ€บแ€ธแ€†แ€ฏแ€ถแ€ธ read แ€™แ€šแ€บแ€ท dataแ‹ maximum no of data แ€€แ€ญแ€ฏ zone แ€€ action แ€–แ€ฝแ€„แ€บแ€ทแ€™แ€•แ€ฑแ€ธแ‹ min_points แ€แ€ฝแ€ฑแ€€ max_points+1)

int

4

<polygon_name>.slowdown_ratio

Robot slowdown (share of its actual speed). Applicable for slowdown action type.

double

0.5

<polygon_name>.linear_limit

Robot linear speed limit. Applicable for limit action type.

double

0.5

<polygon_name>.angular_limit

Robot angular speed limit. Applicable for limit action type.

double

0.5

<polygon_name>.time_before_collision

Time before collision in seconds. Maximum simulation time used in collision prediction. Higher values mean lower performance. Applicable for approach action type.

double

0.2

<polygon_name>.simulation_time_step

Time iteration step for robot movement simulation during collision prediction. Higher values mean lower prediction accuracy but better performance. Applicable for approach action type. (collision prediction parameter , higher values แ€•แ€ฑแ€ธแ€›แ€„แ€บ แ€กแ€แ€ปแ€ญแ€”แ€บแ€€แ€ผแ€ฌแ€•แ€ผแ€ฎแ€ธ acrate แ€–แ€ผแ€…แ€บแ€™แ€šแ€บ , performance แ€•แ€ญแ€ฏแ€€แ€ฑแ€ฌแ€„แ€บแ€ธแ€™แ€šแ€บแ‹

double

0.1

<polygon_name>.visualize

Whether to publish the polygon in a separate topic.

bool

FALSE

<polygon_name>.polygon_pub_topic

Topic name to publish a polygon to. Used only if visualize is true.

string

<polygon_name>

Observation sources parameters

Name
Description
Type
Default

<source name>.type

Type of polygon shape. Could be scan, pointcloud or range.

string

"scan"

<source name>.topic

Topic to listen the source data from.

string

"scan"

<source name>.min_height

Minimum height the PointCloud projection to 2D space started from. Applicable for pointcloud type.

double

0.05

<source name>.max_height

Maximum height the PointCloud projection to 2D space ended with. Applicable for pointcloud type.

double

0.5

<source name>.obstacles_angle

Angle increment (in radians) between nearby obstacle points at the range arc. Two outermost points from the field of view are not taken into account (they will always exist regardless of this value). Applicable for range type. (angle increment แ€”แ€ฎแ€ธแ€…แ€•แ€บแ€แ€ฒแ€ท obstacle's point แ€”แ€ฒแ€ท range of arc แ€”แ€ฒแ€ท radian แ€€แ€ฝแ€ฌแ€Ÿแ€™แ€พแ€ฏแ‹ obstacle แ€›แ€ฒแ€ท แ€กแ€•แ€ผแ€„แ€บแ€˜แ€€แ€บpoints แ€แ€ฝแ€ฑแ€€แ€ญแ€ฏ regardแ€œแ€ฏแ€•แ€บแ€™แ€šแ€บแ‹)

double

PI/180(1 degree)

แ€”แ€™แ€ฐแ€”แ€ฌ

collision_monitor:
  ros__parameters:
    base_frame_id: "base_footprint"
    odom_frame_id: "odom"
    cmd_vel_in_topic: "cmd_vel_raw"
    cmd_vel_out_topic: "cmd_vel"
    state_topic: "collision_monitor_state"
    transform_tolerance: 0.5
    source_timeout: 5.0
    base_shift_correction: True
    stop_pub_timeout: 2.0
    polygons: ["PolygonStop", "PolygonSlow", "FootprintApproach"]
    PolygonStop:
      type: "circle"
      radius: 0.3
      action_type: "stop"
      min_points: 4  # max_points: 3 for Humble
      visualize: True
      polygon_pub_topic: "polygon_stop"
    PolygonSlow:
      type: "polygon"
      points: [1.0, 1.0, 1.0, -1.0, -0.5, -1.0, -0.5, 1.0]
      action_type: "slowdown"
      min_points: 4  # max_points: 3 for Humble
      slowdown_ratio: 0.3
      visualize: True
      polygon_pub_topic: "polygon_slowdown"
    PolygonLimit:
      type: "polygon"
      points: [0.5, 0.5, 0.5, -0.5, -0.5, -0.5, -0.5, 0.5]
      action_type: "limit"
      min_points: 4  # max_points: 3 for Humble
      linear_limit: 0.4
      angular_limit: 0.5
      visualize: True
      polygon_pub_topic: "polygon_limit"
    FootprintApproach:
      type: "polygon"
      action_type: "approach"
      footprint_topic: "/local_costmap/published_footprint"
      time_before_collision: 2.0
      simulation_time_step: 0.02
      min_points: 6  # max_points: 5 for Humble
      visualize: False
    observation_sources: ["scan", "pointcloud"]
    scan:
      type: "scan"
      topic: "/scan"
    pointcloud:
      type: "pointcloud"
      topic: "/intel_realsense_r200_depth/points"
      min_height: 0.1
      max_height: 0.5

Last updated