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()
.
- 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.
- Information on the demonstration format for the Learning from Demonstration framework is found here
- General information about the Human Robot Interaction framework in the README
- Information on the installation of the CUDA modules is found here
- 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
- General information about the
py_trees
library in the README
- 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
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
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.