A Giotto-Based Helicopter Control System
We demonstrate the feasibility and benefits of Giotto-based control software development by reimplementing the autopilot system of an autonomously flying model helicopter. Giotto offers a clean separation between the platform-independent concerns of software functionality and I/O timing, and the platform-dependent concerns of software scheduling and execution. Functionality code such as code computing control laws can be generated automatically from Simulink models or, as in the case of this project, inherited from a legacy system. I/O timing code is generated automatically from Giotto models that specify real-time requirements such as task frequencies and actuator update rates. We extend Simulink to support the design of Giotto models, and from these models, the automatic generation of Giotto code that supervises the interaction of the functionality code with the physical environment. The Giotto compiler performs a schedulability analysis on the Giotto code, and generates timing code for the helicopter platform. The Giotto methodology guarantees the stringent hard real-time requirements of the autopilot system, and at the same time supports the automation of the software development process in a way that produces a transparent software architecture with predictable behavior and reusable components.
KeywordsTiming Code Device Driver Schedulability Analysis Functionality Code Model Helicopter
Unable to display preview. Download preview PDF.
- 1.J. Chapuis, C. Eck, M. Kottmann, M. Sanvido, and O. Tanner. Control of helicopters. In Control of Complex Systems, pages 359–392. Springer Verlag, 1999.Google Scholar
- 2.C. Eck. Navigation Algorithms with Applications to Unmanned Helicopters. PhD thesis 14402, ETH Zürich, 2001.Google Scholar
- 3.T. A. Henzinger, B. Horowitz, and C.M. Kirsch. Giotto: a time-triggered language for embedded programming. In Proc. First International Workshop on Embedded Software (EMSOFT), LNCS 2211, pages 166–184. Springer Verlag, 2001.Google Scholar
- 4.T.A. Henzinger and C.M. Kirsch. The Embedded Machine: predictable, portable real-time code. In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 315–326. ACM Press, 2002.Google Scholar
- 5.T.A. Henzinger, C.M. Kirsch, R. Majumdar, and S. Matic. Time safety checking for embedded programs. In Proc. Second International Workshop on Embedded Software (EMSOFT), LNCS. Springer Verlag, 2002.Google Scholar
- 7.M. Sanvido. A Computer Systemfor Model Helicopter Flight Control; Technical Memo 3: The Software Core. Technical Report 317, Institute for Computer Systems, ETH Zürich, 1999.Google Scholar
- 9.N. Wirth. A Computer Systemfor Model Helicopter Flight Control; Technical Memo 6: The Oberon Compiler for the StrongARM Processor. Technical Report 314, Institute for Computer Systems, ETH Zürich, 1999.Google Scholar
- 10.N. Wirth and J. Gutknecht. Projekt Oberon: The Design of an Operating System and Compiler. ACM Press, 1992.Google Scholar
- 11.http://www.cs.cmu.edu/afs/cs/project/chopper/www/heli_project.html. The Robotics Institute, Carnegie Mellon University.
- 12.http://controls.ae.gatech.edu/labs/uavrf/. The UAV Lab, Georgia Institute of Technology.
- 13.Aerial Robotics. http://gewurtz.mit.edu/research/heli.htm. Laboratory for Information and Decision Systems, Massachusetts Institute of Technology.
- 14.Autonomous Flying Vehicles. http://www-robotics.usc.edu/~avatar. Robotics Research Laboratory, University of Southern California.
- 15.Autonomous HelicopterProject. http://www.heli.ethz.ch. Measurement and Control Laboratory, ETH Zürich.
- 16.BEAR: Berkeley Aerobot. http://robotics.eecs.berkeley.edu/bear. Electronic Research Laboratory, University of California at Berkeley.
- 17.The Hummingbird Helicopter. http://sun-valley.stanford.edu/~heli. Aerospace Robotics Laboratory, Stanford University.
- 18.Marvin. http://pdv.cs.tu-berlin.de/MARVIN. Institute for Technical Computer Science, Technische Universität Berlin.
- 19.OSEKWorks Operating System. http://www.windriver.com/products/html/osekworks.html WindRiver.