Code Monkey home page Code Monkey logo

gpu_computing_in_robotics's Introduction

GPU Computing in Robotics

This tutorial concerns robotic data processing with CUDA. Content of the tutorial:

Lessons

Lesson 0: basic transformations

Lesson 0 - basic transformations

Lesson 1: down-sampling

Lesson 1 - down-sampling

Lesson 2: noise removal (naive)

Lesson 2 - noise removal (naive)

Lesson 3: nearest neighborhood search

Lesson 3 - nearest neighborhood search

Lesson 4: noise removal

Lesson 4 - noise removal

Lesson 5: normal vector computation

Lesson 5 - normal vector computation

Lesson 6: projections

Lesson 6 - projections

Lesson 7: basic semantics

Lesson 7 - basic semantics

Lesson 8: semantic nearest neighborhood search

Lesson 8 - semantic nearest neighborhood search

Lesson 9: data registration Iterative Closest Point

Lesson 9 - data registration Iterative Closest Point

Lesson 10: data registration semantic Iterative Closest Point

Lesson 10 - data registration semantic Iterative Closest Point

Lesson 11: data registration point to projection Iterative Closest Point

Lesson 11 - data registration point to projection Iterative Closest Point

Lesson 12: data registration Least Square Surface Matching (Ax=B solver on GPU)

Lesson 12 - data registration Least Square Surface Matching (Ax=B solver on GPU)

Lesson 13: data registration Plane To Plane (Ax=B solver on GPU)

Lesson 13 - data registration Plane To Plane (Ax=B solver on GPU)

Lesson 14: multi scan registration Point To Point (Ax=B solver on GPU)

Lesson 14 - multi scan registration Point To Point (Ax=B solver on GPU)

Lesson 15: multi scan registration (LS3D Least Square Surface Matching, Ax=B solver on GPU)

Lesson 15 - multi scan registration (LS3D Least Square Surface Matching, Ax=B solver on GPU)

Lesson 16: multi scan registration semantic Point To Point (Ax=B solver on GPU)

Lesson 16 - multi scan registration semantic Point To Point (Ax=B solver on GPU)

Lesson 17: path planning (via diffusion process)

Lesson 17 - path planning (via diffusion process)

Lesson 18: image matching (BFROST: Binary Features from Robust Orientation Segment Tests)

Lesson 18 - image matching (BFROST: Binary Features from Robust Orientation Segment Tests)

Lesson 19: laser range finder simulation

Lesson 19 - laser range finder simulation

Requirements

Software was developed and tested on LINUX UBUNTU 14.04, 16.04 with following libraries OpenGL, GLUT, PCL 1.5, CUDA>=7.5

Build

Each lesson is an independent software package, thus the following steps should be performed:

cd lesson_X
mkdir BUILD
cd BUILD
cmake -DCMAKE_BUILD_TYPE=Release ..
make
./lesson_X

Use Cases

fastSLAM

fastSLAM

This DEMO shows the parallel computing for fastSLAM. Each particle containes 3D map built based on registered Velodyne VLP16 3D semantic data. The result is corrected trajectory.

Execute

Run ./fastSLAM and read instructions in console

to run example

./fastSLAM ../dataset/model_reduced_pointXYZIRNL.xml

(check help in console, e.g. type c to start computations, software was tested on GF1050Ti, thus for this example the single scan calculation takes up to 40ms)

Particle filter localization

Particle filter localization

This DEMO shows the use of GPU for robust robot localization based on 3D semantic data.

Execute

Run ./particle_filter_localization_fast and read instructions in console

to run example

Run ./particle_filter_localization_fast ../dataset/metascan_pointXYZL.pcd ../dataset/odom_and_pointXYZL.xml

(check help in console, e.g. type i to start computations, software was tested on GF1050Ti, thus for this example the single particle filter calculation takes up to 50ms)

Robotic arm collision detection

Robotic arm collision detection

gpu_computing_in_robotics's People

Contributors

januszbedkowski avatar karolmajek avatar przemyslawmakosiej-tomtom 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.