About the SmartMDSD Toolchain
The SmartMDSD Toolchain builds on over 20 years of practical experience in developing complex robotics software systems, and it utilizes model-driven engineering techniques to massively increase efficiency in designing and realizing robotic, component-based software applications.
The SmartMDSD Toolchain has been introduced in 2009 and has been continuously refined and extended in various public releases and three generations since then. The SmartMDSD Toolchain v2 has been approved a Technology Readiness Level (TRL) 6. The latest major revision “v3” was released “stable” in March 2018.
Servicerobotik Ulm as the core developers behind the SmartMDSD Toolchain, have the technical lead in the European Horizon 2020 RobMoSys project, where we have discussed, refined and improved the behind-the-scene composition structures together with the robotics community, not only from Europe, but also with experts from all over the world. RobMoSys is a community moderation activity to coordinate the whole robotics community’s best and consorted effort to realize a step change towards a European ecosystem for open and industry-grade model-driven software development for robotics.
- For more information about the RobMoSys Composition Structures, please visit the RobMoSys Techical Wiki.
Sound structures are important, but being able to really experience and apply them them as a user via tooling is key. Therefore, we spend an extensive amount of our resources with RobMoSys and the German BMWi/PAiCE Project SeRoNet to deliver the best possible tooling. Moreover, we continuously work with industrial partners to improve and extend our tools to e.g. connect to popular frameworks such as ROS, and to utilize latest middlewares such as OPC UA.
- See our tutorials on how to apply the SmartMDSD Toolchain with ROS and OPC UA.
The SmartMDSD Toolchain and the SmartSoft Framework
While the early generations of the SmartMDSD Toolchain were tightly coupled with the SmartSoft Framework, the SmartMDSD Toolchain today is independent of the SmartSoft Framework. Modeling with the SmartMDSD Toolchain is conformant to the RobMoSys approach. The SmartMDSD Toolchain includes code-generators that map to the SmartSoft Framework.
The SmartMDSD Toolchain (version 2.x) and the SmartSoft Framework (version 2.x) are very matured (TRL 6) are – among others – used by FESTO Robotino and development artifacts of the SmartMDSD Toolchain are shipped with the Robotino robot.
The figure below shows the main generations of the SmartMDSD Toolchain and the SmartSoft Framework.
Focus and Strengths of the SmartMDSD Toolchain
Focus and strengths of the SmartMDSD Toolchain are:
- Very strong grounding to development artifacts. It is very strong in code-generation to the SmartSoft Framework.
- Very strong to build real systems
- A lot of content is available: Domain Models, Software Components, Systems
- Also included:
- Analysis of cause-effect-chains via SymTA/S
- Simulation (Player/Stage, Morse, Gazebo)
The SmartMDSD Toolchain as a IDE Workbench
The SmartMDSD Toolchain also is a tooling workbench and can be used as a basis for extension and integration of robotics (model-driven) software development methodologies. For example, the SeRoNet, RobMoSys and several RobMoSys ITP projects have started to build their developments on-top of the SmartMDSD Toolchain. Click the figure to learn more.
Eclipse Modeling Tools
The SmartMDSD Toolchain has been using various Eclipse Modeling technologies. It started in 2009 with the Itemis Open-Architecture Ware (OAW), then between 2013 and 2016 used Xtext, Xtend and UML Papyrus and is currently moving towards using the latest Eclipse Modeling technologies based on latest Xtext, Xtend and Sirius plugins. The figure below provides a schematic overview of the Eclipse technologies used for version 2.x and the transformation with the recent Eclipse technologies for version 3.x.
Overall, the SmartMDSD Toolchain provides various textual and graphical model editors as well as code generators to generate glue-logic for the SmartSoft framework and to generate configuration files.