Code Monkey home page Code Monkey logo

lidar-obstacle-detection's Introduction

Lidar Obstacle Detection

Project for Udacity's Sensor Fusion Engineer Nanodegree Program

Project Goals

  • Implement Obstacle detection on real PCD from a lidar
  • use pcl-library for general data handling and initial testing
  • implement following modules:
    • PCD filtering, for reducing computational cost, without loss of detail
    • Segment the filtered cloud into two parts, road and obstacles, using RANSAC based 3D-plane extraction
    • Cluster the obstacle cloud, using K-D Tree for 3D space.
    • Find bounding boxes for the clusters

Dependencies:

The configuration I used

Notes on some files & folders

  • README.md: this file.
  • images - folder with images for the readme-file
  • ./src/
    • environment.cpp - main function
    • ransac.cpp - function for RANSAC-based segmentation implementation
    • cluster_kdtree.cpp & kdtree.h - functions for KD-Tree based clustering implementation
    • processPointClouds.cpp & processPointClouds.h - functions for point-cloud processing. functions that use segmentation and clustering based on PCL-library are also present, but commented
    • /quiz/... - contains quiz functions for testing ransac and clustering implementation
    • /render/... - contains rendering functions for display
    • /sensors/.. - contains point-cloud-data files and functions for use with synthetic data.

Build and Run

clone this repository, enter the cloned directory/folder and build:

mkdir build && cd build
cmake ..
make

to run, use following from within the build folder:

./environment

Sample Results

Quiz-Ransac

To test performance of 2D and 3D RANSAC implementation, build:

cd src/quiz/ransac/
mkdir build && cd build
cmake ..
make

to view result of 3D RANSAC implementation, launch

./qizRansac3d

a sample result is shown below, where road-plane in highlighted in green and objects on road in red.

3D RANSAC sample image: alt text

KD-Tree / Euclidean Clustering

To test performance of KD-Tree implementation on 2D sample points, build:

cd src/quiz/cluster/
mkdir build && cd build
cmake ..
make

to view result of 3D RANSAC implementation, launch

./qizCluster

a sample result is shown below.

2D KD-Tree implementation sample: alt text

Lidar-Obstacle-Detection

once ./environment is launch pcd data is read from files at /sensors/data/pcd/data_1/ and plotted after filtering-segmentation-clustering, as shown in sample image below.

sample lidar-obstacle-detection image: alt text

Resources

lidar-obstacle-detection's People

Contributors

viks8dm avatar

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.