Introducing the BehaviorTree.CPP library
BehaviorTree.CPP
is a modular C++ library for creating and running BTs in robotics, originally developed by Davide Faconti at Eurecat Centre Tecnològic of Catalonia. It’s designed for easy customization, allowing users to define custom nodes. As will be discussed in Chapter 8, this library is used in the ROS 2 navigation stack (Nav2) for tasks such as path planning and obstacle avoidance. Its extensibility makes it adaptable to various applications.
The following list outlines key elements of the BehaviorTree.CPP
library:
- Type-safe ports and blackboards: The library uses type-safe ports for data communication between nodes, ensuring that data passed through the tree is consistent and reduces runtime errors. In addition, the library provides a blackboard mechanism, a shared memory space where nodes can store and retrieve information. The blackboard supports type-safe access to stored data, improving the reliability...