Building The Foundation of Robot Explanation Generation Using Behavior Trees - Robotics Institute Carnegie Mellon University

Building The Foundation of Robot Explanation Generation Using Behavior Trees

Zhao Han, Daniel Giger, Jordan Allspaw, Michael S. Lee, Henny Admoni, and Holly A. Yanco
Journal Article, ACM Transactions on Human-Robot Interaction (THRI), Vol. 10, No. 3, July, 2021

Abstract

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.

BibTeX

@article{Han-2021-125951,
author = {Zhao Han and Daniel Giger and Jordan Allspaw and Michael S. Lee and Henny Admoni and Holly A. Yanco},
title = {Building The Foundation of Robot Explanation Generation Using Behavior Trees},
journal = {ACM Transactions on Human-Robot Interaction (THRI)},
year = {2021},
month = {July},
volume = {10},
number = {3},
keywords = {behavior explanation, behavior trees, robot explanation generation, robot transparency, state summarization},
}