机器人应用中的行为树与状态机
机器人学
2025-10-16 v3 软件工程
摘要
自主机器人组合技能以形成日益复杂的行为,称为任务。虽然技能通常在相对较低的抽象层次上编程,其协调在架构上被分离并常以更高层次的语言或框架表达。几十年来状态机一直是建模行为的首选语言,但近来行为树引起了机器人学家的关注。尽管已有若干行为树实现在使用,但关于它们在现实世界中的使用与范围却知之甚少。行为树所提供的概念如何与传统语言(如状态机)相关联?行为树和状态机中的概念在实际应用中如何使用?本文是对领域特定语言(DSL)中实现的行为树关键语言概念的研究,包括作为库提供的内部和外部 DSL,以及它们在由机器人操作系统(ROS)支持的开源机器人应用中的使用。我们分析行为树 DSL 并将其与机器人中行为模型的标准语言——状态机进行比较。我们识别出两种行为建模语言的 DSL,并深入分析了其中五个。我们挖掘使用所分析 DSL 的开源机器人应用仓库并分析其使用情况。我们识别出行为树与状态机在语言设计及为满足机器人领域需求所提供的概念方面的相似性。我们观察到行为树 DSL 在开源项目中的使用正在迅速增长。我们在所挖掘开源项目的模型结构和代码复用方面观察到行为树与状态机模型相似的使用模式。我们贡献了所有提取的模型作为一个数据集,希望启发社区使用并进一步发展行为树、相关工具和分析技术。
引用
@article{arxiv.2208.04211,
title = {Behavior Trees and State Machines in Robotics Applications},
author = {Razan Ghzouli and Thorsten Berger and Einar Broch Johnsen and Andrzej Wasowski and Swaib Dragule},
journal= {arXiv preprint arXiv:2208.04211},
year = {2025}
}
备注
Published at IEEE TSE as a journal extension of a preceding SLE paper (available as arXiv:2010.06256). arXiv admin note: text overlap with arXiv:2010.06256