Programming complex embedded systems involves reasoning through intricate system interactions along lengthy paths between sensors, actuators and control processors. This is a challenging, time-consuming and error-prone process requiring significant interaction between engineers and software programmers. Furthermore, the resulting code generally lacks modularity and robustness in the presence of failure. Model-based programming addresses these limitations, allowing engineers to program reactive systems by specifying high-level control strategies and by assembling commonsense models of the system hardware and software. In executing a control strategy, model-based executives reason about the models ``on the fly,'' to track system state, diagnose faults and perform reconfigurations. This paper develops the Reactive Model-based Programming Language (RMPL) and its executive, called Titan. RMPL provides the features of synchronous, reactive languages, with the added ability of reading and writing to state variables that are hidden within the physical plant being controlled. Titan executes an RMPL program using extensive component-based declarative models of the plant to track states, analyze anomalous situations and generate novel control sequences. Within its reactive control loop, Titan employs propositional inference to deduce the system's current and desired states, and it employs model-based reactive planning to move the plant from the current to the desired state.
Keywords: constraint programming, model-based autonomy, model-based execution, model-based programming, model-based reasoning, robotic execution, synchronous programming.
[Postscript (1,055k)] [PDF (278k)]
Invited paper in the Proceedings of IEEE: Special Issue on Modeling and Design of Embedded Software, vol. 9, no. 1, pp. 212-237, 2003..
Last updated March 12th, 2003. Direct feedback to Brian C. Williams (williams@mit.edu)