Embedding a Scheduler in Execution for a Planetary Rover
Keywords:Commit Window, Execution, Scheduling, Mars 2020, M2020
Scheduling often takes place in the context of execution. This reality drives several key design decisions: (1) when to invoke (re) scheduling, (2) what to do when the scheduler is running, and (3) how to use the schedule to execute scheduled activities. We define these design decisions theoretically in the context of the embedded scheduler and practically in the context of the design of an embedded scheduler for a planetary rover. We use the concept of a commit window to enable execution to use the previously generated schedule while (re) scheduling. We define the concepts of fixed cadence, event driven, and hybrid scheduling to control invocation of (re) scheduling. We define the concept of flexible execution to enable execution of the generated schedule to be adaptive within the response cycle of the scheduler. We present empirical results from both synthetic and planetary rover scheduling and execution model data that documents the effectiveness of these techniques at enabling the scheduler to take advantage of execution opportunities to complete activities earlier.