Skip to content

ikoc92/SFND_Lidar_Obstacle_Detection

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sensor Fusion Nanodegree - LiDAR Obstacle Detection Project

Sensing with LiDAR

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.

This Project Includes

  • Custom 3-D random sample consensus (RANSAC) algorithm to segment ground plane from obstacles.
  • Clustering obstacles with euclidean distance clustering by using KD-Tree (k=3) data structure and nearest neighbor search algorithm.
  • Obstacles are bounded with box.

Classroom Workspace

The workspace provided in the SFND classroom comes preinstallated with everything that you need to finish the exercises and projects. Versions used by Udacity for this ND are as follows:

  • Ubuntu 16.04
  • PCL - v1.7.2
  • C++ v11
  • gcc v5.5

Note The [CMakeLists.txt] file provided in this repo can be used locally if you have the same package versions as mentioned above. If you want to run this project locally (outside the Udacity workspace), please follow the steps under the Local Installation section.

Local Installation

Ubuntu

  1. Clone this github repo

    Xenial-Trusty

    cd ~
    git clone -b xenial-trusty https://github.com/ismailkoch492/SFND_Lidar_Obstacle_Detection.git

    Bionic-Focal-Jammy

    cd ~
    git clone https://github.com/ismailkoch492/SFND_Lidar_Obstacle_Detection.git
  2. Execute the following commands in a terminal

    sudo apt install libpcl-dev
    cd ~/SFND_Lidar_Obstacle_Detection
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release .. 
    make
    ./environment

    This should install the latest version of PCL. You should be able to do all the classroom exercises and project with this setup.

Note The library version of PCL being distributed by the apt repository for 18.04 and 20.04 are both older than v1.11. The following links have the information regarding the versions-

You can either build PCL from source (for v1.11) or use the older version.

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
  6. Clone this github repo

    cd ~
    git clone https://github.com/ismailkoch492/SFND_Lidar_Obstacle_Detection.git
  7. Edit the CMakeLists.txt file as shown in Step 2 of Ubuntu installation instructions above.

  8. Execute the following commands in a terminal

    cd ~/SFND_Lidar_Obstacle_Detection
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release .. 
    make
    ./environment

If you get build errors related to Qt5, make sure that the path for Qt5 is correctly set in .bash_profile or .zsh_profile (Refer #45)

WINDOWS

Install via cvpkg

  1. Follow the steps here to install PCL.

  2. Clone this github repo

    cd ~
    git clone https://github.com/ismailkoch492/SFND_Lidar_Obstacle_Detection.git
  3. Edit the CMakeLists.txt file as shown in Step 2 of Ubuntu installation instructions above.

  4. Execute the following commands in Powershell or Terminal

    cd ~/SFND_Lidar_Obstacle_Detection
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release .. 
    make
    ./environment

Build from Source

PCL Source Github

PCL Mac Compilation Docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 97.2%
  • CMake 2.3%
  • C 0.5%