  In this paper, we show how a planning algorithm can be used to automatically
create and update a Behavior Tree (BT), controlling a robot in a dynamic
environment. The planning part of the algorithm is based on the idea of back
chaining. Starting from a goal condition we iteratively select actions to
achieve that goal, and if those actions have unmet preconditions, they are
extended with actions to achieve them in the same way. The fact that BTs are
inherently modular and reactive makes the proposed solution blend acting and
planning in a way that enables the robot to efficiently react to external
disturbances. If an external agent undoes an action the robot reexecutes it
without re-planning, and if an external agent helps the robot, it skips the
corresponding actions, again without replanning. We illustrate our approach in
two different robotics scenarios.
