1、简介
与状态机不同,行为树强调执行动作,而不是状态之间的转换。
行为树是可组合的。可以重复使用简单的行为来构建复杂的行为。
在游戏领域,行为树已经比较流行了。主要用于维护游戏角色的各种动作和状态。
ROS2的导航框架Navigation2中引入了行为树来组织机器人的工作流程和动作执行,帮助各种机器人系统中实现任务规划。
C++开发者,可以使用 BehaviorTree.CPP 库,并结合 XML 的脚本语言将它们组装成树。
github:https://github.com/BehaviorTree/BehaviorTree.CPP
UI工具:https://www.behaviortree.dev/groot/
关于行为树的详解参见博客:
行为树 Behavoir Tree入门教程|讲的最清晰的教程(大概)
2、节点
行为树由各种节点组成,它们的基类都是 TreeNode;
主要分为四类:装饰器