Behavior trees in action: a study of robotics applications

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.

[1]  Petter Ögren,et al.  How Behavior Trees modularize robustness and safety in hybrid systems , 2014, 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[2]  Steve Sparks,et al.  Global Volcanic Hazards and Risk: Online Appendix A , 2015 .

[3]  Michele Colledanchise,et al.  Behavior Trees in Robotics , 2017 .

[4]  Petter Ögren,et al.  Increasing Modularity of UAV Control Systems using Computer Game Behavior Trees , 2012 .

[5]  G. Michael Youngblood,et al.  Representational complexity of reactive agents , 2010, Proceedings of the 2010 IEEE Conference on Computational Intelligence and Games.

[6]  Krzysztof Czarnecki,et al.  An Exploratory Study of Cloning in Industrial Software Product Lines , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[7]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[8]  Mario Kusek,et al.  Extending the JADE Agent Behaviour Model with JBehaviourTrees Framework , 2011, KES-AMSTA.

[9]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[10]  Olivier Casse,et al.  SysML: Object Management Group (OMG) Systems Modeling Language , 2018 .

[11]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[12]  Patrizio Pelliccione,et al.  Robotics software engineering: a perspective from the service robotics domain , 2020, ESEC/SIGSOFT FSE.

[13]  Andreas Klöckner Interfacing Behavior Trees with the World Using Description Logic , 2013 .

[14]  Dimos V. Dimarogonas,et al.  The Advantages of Using Behavior Trees in Mult-Robot Systems , 2016 .

[15]  Petter Ögren,et al.  How Behavior Trees Modularize Hybrid Control Systems and Generalize Sequential Behavior Compositions, the Subsumption Architecture, and Decision Trees , 2017, IEEE Transactions on Robotics.

[16]  Petter Ögren,et al.  Learning of Behavior Trees for Autonomous Agents , 2015, IEEE Transactions on Games.

[17]  Petter Ögren,et al.  A Survey of Behavior Trees in Robotics and AI , 2020, Robotics Auton. Syst..

[18]  Leeat Yariv Online Appendix , 2008 .

[19]  Francesco Rovida,et al.  Extended behavior trees for quick definition of flexible robotic tasks , 2017, 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[20]  Ian Millington,et al.  Artificial Intelligence for Games , 2006, The Morgan Kaufmann series in interactive 3D technology.

[21]  Juan Chen,et al.  Development and Composition of Robot Architecture in Dynamic Environment , 2018, RCAE 2018.

[22]  Petter Ögren,et al.  Behavior Trees in Robotics and AI: An Introduction , 2017, ArXiv.

[23]  Patrizio Pelliccione,et al.  Variability Modeling of Service Robots: Experiences and Challenges , 2019, VaMoS.

[24]  Patrizio Pelliccione,et al.  High-level mission specification for multiple robots , 2019, SLE.

[25]  Andrzej Wasowski,et al.  Influencers of Quality Assurance in an Open Source Community , 2018, 2018 IEEE/ACM 11th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE).

[26]  Patrizio Pelliccione,et al.  PROMISE: High-Level Mission Specification for Multiple Robots , 2020, 2020 IEEE/ACM 42nd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion).

[27]  Melvin E. Conway,et al.  Design of a separable transition-diagram compiler , 1963, CACM.

[28]  Nelly Bencomo,et al.  Models@run.time , 2014, Lecture Notes in Computer Science.

[29]  Tony Hoare,et al.  Hierarchical Program Structures , 1972 .

[30]  Juha-Pekka Tolvanen,et al.  How Domain-Specific Modeling Languages Address Variability in Product Line Development: Investigation of 23 Cases , 2019, SPLC.

[31]  Martial Hebert,et al.  An integrated system for autonomous robotics manipulation , 2012, 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[32]  Jonathan Bohren,et al.  The SMACH High-Level Executive [ROS News] , 2010 .

[33]  Ian Millington 8 – Board Games , 2009 .

[34]  Steve Cousins,et al.  The SMACH High-Level Executive , 2010 .

[35]  Carlo Ghezzi,et al.  Specification Patterns for Robotic Missions , 2019, IEEE Transactions on Software Engineering.

[36]  Oskar von Stryk,et al.  Human-robot collaborative high-level control with application to rescue robotics , 2016, 2016 IEEE International Conference on Robotics and Automation (ICRA).