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.

# 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.

# 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

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