SFND_Project_01_Lidar_Obstacle_Detection

View the Project on GitHub

Lidar Obstacle Detection

Goals

In this project, everything that was learned for processing point clouds, is used to detect cars and trucks on a narrow street using lidar. The detection pipeline follows the covered methods, filtering, segmentation, clustering, and bounding boxes. Also the segmentation, and clustering methods are created from scratch using lessons guidelines for reference. The finished result places bounding boxes around all obstacles on the road.

Lidar sensing gives us high resolution data by sending out thousands of laser signals. These lasers bounce off objects, returning to the sensor where we can then determine how far away objects are by timing how long it takes for the signal to return. Also we can tell a little bit about the object that was hit by measuring the intesity of the returned signal. Each laser ray is in the infrared spectrum, and is sent out at many different angles, usually in a 360 degree range. While lidar sensors gives us very high accurate models for the world around us in 3D, they are currently very expensive, upwards of $60,000 for a standard unit.

Results

Obstacle Detection

Bounding boxes enclose vehicles, and the pole on the right side of the vehicle. There is one box per detected object. Most bounding boxes can be followed through the lidar stream, and major objects don’t lose or gain bounding boxes in the middle of the lidar stream. The code used for segmentation uses the 3D RANSAC algorithm developed in the course lessons. The code used for clustering uses the Euclidean clustering algorithm along with the KD-Tree developed in the course lessons.

Also, the project code must compile without errors using cmake and make. The code does not need to sacrifice comprehension, stability, or robustness for speed. However, it follows good and efficient coding practices.