Skip to content

VectorRobotics/humanoid_bt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

‼️ The repository is currently under development 🚧.‼️

This repository contains behavior trees for executing:

  1. Generalist humanoid navigation
  2. Robotic elevator riding

Introduction

Behavior Trees allow implementing complex task logic in an intuitive and interactable environment. They are extensively used in robotics.

BehaviorTree.CPP is tightly integrated with ROS and especially used in the Nav2 Project. We will be using the same here.

Read about behavior trees in contect of robotics here:

  1. Nav2 guide to BTs
  2. ROS2 integration for BehavirTree.CPP

BehaviorTree.CPP

BehaviorTree.CPP is C++ library for developing and integrating BTs. Architecture of the BT is stored in an .xml which is loaded at runtime. Individual tasks would be implemented as "Actions" or "Services".

BehaviorTree.CPP is frequently used in robotics and in the ROS ecosystem. BehaviorTree.ROS2 is a ready-to-use set of wrappers, which can be used to quickly implement TreeNodes that interact with ROS2.

Installation

The repository can be cloned as a ROS2 Jazzy package and also includes scripts to test BTs outside the ROS environment.

Steps

  1. Clone this repo in the src directory of your workspace.
    git clone https://github.com/VectorRobotics/humanoid_bt.git
  2. Clone the BehaviorTree.ROS2 repo in the src directory of your workspace.
    git clone https://github.com/BehaviorTree/BehaviorTree.ROS2.git
  3. Build
    cd ..
    sudo apt update
    rosdep update
    rosdep install --from-path src -i
    colcon build
    source install/setup.bash
    

Testing

Run

./build/humanoid_bt/test_bt 

All nodes in the test BT run async. You can inject Success (s), Running (r) or Failure (f) states in the node currently running.

Running with ROS2 🚧

TODO

Development

Using Groot2 (GUI)

Behavior Trees can be very intutively developed using Groot2. Download the application from their website.

Open the .btproj file in trees folder. Groot2 can directly export the .xml file. Learn more here.

Available Trees

elev_bt.xml

About

Prototyping behavior

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published