BehaviorTree.ROS2 icon indicating copy to clipboard operation
BehaviorTree.ROS2 copied to clipboard

BehaviorTree.CPP utilities to work with ROS2

BehaviorTree.ROS2

Test

This repository contains useful wrappers to use ROS2 and BehaviorTree.CPP together.

In particular, it provides a standard way to implement:

  • Behavior Tree Executor with ROS Action interface.
  • Action clients.
  • Service Clients.
  • Topic Subscribers.
  • Topic Publishers.

Our main goals are:

  • to minimize the amount of boilerplate.
  • to make asynchronous Actions non-blocking.

Documentation

  • ROS Behavior Wrappers
  • TreeExecutionServer
  • Sample Behaviors

Note that this library is compatible only with:

  • BT.CPP 4.6 or newer.
  • ROS2 Humble or newer.

Additionally, check plugins.hpp to see how to learn how to wrap your Nodes into plugins that can be loaded at run-time.

Acknowledgements

A lot of code is either inspired or copied from Nav2.

For this reason, we retain the same license and copyright.