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. State Machines have been the go-to modeling language for decades, but recently, the language of Behavior Trees gained attention among roboticists. Originally designed for computer games to model autonomous actors, Behavior Trees offer an extensible tree-based representation of missions and are praised for supporting modular design and reuse of code. 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 concepts offered by behavior trees relate to traditional languages, such as state machines? How are behavior tree and state machine concepts used in applications? 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 language in robotics: state machines. We mine open-source repositories for robotics applications that use the languages and analyze this usage. We find similarity aspects between the two behavior modeling languages in terms of language design and their usage in open-source projects to accommodate the need of robotic domain. 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.
翻译:自主机器人将各种技能结合起来,形成日益复杂的所谓任务的行为。虽然这些技能往往在相对较低的抽象层次上编程,但其协调在结构上是分开的,往往以较高层次的语言或框架表达。国家机器是模拟语言,几十年来一直是模拟语言,但最近,行为树的语言在机器人学家中引起了注意。最初为计算机游戏设计,以模拟自主行为者而设计,行为树提供了一种可扩展的树本代表代表团,并被称赞支持模块设计和重新使用代码。尽管这些语言正在使用中,但其在结构上是分开的,而且往往以较高层次的语言或框架表达。行为树提供的概念如何与传统语言(如国家机器)相联系?行为树和状态机器概念在应用中如何被机器人专家所关注?我们介绍了对行为树的关键语言概念及其在现实世界机器人应用中的应用的研究。我们找出了行为树语言,并将它们的语义与在机器人中最著名的行为模拟语言(状态机器)的精度比较。但是,很少有人知道这些语言在现实世界中的使用,我们从行为中获取了一种开放源数据库,我们需要用这些语言来分析。