OCLSLAM  0.1.0
 Hosted by GitHub
OCLSLAM Documentation

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.


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.


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.


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.


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.


git clone https://github.com/nlamprian/OCLSLAM.git

mkdir build
cd build

# or to build the tests too


# to run the examples (from the build directory!)

# to run the tests
# 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