BOLeRo
Behavior Optimization and Learning for Robots
Contact person:
BOLeRo provides tools to learn behaviors for robots. That includes behavior representations as well as reinforcement learning, black-box optimization, and 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).
Website: | https://github.com/rock-learning/bolero |
Keywords: | Machine Learning, Evolutionary Computation, Behavior Learning, Optimization |
Status: | active |
Operating system: | Linux, MacOS, Windows |
Programming languages: | C++, Python |
Licence: | BSD-3-Clause / New BSD |
Ownership: | This software was originally developed by the DFKI as well as by the Robotics Research Group and the University of Bremen. Now this software is also being developed by third parties. For questions and suggestions, please refer to the contact persons. |
Software description
The goal of BOLeRo is to easily combine behavior learning algorithms with learning problems. In order to do that, BOLeRo provides learning algorithms (behavior search), behaviors, test environments and optimizers.
The whole communication between a behavior and an environment is done by real vectors. That includes the actions a behavior wants to perform and the sensory information generated by an environment.
The Environment defines the problem we try to solve. It encapsulates everything that happens outside of the behavior learning algorithm, that is
The whole communication between a behavior and an environment is done by real vectors. That includes the actions a behavior wants to perform and the sensory information generated by an environment.
The Environment defines the problem we try to solve. It encapsulates everything that happens outside of the behavior learning algorithm, that is
- it interprets and executes the actions
- there can be safety mechanisms integrated that limit velocities or accelerations or avoid collisions
- it perceives and interprets the state of the system, that is the real environment and the agent (for example a robot) itself
- it generates the feedback for the learning algorithm