Robot software standards and middleware

Herman Bruyninckx, K.U. Leuven, November 12th, 2007

A lot of Free Software/Open Source Software (FOSS) projects exist in the domains of robotics and automation (almost none in the domain of manufacturing), but there is too much fragmentation and an almost complete lack of interoperability. This has serious negative effects on the rate of innovation in academic research as well as in industrial product development. A change in mentality of the developer communities is needed, in order to improve the situation drastically: increased modularity with standardized interfaces, improved code reuse, integration with Eclipse, etc.

Therefore, all stakeholders (so not only the developers!) must start talking to each other. Below are two documents that I wrote to stimulate those discussions. The RoSta (Robot Standards) project can provide a lot of logistic support during this process.

Discussion documents

Design of (Robotics) Software Standards is a document that explains my vision about how to standardize software for robotics, automation and manufacturing.
This paper presents a strategy to design standards for software libraries in robotic systems (or rather, in large-scale engineering systems in general). The strategy involves the separation between objects (“functionality”) and components (“architecture” and “activity”), and the introduction of four complementary levels in software standardization, in order to develop standards that are consistent and stable enough to survive the never-ending evolution in the domain of robotics. The major motivation behind the standards-making strategy is decoupling: (i) to divide the domain to be standardised into a family of complementary sub-standards (either hierarchically ordered, or unconnected) that are each as small as naturally possible, and that can be combined in various ways according to the needs of specific application domains; and (ii) to separate the abstract programming interface of each library from its concrete implementation(s).

Common Robotics, Automation and Manufacturing Operating System (CRAMOS) is a document that explains my vision about how to create a world-wide, large-scale open source software “operating system” for robotics, automation and manufacturing.
This document explains a vision about (i) the goals of an ecosystem of independent but interoperable software projects (available under Free Software/Open Source (FOSS) licences) to serve as an operating system or a middleware for all software aspects in robotics, automation and manufacturing; (ii) what could be the components of such a Common Robotics and Manufacturing Operating System (CRAMOS); and (iii) a strategy for achieving the stated goals. Many of the goals can be reached by rather straightforward technical refactoring of existing projects, in combination with the use of existing general purpose open software standards, and with the definition of new, CRAMOS-specific open standards. However, the major obstacle towards these goals is not technical, but social: the non-neglible reluctance of of FOSS projects to accept standards and to do refactoring for the sole purposes of improving interoperability with other projects without direct benefits to the own project.

Discussion topics

Here is a list of three concrete software topics that FOSS projects should (i) try to standardize as soon as possible, and (ii) decide on common strategic directions with respect to practical aspects, such as support tools, programming languages, policies, etc.:


Please, send your comments and additions to Herman Bruyninckx.
http://people.mech.kuleuven.be/~bruyninc/robotstandards/