The SmartMDSD Toolchain is an Integrated Development Environment (IDE) for robotics software to support system composition by realizing the RobMoSys composition structures (i.e., the RobMoSys meta-models) for the three composition tiers in the RobMoSys Ecosystem.
Therefore, SmartMDSD Toolchain provides textual and graphical model editors, and implements a fully fledged code-generator that generates C++ code for SmartSoft Software Components. Moreover, dedicated model editors of the SmartMDSD Toolchain support the different developer roles in their individual responsibilities according to their respective modeling view. Existing content, such as the Flexible Navigation Stack developed with the SmartMDSD Toolchain demonstrates the usability of the modeling tools and provides initial content to be used and extended by external parties.
The SmartMDSD Toolchain implements the RobMoSys composition structures using Eclipse Ecore.
The figure on the right illustrates by the example of the component meta-model how the RobMoSys composition structures are realized based on Eclipse Ecore. This and many other meta-models are implemented within the SmartMDSD Toolchain and are used to provide dedicated model editors for specific roles at the lower Tiers 2 and 3.
The SmartMDSD Toolchain supports in modeling domain structures (i.e., domain models) that conform to the RobMoSys composition structures defined at Tier 1 (see above). On the one hand, this means that the Toolchain internally implements the related Service-Definition Metamodel (see the Ecore diagram below) as part of Tier 1, and, on the other hand, the Toolchain provides relevant model editor (see the Eclipse screenshot below) to support the involved Service Designer role in the definition of domain models (i.e., service definitions). These domain models are used at the next Tier 3 to (a) implement components that realize specific services and to (b) compose systems by interconnecting required and provided services of related components.
The SmartMDSD Toolchain screenshot below shows an excerpt of the domain models of the Flexible Navigation Stack.
All the domain models of the Flexible Navigation Stack and other stacks are publicly available for immediate use in the Github repository:
The main developer role at this Tier 2 is the Service Designer.
The Tier 3 is about adding content to the Ecosystem in the form of reusable software components and systems. The SmartMDSD Toolchain supports in developing components and in composing previously developed components to systems, as well as deploying systems to robotic target platforms.
Similar to Tier 2, the SmartMDSD Toolchain implements several RobMoSys composition structures (i.e., Ecore-based meta-models) for Tier 3 related to component development, system composition, and deployment. On the one hand, at this Tier 3, Component Suppliers can develop individual components that realize selected service definitions (i.e., domain models from Tier 2). On the other hand, System Builders can compose components to new systems. Other roles, such as Performance Designer, Safety Engineer, and Behavior Developer cooperatively contribute to a system from different modeling viewpoints. This Tier 3 consists of the majority of Toolchain users as these are all the Ecosystem participants who provide concrete content and who compete with building block alternatives with unique selling points thus altogether realizing a robotics component and system market.
The figure below shows the Component-Definition Metamodel based on Ecore as an example. Several other meta-models are realized within the SmartMDSD Toolchain as well. A most recent version of the meta-model realizations can be found in the SmartMDSD Toolchain sources (which are open-source using the BSD3 License).
Based on the Component-Definition Metamodel (shown in the Ecore diagram above), the SmartMDSD Toolchain implements a graphical Component-Definition model editor, that allows modeling components such as e.g. the PioneerBaseServer component shown in the screenshot below.
Several fully implement components based on the SmartMDSD Toolchain and the SmartSoft framework can be found in this Github repository:
Besides of the component-development view (that is used for illustration above), the SmartMDSD Toolchain implements several other system-related modeling views that enable the related developer roles to define relevant system models.