/Lidar-Obstacle-Detection

Lidar obstacle detection using PCL and C++

Primary LanguageC++MIT LicenseMIT

Lidar-Obstacle-Detection

Lidar obstacle detection using PCL and C++

See the demo on YouTube

Approach

This project is aimed to show basic scenarios for processing point clouds to detect the obstacles, and use it to detect cars and trucks on a narrow street using Lidar data.

The detection pipeline includes the following steps:

Step 1: Load PCD data from file

Load PCD

Step 2: Apply voxel grid filtering

Filtering

Step 3: Segment the filtered cloud into two parts, road and obstacles

Segmentation

Step 4: Cluster the obstacle cloud

Clustering

Step 5: Render bounding boxes around the clusters

BBoxes

The segmentation, and clustering methods were created from scratch.

The final result looks like the animation below:

Final result

Installation

Ubuntu

$> sudo apt install libpcl-dev
$> cd ~
$> git clone https://github.com/olpotkin/Lidar-Obstacle-Detection.git
$> cd Lidar-Obstacle-Detection
$> mkdir build && cd build
$> cmake ..
$> make
$> ./environment

Windows

http://www.pointclouds.org/downloads/windows.html

MAC

Install via Homebrew

  1. install homebrew
  2. update homebrew
    $> brew update
  3. add homebrew science tap
    $> brew tap brewsci/science
  4. view pcl install options
    $> brew options pcl
  5. install PCL
    $> brew install pcl

Possible issue: 'simulation is required but glew was not found':

  • check details here

Prebuilt Binaries via Universal Installer

http://www.pointclouds.org/downloads/macosx.html
NOTE: very old version

Build from Source

PCL Source Github

PCL Mac Compilation Docs