Abstract— This paper presents the design and implementation of a Mission Control System (MCS) for an Autonomous Underwater Vehicle (AUV) based on Petri nets. In the proposed approach the Petri nets are used to specify as well as to execute the desired autonomous vehicle mission. The mission is easily described using an imperative programming language called Mission Control Language (MCL) that formally describes the mission execution thread. A Mission Control Language Compiler (MCL-C) able to automatically translate the MCL into a Petri net is described and a real-time Petri net player that allows to execute the resulting Petri net onboard an AUV are also presented.