Code Monkey home page Code Monkey logo

lidar-3d-obstacle-detection's Introduction

Lidar 3D Obstacle Detection using Point Clouds

This is the first project in Udacity's Sensor Fusion Nanodegree.

Project Specifications

This project is based on PCL library that is used to read and process point cloud data obtained using 3D Lidar sensor. Aim is to detect 3d obstacles (other vehicles) in the surrounding of the ego vehicle and create appropriate bounding boxes around them. This repository has code for both the custom (implemented by me) as well as PCL's built in segmentation and clustering methods.

Pipeline:

  1. Filter the point cloud data using Voxel grids.
  2. Seperate points associated with the road from points associated with the vehicles. For this 3D ransac is implemented.
  3. Using point cloud of obstacles, all the obstacles are seperated into different clusters. For this, an Euclidean clustering algorithm is implemented which uses KDTree for finding the nearest neighbours of the given point within a given radius.
  4. Each cluster is given a different color and also a bounding box is created for each cluster.

How to run

Clone the repo
git clone https://github.com/srane96/Lidar-Obstacle-Detection.git
Inside this directory, create a build directory and build the project
mkdir build && cd build
cmake ..
make
Then use the following command to run the code
./environment

Output

Code Structure

  1. Continuous input of pcd data is processed inside the function named cityBlockStream() in environment.cpp
  2. 3D Ransac is implemented in processPointClouds.cpp file, inside the function named Segment().
  3. Eucledean Clustering is implemented in fileprocessPointClouds.cpp, inside the CustomClustering().
  4. Custom KDtree is implemented in the file named src/kdtree.h with struct named PCKDTree.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.