The fully programmable spacecraft: procedural sequencing for JPL deep space missions using VML (Virtual Machine Language)

VML (Virtual Machine Language) is an advanced procedural sequencing language which simplifies spacecraft operations, minimizes uplink product size, and allows autonomous operations aboard a mission without the development of autonomous flight software. The language is a mission-independent, high level, human readable script. It features a rich set of data types (including integers, doubles, and strings), named functions, parameters, IF and WHILE control structures, polymorphism, and on-the-fly creation of spacecraft commands from calculated values. VML has been used on six JPL deep space missions. It is currently in use on Mars Odyssey, Stardust, Genesis, and the Space Infrared Telescope Facility (SIRTF). It is slated for use on the 2005 Mars Reconnaissance Orbiter. The language and associated flight code has allowed spacecraft operations teams to place autonomy aboard deep space missions, implemented as operations products (blocks and sequences). The flight component of VML is implemented in C. This paper lays out language constructs and capabilities, code features, and VML operations development concepts.