Backhoe loader example

Backhoe loaders are specialised tractors. They are fitted with a loader unit at front, for pushing and carrying, and an extensible arm at rear, for digging, lifting and pushing.

We have developed a graded series of lab exercises for implementing elements of a simplified rear-arm controller. The exercises are designed to increase familiarity and understanding of the Esterel programming language and the synchronous paradigm.

screenshot of the backhoe simulator.
Figure 1: Screenshot of simulator

The exercises are accompanied by a simulator written in Tcl/Tk that, inspired and guided by the wristwatch example, interacts with xes to highlight programs as they are simulated. Figure 1 shows a screenshot. The three buttons at top-left are inputs to the controller, the three lamps below are outputs. The legs of the backhoe loader and the three arm segments move in response to controller signals and return feedback from simulated sensors. The check boxes at bottom-left make debugging with xes easier. The buttons at bottom-right control the simulation.

The simulator acts as a controlling environment to an Esterel program. It approximates the continuous dynamics in discrete steps, triggering a reaction whenever a signal is present. Certain outputs are sustained between reactions. This approach is coarse but effective. It ignores several important concerns in order to focus on fundamental issues of synchronous programming.

The simulation software and exercises may be downloaded provided that solutions are not made publicly available. We would like to preserve the challenge to students (the solutions to many other interesting examples are all too readily available via web search).

The simulator works under Windows but the Makefile will require adjustment. The answers and raw LaTeX can be provided to course supervisors(!) upon request. Questions, comments and suggestions for improvement are welcome.

Recent work shows how the continuous dynamics of the backhoe can also be programmed in a synchronous language extended with Ordinary Differential Equations (ODEs).

Backhoes are beautiful.