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.
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.