Abstract: | Robots or autonomous vehicles can be classified as reactive systems which means they have to react to stimuli in a deterministic fashion. Designing and programming such systems poses a particular challenge to the designer and engineer; especially as common sequential programming languages like "C" or LISP do not explicitly support concepts important for reactive systems such as concurrency or interrupts. Harel proposed a diagrammatic methodology called statecharts that extends the well known state transition diagrams using concepts of hierarchy, concurrency and guarded transitions. In this thesis we investigate the use of statecharts to program robots through the design of a textual programming language (State Transition Language STL). We introduce parametrised abstract states and stochastic events into our language. A compiler, written in "C++" and using Flex and YACC, translates the source code into a portable "C" program which, in conjunction with a run-time module, executes the STL program utilising a synchronous execution model. To test the language in practice, specific modules for two targets were implemented: The Khepera robot simulator and the LEGO robots used for teaching and research purposes at the AI department. While those tests were not overly comprehensive, our system performed well and no deficiencies were found
|