Component based architectures, where components are independent units that can be reused across applications have become increasingly popular. This as lead to the development of a long list of middlewares and integration tools, often available as free and open-source software.

Genom is a component generator developed by the robotics team of the LAAS laboratory for the LAAS Architecture for Autonomous Systems. It was originally designed for autonomous and terrestrial mobile robots, however it can be used in a broader set of applications.

genom3 (the current version of Genom) provides middleware independence to the components, to completely separate the algorithmic concerns of the components from the integration framework.

In Genom, each component is formally described using a language derived from OMG IDL (Interface Description Language). This allows to generate all the communication parts of the components as well as the internal sequencing logic automatically. The programmer can concentrate his efforts on the functional parts of the components and all generated components are guaranteed to have a predictable, homogeneous behavior.

genom3 supports different middlewares through the notion of templates. A template is a program that describes how the formal description of the component is going to be translated into actual code.

Templates also make it possible to support different programming languages.

This manual describes the Genom Component model in details. It also proposes an overview of the development process as well a practical tutorial using a simple Genom component. Other sections are reference material, presenting the detailed syntax of the Genom description language, the mappings from Genom IDL types to the component actual programming languages and a guide for code generation template writers.