/learn-BTs-from-demo

Learn Behavior Trees from demonstration for manipulation tasks.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Overview

Repository containing different methods to automatically generate a Behavior Tree (BT) for robotic tasks. Mainly Python based.
In the learning methods, the BT is represented as a string, e.g. ['s(', 'action1', 'action2', ')'] and then the string is converted in a py_tree BT.

Common behaviors and BT methods are defined in the behaviors module.
Application specific behaviors will be defined in the application's dedicated module, together with the extension of the method get_node_from_string().

Contents

  • The BT-learning module contains methods to automatically generate BTs, e.g.: Learning from Demonstration, Genetic Programming, Planners.
  • The Perception Layer module contains ROS packages realizing marker recognition.
  • The World Interface module contains interfaces to the ABB robots and to the camera in case of vision-based applications.

Please see the documentation in every module for more detailed information.

Available documentation

Behavior Tree Learning

  • Information on the demonstration format for the Learning from Demonstration framework is found here

Py Trees

  • General information about the py_trees library in the README

World Interface

  • General information about the interface with the ABB robots in the README
  • Information on the usage of the LfD GUI is found here
  • Instructions for robot visualization and spawning are in the robot_bringup package

DISCLAIMER

The code providing the communication from the proposed framework to the ABB robot is protected by copyright and will not be disclosed. The provided robot interfaces are meant to interact with ABB robots, but can be modified to be compliant with other robot hardware. Said code, as well as the RAPID routines running inside the robot controlle, can be provided upon request. Any case will be treated individually.