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.
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.
A lot of code is either inspired or copied from Nav2.
For this reason, we retain the same license and copyright.