Old Name of the new project
|Title||Old Name of the new project|
|Summary||Model-based Design of a Sailboat Autopilot|
|Keywords||Smart homes, pervasive computing, DiaSuite|
|Prerequisites||DA8003 Cyber-Physical Systems|
The core research question is to whether we can use Acumen for model-based design. This thesis aims to demonstrate this using a case study with a prototype sailboat. Technical challenges include modeling, instrumentation, localization, communication, and control
The first component of the work is build a prototype compiler that can target an embedded microcontroller platform (such as an arduino, raspberry pi, etc). This involves first selecting a series of more sophisticated examples that illustrate key features of controllers written within one Acumen object. For the purposes of synthesis the Acumen language itself may be extended with some specialized annotations that support this generation task and do not interfere with the semantics of Acumen models otherwise. Examples of such annotations may include special variable names that can be found on the target platform, special characteristics such as clock rate, etc. Next, corresponding "generated" C or Java code is written by hand and tested extensively. Then, a BNF for a sufficient subset of C or Java is defined in Scala. Next, an interpreter is written for this subset (to enable fast testing of the translator). Then, a translator that automates this translation is written. Then, property-based tests are built for this interpreter. Next, a pretty-printer that generates an ASCII file for compilation on the target domain is built, and all collected examples are used to generate this translation. Finally, a collection of performance benchmarks are developed and used to evaluate the timing accuracy of of the results of the compiler. It should be noted here that this not raw performance, but rather, accuracy in terms of consistency of the timing characteristics and overall behavior of what happens on the target platform compared to what happens on the model. Some data logging and data download capabilities may be added to support this type of comparison.
The second component is to identify related work about sail boat control, to read it, and write a coherent overview of this literature, and position the results in the context of this literature.
The third component of the work is to model the robot in Acumen based on a suitable physical prototype that can be used for physical testing. Data-collection facilities developed in the first part should be used to evaluate the accurate of the simulations and the actual performance of the boat. A clear method should be developed to separate error from measurement and actual error in performance (such as the actual position and direction of the boat).
The fourth component is writing up the results of the work.