PLEXIL Plan Editor and Execution Monitor (PPEEM)


In cooperation with NASA Ames Research Center (ARC) and Jet Propulsion Laboratory (JPL), IA Tech developed the plan editor and execution monitor for a new task execution language called PLEXIL (Plan Execution Interchange Language). PLEXIL is designed by the PLEXIL Team at ARC for the flexible and safe command execution. The key characteristics of PLEXIL are that it is compact, semantically clear, and deterministic given the same sequence of measurements. At the same time, the language is more expressive than command sequencing languages currently used in space missions. PLEXIL can represent simple branches, floating branches, loops, time- and event-driven activities, concurrent activities, sequences, and temporal constraints. The core syntax of the language is simple and uniform, providing flexibility in plan generation, while enabling the application of validation and testing techniques for safety assurance. The PLEXIL Plan Editor and Execution Monitor (PPEEM) provides an intuitive graphical user interface for creating and editing PLEXIL plans. PPEEM can also import PLEXIL plans that have been created by other planners for visualization and further editing. The edited plans can be exported to PLEXIL XML files and sent directly to the executive for execution. During plan execution, the Editor turns into an Execution Monitor which allows execution status to be visualized.

PPEEM is developed as an Eclipse plug-in implemented using the open-source tools and technologies of the Eclipse Platform. The following diagram shows the high-level design of PPEEM.

PPEEM Design Diagram

At the center of PPEEM is the Plan Object which is an instance of the Plan Model. The Plan Model is composed of a set of Java classes which are automatically generated from the PLEXIL Schema by the Eclipse Modeling Framework (EMF) tool.Since the PLEXIL Model does not contain any data for visual representation of a plan, such as the position and size of each node, a Diagram Model is used for that purpose. The Eclipse Graphical Editing Framework (GEF) and Tabbed Properties View are used for display and editing of the plan objects. They are displayed in the user interface as object views. When the user interact with one of these views to edit the plan, the user action creates a GEF command which is placed in the GEF CommandStack. The command will then get executed and data in the plan objects will be modified accordingly. The views are notified and are updated to reflect the changes.

The Domain Description is an external file that defines the commands, functions, and states for the targeted autonomous system. PPEEM makes use of the domain description in the creation of user interface views, for example, creating the parameter input fields of the selected command.

The plan can be saved to external files by the EMF persistence method which marshalls the PLEXIL objects into the XML documents. Two documents are saved: one for the PLEXIL data and one for the Diagram data. These files can be unmarshalled and loaded into PPEEM to become a PLEXIL plan. The persisted files are saved in the EMF's native Ecore format. A Plan Exporter is also developed to export the plan into the PLEXIL XML interchange format. Similarly, the Plan Importer is used to import PLEXIL XML plans that are created by hand or by other planners.

PPEEM connects to the Universal Executive (UE) and other PLEXIL subsystems through a CORBA interface. The user can send a PLEXIL plan directly to the UE through the addPlan CORBA invocation method provided by UE. UE also posts execution events to the CORBA EventQueue. PPEEM listens, processes, and displays the events so that the user can monitor plan execution.

A screen shot of PPEEM is shown below. More PPEEM screen shots can be found in snapshots folder.

PPEEM Snapshot