In order to accomplish mission objectives, NASA must be able to plan and sequence assets (spacecraft and astronauts) in a short amount of time. Planning is a complex process that involves reasoning about thousands of constraints and uncertain conditions in order to produce a sequence of commands for execution onboard a spacecraft. The sequence produced must be nearly defect-free: defects introduce risk to both human and robotic assets. The NASA domain in particular requires reasoning about complex constraints and interactions between planned activities, as well as consideration for various uncertain events in the execution environment that can change the parameters of the planning space in near real time.
Several tools and methods exist for planning spacecraft activity. Generally, these fall into four categories: manual, automated, mixed-initiative, or autonomous. With the exception of these tools, mission planning at NASA has largely been done “by hand;” that is, without the use of tools to reason about complex constraint interactions, flight rule violations, etc. This has several shortcomings, but chief among them are time required to complete the task in this way, and the potential for error.
The Open Scheduling and Planning Interface for Exploration (Open SPIFe) is an integrated planning and scheduling toolkit based on hundreds of hours of expert observations, use, and refinement of state-of-the-art planning and scheduling technology for several applications within NASA. It was designed from the ground up with the needs of the operational user in mind, and it presents unique solutions to a number of problems common in other commercial and homegrown systems.
The SPIFe software consists of a set of plug-ins built using the Eclipse Rich Client Platform (RCP). The plug-ins provide a generalized user interface that enables user interaction with passive, mixed-initiative, or automated planning software. SPIFe provides several novel controls and visualizations to accomplish the planning task as well as a novel, generalized API for communicating with planning engines. It is also the first such GUI to be built within the Eclipse framework in support of integrated multi-mission application.
SPIFe currently consists of a timeline editor, activity module, constraint view, plan advisor view, and workspace. Each component provides at least one novel view into the state of a plan, and at least one novel way of interacting with the plan in support of completing the planning task.
The SPIFe tool is used during operations in several different capacities including collaborative negotiation about spacecraft activity and priorities, strategic planning for many days worth of activity, and tactical planning for near-term validation and uplink. It helps users interact with and understand the plan as it is developed through various novel visualizations and controls. SPIFe also helps users understand the feedback from automated planning systems and act upon that feedback. When the process is complete, the user(s) have created an activity plan that is free of constraint and flight rule violations, and has been verified by a mission-approved tool.