Autonomous robots combine a variety of skills to form increasingly complex behaviors called missions. While the skills are often programmed at a relatively low level of abstraction, their coordination is architecturally separated and often expressed in higher-level languages or frameworks. Recently, the language of Behavior Trees gained attention among roboticists for this reason. Originally designed for computer games to model autonomous actors, Behavior Trees offer an extensible tree-based representation of missions. However, even though, several implementations of the language are in use, little is known about its usage and scope in the real world. How do behavior trees relate to traditional languages for describing behavior? How are behavior tree concepts used in applications? What are the benefits of using them? We present a study of the key language concepts in Behavior Trees and their use in real-world robotic applications. We identify behavior tree languages and compare their semantics to the most well-known behavior modeling languages: state and activity diagrams. We mine open source repositories for robotics applications that use the language and analyze this usage. We find that Behavior Trees are a pragmatic language, not fully specified, allowing projects to extend it even for just one model. Behavior trees clearly resemble the models-at-runtime paradigm. We contribute a dataset of real-world behavior models, hoping to inspire the community to use and further develop this language, associated tools, and analysis techniques.
翻译:自主机器人将各种技能结合起来,形成日益复杂的行为,称为任务。虽然这些技能往往在相对较低的抽象层次上编程,但其协调在结构上是分开的,并常常以较高层次的语言或框架表达。最近,行为树的语言因此在机器人学家中引起注意。最初设计为计算机游戏设计,以模拟自主行为者,行为树提供了一种可扩展的以树为基础的代表任务。然而,尽管正在使用几种语言,但其在现实世界中的用法和范围却鲜为人知。行为树与描述行为的传统语言有何关系?行为树的概念在应用中如何使用?行为树的概念有什么好处?我们介绍对行为树中的关键语言概念及其在现实世界机器人应用中的用途的研究。我们确定行为树语言,并将其语义与最著名的行为模型语言作比较:状态和活动图。我们用这些语言来储存机器人应用的公开源库,并分析这种使用。我们发现,行为树系是一种实用的语言,而不是完全的模型。我们使用这种模型和模型,能够让数据项目扩展。我们使用一种现实的模型,我们使用一种正在运行的模型和模型。