Skip to content

Learn Behavior Trees from demonstration and interact with the robot at execution time to disambiguate target objects in the scene.

License

Notifications You must be signed in to change notification settings

matiov/disambiguate-BT-execution

Repository files navigation

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 object detection or marker recognition.
  • The Simulation module contains simulation environments (mainly based on a state machine simulator) for (mobile) manipulation tasks.
  • 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

Human Robot Interaction

  • General information about the Human Robot Interaction framework in the README
  • Information on the installation of the CUDA modules is found here

Perception Layer

  • General information about the Human Robot Interaction framework in the README
  • Information on the installation of the MaskRCNN module is found here
  • Instructions for the camera calibration are in the aruco_calibration package

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

Note on test routines for Copyright

The LICENSE notice is of type BSD-3-Clause License, that doesn't seem to be automatically recognised by the test_copyright.py script.
To ignore looking for the LICENSE notice, it is necessary to modify the main function in the source code of the test routine, located in /opt/ros/foxy/lib/python3.8/site-packages/ament_copyright/main.py. To do so, comment out the lines from 157 to 161 and substitute them with this block, which just removes the LICENSE check:

else:
    message = 'copyright=%s' % \
        (', '.join([str(c) for c in file_descriptor.copyrights]))
    has_error = False

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.

About

Learn Behavior Trees from demonstration and interact with the robot at execution time to disambiguate target objects in the scene.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages