As autonomous robots continue to be deployed near people, robots need to be able to explain their actions.
In this paper, we focus on organizing and representing complex tasks in a way that makes them readily explainable. Many actions consist of sub-actions, each of which may have several sub-actions of their own, and the robot must be able to represent these complex actions before it can explain them.
To generate explanations for robot behavior, we propose using Behavior Trees (BTs), which are a powerful and rich tool for robot task specification and execution. However, for BTs to be used for robot explanations, their free-form, static structure must be adapted.
In this work, we add structure to previously free-form BTs by framing them as a set of semantic sets {goal, subgoals, steps, actions} and subsequently build explanation generation algorithms that answer questions seeking causal information about robot behavior. We make BTs less static with an algorithm that inserts a subgoal that satisfies all dependencies.
We evaluate our BTs for robot explanation generation in two domains: a kitting task to assemble a gearbox, and a taxi simulation. Code for the behavior trees (in XML) and all the algorithms is available at github.com/uml-robotics/robot-explanation-BTs.
Figures
Behavior Trees
Modelling a Mobile Manipulation Kitting Task in Behavior Trees
The detail of this task was published in ICRA 2019. See the paper →
Go pick screw
Go place screw
Large gear insertion
Dynamic Behavior Insertion as Subgoal
Robot Explanation Algorithms with Behavior Trees
Robot Failure Explanation Algorithm with Behavior Trees
Taxi domain
While this work was originally designed for the context of the kitting task, we show here the potential of this work in a non-manipulation domain.