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
wget https://raw.githubusercontent.com/rock-learning/bolero/master/bootstrap_bolero.sh
chmod +x bootstrap_bolero.sh
./bootstrap_bolero.sh
If you want to install BOLeRo for Python 3 from Ubuntu, set the following environment variables:
export PYTHON=python3
export CYTHON=cython3 # make sure Cython for Python 3 is available!
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 env.sh:
source bolero-dev/env.sh
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.
We published an article about BOLeRo in the International Journal of Advanced Robotic Systems. You can cite it with BibTeX:
@article{bolero,
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 = {https://doi.org/10.1177/1729881420913741},
eprint = {https://doi.org/10.1177/1729881420913741}
}