Autonomous robots combine skills to form increasingly complex behaviors, called missions. While skills are often programmed at a relatively low abstraction level, their coordination is architecturally separated and often expressed in higher-level languages or frameworks. State machines have been the go-to language to model behavior for decades, but recently, behavior trees have gained attention among roboticists. Although several implementations of behavior trees are in use, little is known about their usage and scope in the real world.How do concepts offered by behavior trees relate to traditional languages, such as state machines? How are concepts in behavior trees and state machines used in actual applications? This paper is a study of the key language concepts in behavior trees as realized in domain-specific languages (DSLs), internal and external DSLs offered as libraries, and their use in open-source robotic applications supported by the Robot Operating System (ROS). We analyze behavior-tree DSLs and compare them to the standard language for behavior models in robotics:state machines. We identify DSLs for both behavior-modeling languages, and we analyze five in-depth.We mine open-source repositories for robotic applications that use the analyzed DSLs and analyze their usage. We identify similarities between behavior trees and state machines in terms of language design and the concepts offered to accommodate the needs of the robotics domain. We observed that the usage of behavior-tree DSLs in open-source projects is increasing rapidly. We observed similar usage patterns at model structure and at code reuse in the behavior-tree and state-machine models within the mined open-source projects. We contribute all extracted models as a dataset, hoping to inspire the community to use and further develop behavior trees, associated tools, and analysis techniques.
翻译:自主机器人将各种技能结合起来,形成日益复杂的行为,称为任务。 行为树提供的概念如何与传统语言(如国家机器)相关? 行为树的概念如何在行为树和国家机器的实际应用中使用? 本文是对行为树中的关键语言概念的研究,如在特定领域语言(DSLs)中实现的行为模式、作为图书馆提供的内部和外部DSL(DS),以及它们在机器人操作系统(ROS)支持的公开源码机器人应用中的使用。 我们分析行为树的使用情况和范围,但在现实世界中很少知道它们的使用和范围。 行为树提供的概念如何与传统语言(如国家机器)相关? 行为树和国家机器的概念如何在相对较低的抽象应用水平上被应用? 在行为树和外部DSLS(D)中实现的行为模式的主要语言概念在结构(DSLs)中被从结构中分离出来, 并且我们观察了在快速分析DSLSL(D)(D)(D)(SL)(SL)(D)(SL)(SL)(S(S)(D)(S(D)(SL)(SL)(S(D)(D)(D)(D)(D)(D)(S(D)(D)(D)(S(D)(D)(SL)(D)(D)(D)(D)))(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D))(D)(D)(D))(D)(D)(D)(D)(D)(D))(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D))))(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D))(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)(D)</s>