The Generator of Modules GenoM is a tool to design real-time software architectures. It encapsulates software functions inside independent components. GenoM is more specifically dedicated to complex on-board systems, such as autonomous mobile robots or satellites, that require:
- The integration of heterogeneous functions with different real-time constraints and algorithm complexities (control of sensors and actuators, data processings, task planification, etc.).
- An homogeneous integration of these functions in a control architecture which requires coherent and predictable behaviors (starting, ending, error handling), and standard interfaces (configuration, control flow, data flow).
- The management of parallelization, physical distribution and portability of the functions.
- Simple procedures to add, modify or (re)use the functions by non-specialists
GenoM generates the source code of components by using:
- A generic template, common for all components. This guarantees that all components share the same consistent behaviour. The template itself is not part of GenoM, so that different template kind can be developped easily.
- A formal description of the components interface. This description is based on a simple language using OMG IDL for data types definitions and a custom syntax for the description of a more detailed component model.
The project is released under an open-source, BSD-like license.
Developer: Anthony Mallet, Antonio Franchi, Arnaud Degroote, Arthur Bit-Monnot, Aurélie Clodic, Burak Yuksel, Christelle Ecrepont, Christophe Reymann, Daniel Sidobre, Davide Bicego, Ellon Paiva Mendes, Florent Lamiraux, François Ingrand, Guilhem Saurel, Hermes Tello Chavez, Joseph Mirabel, Jules Waldhart, Justin Carpentier, Jérôme Manhes, Kévin Desormeaux, Malik Ghallab, Marco Tognon, Markus Ryll, Martin Jacquet, Matthieu Herrb, Michele Furci, Nicolas Mansard, Nicolas Staub, Olivier Stasse, Patrick Danes, Pierre Narvor, Pierrick Koch, Quentin Labourey, Quentin Sable, Rohan Budhiraja, Simon Lacroix, Victor Arellano
Reporter: Hazem Mliki