Skip to content

Supervisor PathLookout

Goran Huskić edited this page May 21, 2017 · 6 revisions

The Path Lookout Supervisor

This supervisor checks the path ahead of the robot for obstacles, observes detected obstacles and stops the robot if necessary.

The robot is not stopped immediately, if an obstacle appears on the path, but the obstacle is observed for some time. Only if the obstacle is too near to the robot or stays on the path for too long (or a combination of both), the robot is stopped and path execution aborted. The idea is, not to react directly on obstacles, that are still far away and may move away, before the robot reaches their position (e.g. someone is crossing the path).

This is realized by assigning weights to the observed obstacles. The weight increases, the longer an obstacle is observed and the lower the distance to the robot is. If the weight of any obstacle exceeds a fixed threshold, an alert is fired and path execution aborted.

Configure Path Lookout

There are some parameters to configure the path lookout:

Name Type Default Description
~supervisor/path_lookout/obstacle_scale_distance float 1 see below
~supervisor/path_lookout/obstacle_scale_lifetime float 10 see below
~supervisor/path_lookout/path_width float 0.5 Width of the path in meters (should be at least the width of the robot).
~supervisor/path_lookout/segment_step_size int 5 Number of path segments that are approximated by a line to speed up computation.
~supervisor/path_lookout/scan_cluster_max_distance float 0.5 Maximum distance between two obstacle points, to combine them to one obstacle.
~supervisor/path_lookout/min_number_of_points int 3 Minimum number of points on one obstacle (smaller clusters are ignored).

Understanding the scale parameters

The scale parameters obstacle_scale_distance and obstacle_scale_lifetime are the base for computing the obstacle weight and thus determine, how fast the robot will stop, if an obstacle appears.

The actual weight is the sum of a distance weight, that increases quadratically, the nearer the obstacle is and a lifetime weight, that increases quadratically, the longer the obstacle is "alive", i.e. the longer it is observed.

obstacle_scale_distance defines the minimum distance at which the distance weight alone exceeds the threshold and obstacle_scale_lifetime defines the maximum life time at which the life time weight exceeds the threshold. That is any obstacle that is less than obstacle_scale_distance meters away or that is longer than obstacle_scale_lifetime seconds observed, will immediately stop the robot. Other obstacles may also stop it, if the sum of the two components gets too high.

Segment Step Size

To accelerate the computation, not every single path segment is checked but chunks of segment_step_size segments are approximated by a line.