GithubHelp home page GithubHelp logo

catree / oclslam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nlamprian/oclslam

0.0 1.0 0.0 7.37 MB

An implementation of a real-time 6-D SLAM framework in OpenCL.

License: MIT License

CMake 27.49% C++ 70.80% C 1.71%

oclslam's Introduction

OCLSLAM

OCLSLAM is an implementation of a simultaneous localization and mapping (SLAM) algorithm running on a GPU and written in OpenCL. The implemented pipeline relies on the random ball cover (RBC) data structure and ICP algorithm to perform efficiently the 3-D point cloud registration. The OctoMap framework is utilized in order to build a map and access it for localization, navigation, and exploration purposes.

cover

The project is under development, but there are already some rough results (see above). The system is able to register a point cloud and update a map of 10cm resolution at around 10Hz, with the CPU staying mainly unaffected.

Note

The project is being developed and tested on Ubuntu 14.04.2, on a system with an AMD R9 270X GPU.

The complete documentation is available here.

For more details on the implemented algorithms, take a look at the project's wiki.

Dependencies

The project has dependencies on the libfreenect, CLUtils, GuidedFilter, RandomBallCover, Eigen, ICP, and OctoMap libraries.

All these dependencies (apart from libfreenect) are automatically downloaded by cmake, if they are not available on your system. Please note that you'll have to configure Mercurial before Eigen is downloaded.

Examples

There are three applications. Two of them were developed as I was experimenting with the octomap API, and they demonstrate how to integrate a point cloud in an OcTree and ColorOcTree data structure. The third application implements the SLAM system. It builds a map, uses OpenGL to visualize the progress, and can store the map on disk.

Compilation

https://github.com/pAIgn10/OCLSLAM.git
cd OCLSLAM

mkdir build
cd build

cmake -DBUILD_EXAMPLES=ON ..
# or to build the tests too
cmake -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..

make

# to run the examples (from the build directory!)
./bin/oclslam_octree_example
./bin/oclslam_coloroctree_example
./bin/oclslam_slam

# to run the tests
./bin/oclslam_tests_oclslam
# or with profiling information
./bin/oclslam_tests_oclslam --profiling

# to install the libraries
sudo make install
# you'll need to copy manually the kernel 
# files into your own projects

# to build the docs
make doxygen
firefox docs/html/index.html

oclslam's People

Watchers

 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.