/bolero

Behavior Optimization and Learning for Robots

Primary LanguageC++OtherNOASSERTION

Travis Status CircleCI Status

BOLeRo

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

Installation

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.

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.

Directories

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

License

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:

@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}
}