-
Notifications
You must be signed in to change notification settings - Fork 2
Lane Keeping Assistant (Obsolete)
We don't use it because from the global planner we get way-points that are completely in the middle of the lane.
Details
Receives global route from Global Planner and manipulates it according to the perceived surroundings. The route planner regularly checks which part of the route the car is driving at the moment and removes parts preceding waypoints from the route. In addition to that this class also calls other modules to callculate short term route changes, e.g. overtaking, readjusting the lane, driving ideal line.
Detects road surface markings (RSM) with semantic camera images. To achieve this goal this module is based mainly on den Hough Line Detection and the Canny Edge Detection. While there was some success in detecting the lines on the RGB-camera images, the absence of noise (e.g shadows , different lighting) made it alot easier to mask out and detect the RSM. The Algorithm forward each image received by the camera to a pipeline. This pipeline consists of image preprocessing, cutting out a region of interest (ROI), filtering out lines and calculating projections of the relevant two lines. The augment_image_with_lines exists mainly for visualisation purpose. The next part explains the functionality of the pipeline methods:
Applys a mask on the HSV representation to filter out the road. We dont filter out RSM as a color, because we found that we dont necessarily have RSM to detect so we might also have to detect edge of the street. The currently used Mask for the street in the Segmentation Camera has an lower bound of (150, 100, 100) and an upper bound of (151, 150, 150). These values arent fixed and should be optimised. Finally the Canny Algorithm is applied to create an image of all the lines
Creates a black polygon with a cutout and layers it infront of our image. We use this to eliminate unnecessary information. At this point the cutout are 55% of the bottom image.
This function applies the Hough Line Detection algorithm and returns the lanes in an array and where each lane is represented by [x_1, y_1, x_2, y_2] with [x_1, y_1] being the start and [x_2, y_2] being the endpoint.
This function receives all detected lines and applies a heuristic to get lines that might be the RSM. We choose to select all lines within an angle threshold. For this we set the image bottom line as reference line. This heuristic should be discussed and refined because it currently seems to be highly subsceptible to error.
This function chooses the lines closest to the middle of the image at y = image_height and interpolates them so we can draw a long projection into the original image. The criteria of choosing the closest lines as lane boundaries is up for discussion.
- GPS
- Perception
- Route Info (Position, ...)
- Route Info Batch (Position, ...)