๐ก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 แแฒแ แแปแแบแแฒแทแแฑแฌแแบแแฝแฑแแแฑแฌแท แ แแบแธแแผแแบแทแแแพแฌแแฒแ
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
<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
<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