  In this paper, we show how behaviour trees (BTs) can be used to design
modular, versatile, and robust control architectures for mission-critical
systems. In particular, we show this in the context of autonomous underwater
vehicles (AUVs). Robustness, in terms of system safety, is important since
manual recovery of AUVs is often extremely difficult. Further more, versatility
is important to be able to execute many different kinds of missions. Finally,
modularity is needed to achieve a combination of robustness and versatility, as
the complexity of a versatile systems needs to be encapsulated in modules, in
order to create a simple overall structure enabling robustness analysis. The
proposed design is illustrated using a typical AUV mission.
