50 research outputs found
Behavior Trees in Robotics and AI: An Introduction
A Behavior Tree (BT) is a way to structure the switching between different
tasks in an autonomous agent, such as a robot or a virtual entity in a computer
game. BTs are a very efficient way of creating complex systems that are both
modular and reactive. These properties are crucial in many applications, which
has led to the spread of BT from computer game programming to many branches of
AI and Robotics. In this book, we will first give an introduction to BTs, then
we describe how BTs relate to, and in many cases generalize, earlier switching
structures. These ideas are then used as a foundation for a set of efficient
and easy to use design principles. Properties such as safety, robustness, and
efficiency are important for an autonomous system, and we describe a set of
tools for formally analyzing these using a state space description of BTs. With
the new analysis tools, we can formalize the descriptions of how BTs generalize
earlier approaches. We also show the use of BTs in automated planning and
machine learning. Finally, we describe an extended set of tools to capture the
behavior of Stochastic BTs, where the outcomes of actions are described by
probabilities. These tools enable the computation of both success probabilities
and time to completion
Improving the Parallel Execution of Behavior Trees
Behavior Trees (BTs) have become a popular framework for designing
controllers of autonomous agents in the computer game and in the robotics
industry. One of the key advantages of BTs lies in their modularity, where
independent modules can be composed to create more complex ones. In the
classical formulation of BTs, modules can be composed using one of the three
operators: Sequence, Fallback, and Parallel. The Parallel operator is rarely
used despite its strong potential against other control architectures as Finite
State Machines. This is due to the fact that concurrent actions may lead to
unexpected problems similar to the ones experienced in concurrent programming.
In this paper, we introduce Concurrent BTs (CBTs) as a generalization of BTs in
which we introduce the notions of progress and resource usage. We show how CBTs
allow safe concurrent executions of actions and we analyze the approach from a
mathematical standpoint. To illustrate the use of CBTs, we provide a set of use
cases in robotics scenarios
Synthesis of correct-by-construction behavior trees
In this paper we study the problem of synthesizing correct-by-construction Behavior Trees (BTs) controlling agents in adversarial environments. The proposed approach combines the modularity and reactivity of BTs with the formal guarantees of Linear Temporal Logic (LTL) methods. Given a set of admissible environment specifications, an agent model in form of a Finite Transition System and the desired task in form of an LTL formula, we synthesize a BT in polynomial time, that is guaranteed to correctly execute the desired task. To illustrate the approach, we present three examples of increasing complexity
Conditional behavior trees: Definition, executability, and applications
Behavior Trees (BTs) are gaining acceptance in robotics to specify action policies at the deliberative level. Their advantages include modularity, ease of use and increasing tool support. In this paper, we define Conditional Behavior Trees (CBTs) as an extension of BTs wherein actions are decorated considering pre-and post-conditions. CBTs improve on basic BTs in that they enable monitoring the execution of single actions by checking pre-and post-conditions, respectively. Since there might exist action sequences wherein some preconditions are violated, CBT executability may depend on the success/failure of specific actions. We developed an encoding of CBT executability into satisfiability of propositional formulas to be checked off-line in a publicly-available tool that computes the encoding for generic CBTs. For the kind of application scenarios and related behavior specifications that we consider, we show that our approach is effective and yields formal guarantees about the executability of deliberative policies designed as CBTs
On the Implementation of Behavior Trees in Robotics
There is a growing interest in Behavior Trees (BTs) as a tool to describe and
implement robot behaviors. BTs were devised in the video game industry and
their adoption in robotics resulted in the development of ad-hoc libraries to
design and execute BTs that fit complex robotics software architectures.
While there is broad consensus on how BTs work, some characteristics rely on
the implementation choices done in the specific software library used.
In this letter, we outline practical aspects in the adoption of BTs and the
solutions devised by the robotics community to fully exploit the advantages of
BTs in real robots. We also overview the solutions proposed in open-source
libraries used in robotics, we show how BTs fit in robotic software
architecture, and we present a use case example