BehaviorTree.CPP is the most popular, production-ready framework for building reactive, modular, and debuggable robot behaviors.
Used by some of the most popular robotics frameworks:
Built for real-world robotics, not just demos
Behavior Trees enable complex behaviors with less code and more modularity, making them easier to maintain and extend, compared to traditional state machines.
Non-blocking actions and reactive behaviors as first-class citizens.
Build reusable building blocks, load custom nodes at runtime.
Separation of concerns between logic (XML) and implementation (C++).
Record, replay, and analyze state transitions for easier debugging.
The most widely used Robot Deliberation library in the ROS2 ecosystem. The main library is ROS-agnostic, but we provide seamless ROS2 integration.