Background
This repository is a distribution of the Extended State Machine (ESM) editor and the ESM intepreter.
The software system in this repository is based on ideas and research by Torsten Merz, Piotr Rudol, Mariusz Wzorek and Patrick Doherty which is described in the following papers:
T. Merz, P. Rudol and M. Wzorek, "Control System Framework for Autonomous Robots Based on Extended State Machines", International Conference on Autonomic and Autonomous Systems (ICAS'06), Silicon Valley, CA, 2006, pp. 14-14.
P. Doherty, J. Kvarnström, M. Wzorek, P. Rudol, F. Heintz and G. Conte, " HDRC3 - A Distributed Hybrid Deliberative/Reactive Architecture for Unmanned Aircraft Systems" In Kimon P. Valavanis, George J. Vachtsevanos, editors, Handbook of Unmanned Aerial Vehicles, pages 849–952. Springer Science+Business Media B.V.. ISBN: 978-90-481-9706-4, 978-90-481-9707-1, 2014.
A first version of the ESM editor was implemented by Piotr Rudol. The version distributed here was implemented by Tommy Persson and some of the design has been changed by Tommy Persson relative to what is described in the paper referenced above.
The first version of the ESM interpreter was implemented by Torsten Merz. Since the publication of the original paper, the language has been slightly modified. Please refer to the updated figures 2 and 4 of the paper included in the documentation provided here.
Licence and Copyright
The code in the ui subdirectory implements the ESM editor and is distributed under the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The code in the smi subdirectory implements the ESM interpreter and is distributed under the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The code in the examples subdirectory is distributed under the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Compilation
Compiling the Qt Based Tools
See README file in ui directory.
Compiling the ESM interpreter library
See README file in smi directory.