1 minute read

Summary

BT Studio is a web-based IDE designed for developing robotics applications using behavior trees, which are an increasingly popular method for organizing robot behaviors in a modular fashion. This week, I familiarized myself with the installation process of the tool and tested various example applications, during which I identified and reported several bugs. I also studied some literature about behavior trees.

BT Studio Structure

BT Studio’s frontend is built using React and is divided into three main components: a file browser, a file editor, and a tree diagram editor. Users can create Python actions using the file browser and editor, utilizing the py_trees library by Daniel Stohnier. Once the actions are defined, a behavior tree (BT) can be visually created and modified through the graphical editor using the available actions. The editor supports all flow control and decorator blocks from Davide Faconti’s BT.cpp library, including features like ReactiveFallback. Once an application is completed, it can be downloaded and executed within a ROS 2 environment.

basic_frontend

The frontend interacts with BT Studio’s Django backend, known as tree_api, via a REST API. This API provides functionality such as file storage and JSON-to-XML translation for the diagrams.

My GSoC Project

During my GSoC project, I will expand BT Studio’s capabilities to support sub-trees, enhancing the tool’s modularity and overall functionality. This will involve developing new tree_api endpoints and React components to provide the necessary composition tools. Additionally, I will create a library of popular robotic behaviors (e.g., person recognition) that can be reused through the composition tools.

GitHub Backlog

Opened

  • https://github.com/JdeRobot/bt-studio/issues/78
  • https://github.com/JdeRobot/bt-studio/issues/135
  • https://github.com/JdeRobot/bt-studio/issues/138
  • https://github.com/JdeRobot/bt-studio/issues/139
  • https://github.com/JdeRobot/bt-studio/issues/143
  • https://github.com/JdeRobot/bt-studio/issues/155

WIP

Closed

References