Skip to content


Repository files navigation

Travis Status CircleCI Status


BOLeRo (Behavior Learning and Optimization for Robots) provides tools to learn behaviors for robots. It includes behavior representations as well as reinforcement learning, black-box optimization, evolutionary algorithms, and imitation learning. It provides a C++ and a Python interface to be efficient where this is required and to be flexible and convenient where performance is not an issue. Because the library provides a C++ interface, it is easy to integrate in most robotic frameworks, e.g. the robot operating system (ROS) or the robot construction kit (Rock).


On Ubuntu 18.04 and similar operating systems, you can install BOLeRo with

chmod +x

If you want to install BOLeRo for Python 3 from Ubuntu, make sure that cython3 is installed and set the following environment variable before you run the bootstrap script:

export PYTHON=python3

The installation script will create a new folder bolero-dev that contains all sources and built binaries. If you want to use BOLeRo, you have to source the file

source bolero-dev/

Detailed installation instructions (for other operating systems, with docker, etc.) can be found at the documentation.


The documentation is available here. It can be built in the directory doc/ with make. It will be located in doc/build/html/index.html. Building the documentation requires doxygen and sphinx.


BOLeRo contains the following directories:

  • benchmarks - contains benchmark scripts or scripts that reproduce results from scientific papers
  • bolero - contains the Python library
  • doc - contains the documentation
  • examples - contains examples that demonstrate how to use bolero
  • include - contains the header files that define the C++ interfaces
  • src - contains several C++ packages


BOLeRo is distributed under the 3-clause BSD license.

Cite BOLeRo

We published an article about BOLeRo in the International Journal of Advanced Robotic Systems. You can cite it with BibTeX:

  author = {Alexander Fabisch and Malte Langosz and Frank Kirchner},
  title ={BOLeRo: Behavior optimization and learning for robots},
  journal = {International Journal of Advanced Robotic Systems},
  volume = {17},
  number = {3},
  year = {2020},
  doi = {10.1177/1729881420913741},
  URL = {},
  eprint = {}