A Behavior Tree (BT) is a way to structure the switching between different tasks in an autonomous agent, such as a robot or a virtual entity in a computer game. BTs are a very efficient way of creating complex systems that are both modular and reactive. These properties are crucial in many applications, which has led to the spread of BT from computer game programming to many branches of AI and Robotics. In this book, we will first give an introduction to BTs, then we describe how BTs relate to, and in many cases generalize, earlier switching structures. These ideas are then used as a foundation for a set of efficient and easy to use design principles. Properties such as safety, robustness, and efficiency are important for an autonomous system, and we describe a set of tools for formally analyzing these using a state space description of BTs. With the new analysis tools, we can formalize the descriptions of how BTs generalize earlier approaches. We also show the use of BTs in automated planning and machine learning. Finally, we describe an extended set of tools to capture the behavior of Stochastic BTs, where the outcomes of actions are described by probabilities. These tools enable the computation of both success probabilities and time to completion.
翻译:行为树( BT) 是构建自动代理器( 如机器人或计算机游戏中的虚拟实体) 不同任务之间转换的一种方法。 BT 是创建模块化和被动反应的复杂系统的一个非常高效的方法。 这些属性在许多应用程序中至关重要, 导致BT从计算机游戏编程向AI和机器人的多个分支传播。 在这本书中, 我们首先介绍 BTs 。 然后我们描述 BTs 与自动规划和机器学习的关联, 并在许多情况下, 概括化早期转换结构。 这些想法随后被用作一套高效和易于使用的设计原则的基础。 安全性、 稳健性和效率等属性对于自主系统非常重要, 我们描述了一系列工具, 用于使用对 BTs 的状态空间描述进行正式分析。 我们可以使用新的分析工具, 正式描述 BTs 先前方法的通用性。 我们还展示了在自动规划和机器学习中使用 BTs 。 最后, 我们描述一系列扩展的工具, 用于捕捉Stachistic BTs 行为的行为, 以及能够实现这些动作的精度的精度 。