这个项目能做什么

BehaviorTree.CPP 是一个用于创建行为树的 C++17 框架。该项目表示其设计目标是灵活、易用、反应迅速且快速。其主要用例是机器人领域,但 README 指出它也可用于构建游戏 AI 或替代有限状态机。 项目重点介绍的关键特性: - 异步、非阻塞动作被视为一等公民。 - 反应式行为可以并发执行多个动作(正交性)。 - 树使用基于 XML 的领域特定脚本语言定义,并可在运行时加载,因此即使该库用 C++ 编写,树的形态也并非硬编码。 - 自定义树节点可以静态链接,也可以转换为插件并在运行时加载。 - 类型安全且灵活的机制支持树中节点之间的数据流。 - 日志/性能分析基础设施允许用户可视化、记录、回放和分析状态转换。 文档和社区资源包括官方网站 behaviortree.dev,提供教程和一般文档;自动生成的 Doxygen 页面;以及用于社区支持的 GitHub Discussions。项目提供名为 Groot2 的图形编辑器用于编辑行为树,同时也可以在任何文本编辑器中直接编辑 XML。 README 中描述的构建和安装选项: - 需要支持 C++17 的编译器。 - 支持三种构建系统:面向 ROS2 用户的 colcon(ament)、面向 Linux/Windows 的 conan,以及适合自行管理依赖用户的直接 CMake。 - Conan 构建需要 CMake 3.23 或更高版本。典型命令是 conan install,然后使用 conan-release 预设运行 cmake,再使用相同预设运行 cmake --build。 - 不使用 conan 时,如果 ZeroMQ 和 SQLite 等依赖已经安装,用户可以使用普通 CMake 命令进行配置和构建。 - 可通过 pixi run build 使用 pixi(conda 虚拟环境)工作流。 - 该库也可以通过 vcpkg 使用 behaviortree-cpp port 安装。 README 中链接了一个展示如何使用 BT.CPP 的示例应用。3.8 版本位于单独分支,可能会接收错误修复,而新功能仅在 master 分支上实现。商业支持和咨询可通过联系主要作者获得。该项目在 MIT 许可证下发布,版权在不同年份归属于 Davide Faconti 和 Michele Colledanchise。