Skip to content

pockerman/cuberl

Repository files navigation

cuberl

Cuberl is a C++ library containing implementations of various reinforcement learning, filtering and planning algorithms. The library documentation (under development) can be found here CubeAI The Python flavor of the library can be found at PyCubeAI.

The following is an indicative list of examples. More tutorials can be found at CubeAI.

Examples

Introductory

Reinforcement learning

Path planning

Installation

The cubeai library has a host of dependencies: Installation instructions and dependencies can be found here.

Enabling PyTorch and CUDA

cuberl can be complied with CUDA and/or PyTorch support. If PyTorch has been compiled using CUDA support, then you need to enable CUDA as well. In order to do so set the flag USE_CUDA in the CMakeLists.txt to ON. cuberl assumes that PyTorch is compiled with the C++11 ABI.

Documentation dependencies

There are extra dependencies if you want to generate the documentation. Namely,

Note that if Doxygen is not found on your system CMake will skip this. On a Ubuntu/Debian based machine, you can install Doxygen using

sudo apt-get install doxygen

Similarly, install sphinx_rtd_theme using

pip install sphinx_rtd_theme

Install breathe using

pip install breathe

Install m2r2 using

pip install m2r2

Issues

undefined reference to [email protected].

You may want to check with nvidia-msi your CUDA Version and make sure it is compatible with the PyTorch library you are linking against

TypeError: Descriptors cannot be created directly.

This issue may be occur when using the TensorBoardServer in cuberl. This issue is related an issue with protobuf. See: https://stackoverflow.com/questions/72441758/typeerror-descriptors-cannot-not-be-created-directly for possible solutions.