论文标题
机器人应用中的行为树和状态机
Behavior Trees and State Machines in Robotics Applications
论文作者
论文摘要
自主机器人结合了技能,形成越来越复杂的行为,称为任务。尽管技能通常以相对较低的抽象级别进行编程,但它们的协调是建筑分离的,并且经常以高级语言或框架表达。数十年来,州机器一直是模拟行为的首选语言,但是最近,行为树在机器人主义者中引起了人们的关注。尽管正在使用的行为树的几种实现,但对它们在现实世界中的用法和范围知之甚少。行为树提供的概念与传统语言(例如州机器)有何关系?实际应用中使用行为树和状态机器的概念如何?本文是对行为树中的关键语言概念的研究,这些概念在特定于域的语言(DSL),内部和外部DSL中所实现的作为库,以及它们在机器人操作系统(ROS)支持的开源机器人应用中的使用。我们分析了行为树DSL,并将其与机器人技术中的行为模型的标准语言进行比较。我们确定两种行为模型语言的DSL,并深入分析五个。我们为使用分析的DSLS并分析其使用情况的机器人应用开源存储库。我们在语言设计方面确定了行为树和州机器之间的相似性以及为满足机器人域需求提供的概念。我们观察到,在开源项目中,行为树DSL的使用正在迅速增加。我们观察到模型结构以及在开放式开源项目中的行为树和州机器模型中的代码重复使用中的使用模式相似。我们将所有提取的模型作为数据集做出了贡献,希望激发社区使用并进一步开发行为树,相关的工具和分析技术。
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.