github.devotd.
NewRobotics

behaviortree/behaviortree.cpp 4.9.0 — Asynchronous Behavior Tree C++ Library

The latest release 4.9.0 of the MIT-licensed C++17 behavior tree library behaviortree/behaviortree.cpp is out, and the README lists asynchronous Actions, concurrent execution, and runtime loading of XML trees as its main features.

Repositorybehaviortree/behaviortree.cpp ↗

The latest release 4.9.0 of the MIT-licensed C++17 behavior tree library behaviortree/behaviortree.cpp is out, and the README lists asynchronous Actions, concurrent execution, and runtime loading of XML trees as its main features.

GitHub description: Behavior Trees Library in C++. Batteries included.

stars
★ 4.3K
Forks
864
Language
C++
License
MIT
Latest release
4.9.0
Read original source ↗View on GitHub ↗

behaviortree/behaviortree.cpp is a C++ library that expresses and executes a robot's complex behaviors and task flows in a tree structure. A behavior tree is a way of grouping conditional branches and behavior nodes into a tree structure to decide which behavior to perform under which conditions and in what order. It supports reactive and asynchronous behavior tree execution. This repository uses the MIT license, is developed in C++, and has 4,256 stars. It was created in October 2018 and has continued ever since, and the latest release is 4.9.0.

The README describes 4.9 as aiming to be a fast framework that, on the basis of C++17, is flexible, easy to write, and highly reactive. Its main field of use is robotics, but it also states that it can be used to build game AI or to replace Finite State Machines. Its features include asynchronous Actions, concurrent execution of multiple Actions, runtime loading of XML-based trees, TreeNodes plugins, passing data between nodes, and logging and profiling of state transitions. The tree structure can be written in an XML file and read in at execution time, and nodes can be added as plugins to broaden its scope. The repository description states that the library includes the features you need by default.

However, exactly what changed in 4.9.0 can only be known by checking the release notes directly. No benchmark figures for performance comparison or adoption cases are given, and the momentum indicator is 2.1 on a 10-point scale. The feature description is generous, but since no performance evidence or real-world application cases could be confirmed, whether to adopt it requires separate verification.