Note: This is a snapshot of the RobMoSys Wiki as of June 23rd 2017. Live Version for this page.

User Tools

Site Tools


baseline:environment_tools:smartsoft:start

The SmartSoft World

SmartSoft is an umbrella term for concepts and tools to build robotics systems. The SmartSoft approach defines a systematic component-based robotics software development methodology and according model-driven tools that support different developer roles in a collaborative design and development of robotic software systems. The SmartSoft World includes (a non-complete list):

  • The SmartMDSD Toolchain: an Integrated Development Environment (IDE) for robotics software development using model-driven software development.
  • The SmartMARS Meta-Model: It defines the structures behind the service-oriented and component-based approach.
  • The SmartSoft Framework and implementation: two exchangeable reference implementations (current: ACE middleware, former: CORBA middleware) and execution containers for several platforms and operating systems.
  • A repository with open source software components for immediate reuse to compose new applications (sensor access, skills, task sequencing, knowledge representation, etc.). They have been built with the SmartSoft technologies and tools.

There are two main technology clusters in SmartSoft that adhere to the RobMoSys structures. One is the SmartSoft robotics framework that provides a C++ library for programming robotics software components independent of the underlying communication middleware. The other technology is the SmartMDSD Toolchain that directly implements the RobMoSys metamodels and conforms to the RobMoSys structures. It serves as a baseline for model-driven tooling.

SmartSoft is officially supported by FESTO Robotino (see also Robotino Wiki).

SmartMDSD Toolchain and the SmartSoft Framework

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 figure below shows the main generations of the SmartMDSD Toolchain and the SmartSoft robotics framework.

Productive Releases

The 3rd generation of the SmartMDSD Toolchain (version 2.x) and the SmartSoft framework (version 2.x) are the current productive versions that – among others – are used by FESTO Robotino.

See also:

Next-Generation Technology Preview

A novel 4th generation for the SmartMDSD Toolchain (version 3.x) and the SmartSoft framework (version 3.x) are currently under development with a strong focus on specifically conforming to the RobMoSys structures. Both technologies are scheduled to be released and productively used by the end of 2017.

See also:

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.

Conformance to RobMoSys Composition Structures

The SmartSoft software baseline is continuously evolving to match the latest developments in robotics software engineering methods. While many current SmartSoft structures already now fully conform to the RobMoSys definitions, there are some necessary refinements that are summarized below.

Further differences between the current SmartMARS Metamodel and the RobMoSys composition structures will be described in the same way here.

Licenses: SmartSoft is open source

All SmartSoft framework versions are licensed under the LGPL v3 license. The SmartMDSD Toolchain v2.x uses the LGPL v2.1 license. The SmartMDSD Toolchain v3.x uses a plugin-based mix of licenses as depicted below. The SmartSoft components come in GPL/LGPL (see individual component).

Plugin Name Author License
org.ecore.component HSU (Alex Lotz) LGPL
org.ecore.system HSU (Alex Lotz) LGPL
org.ecore.deployment HSU (Alex Lotz) LGPL
org.xtext.commObj HSU (Alex Lotz) LGPL
org.xtext.component HSU (Alex Lotz) LGPL
org.xtext.system HSU (Alex Lotz) LGPL
org.xtext.deployment HSU (Alex Lotz) LGPL
org.xtext.param.[definition/compusage/sysusage] HSU (Alex Lotz) LGPL
org.sirius.component.design HSU (Alex Lotz) LGPL
org.sirius.system.design HSU (Alex Lotz) LGPL
org.sirius.deployment.design HSU (Alex Lotz) LGPL
org.sirius.tools HSU (Alex Lotz) LGPL
org.project.creation.wizards HSU (Alex Lotz) LGPL
org.robotics.update.site HSU (Alex Lotz) LGPL
org.xtend.smartsoft.generator HSU (Alex Lotz) LGPL
org.ecore.performExtension HSU (Alex Lotz) BSD
org.ecore.performance HSU (Alex Lotz) BSD
org.xtext.performance HSU (Alex Lotz) BSD
org.sirius.performance.design HSU (Alex Lotz) BSD
org.ecore.[symtaBase/symtaConfig] HSU (Alex Lotz) + Bosch (Vincent Kessel) BSD
org.xtext.[symtaBase/symtaConfig] HSU (Alex Lotz) + Bosch (Vincent Kessel) BSD
org.xtend.symta.generator HSU (Alex Lotz) + Bosch (Vincent Kessel) BSD
action.symtaProject.Run HSU (Alex Lotz) + Bosch (Vincent Kessel) BSD

Separation of Levels and Concerns in SmartSoft

SmartSoft provides implementations for the individual levels listed in Separation of Levels and Separation of Concerns:

Level Available/Accessible in the SmartSoft World
Mission SmartTCL HL Interface
Task Plot SmartTCL Task Block
Skill SmartTCL Skill Block
Service Service Definitions:
- Communication Object (data structure)
- Communication Patterns (comm. semantics)
SmartSoft Components
Function C++ Library (libOpenRave)
Execution Container SmartTask
OS/Middleware ACE, CORBA, DDS, Linux, Windows, iOS
Hardware UR5, Sick, ARM, x86, Robotino, Segway, MARS

Robotics Behavior in SmartSoft

SmartSoft Terminology

To be extended

Communication Object

  • A self-contained entity to hold and access information that is being exchanged via services between components in SmartSoft.
  • Communication objects are ordinary C++-like objects that define the data structure and implement middleware-specific access methods and optional user access methods (getter and setter) for convenient access.
  • See also the RobMoSys definition for Communication Objects

Communication Pattern

Communication Patterns are a set of few but sufficient characteristics for the exchange of information over services for component interaction in SmartSoft. Communication patterns are fix set of software patterns defining recurring communication solutions for robotics software components. SmartSoft provides communication patterns for the sake of composability, for example send, two-way request-response, and publish/subscribe mechanisms on a timely or availability basis. SmartSoft communication patterns are an implementation of the Architectural Pattern for Communication

Framework

Abstracts away platform-specific details such as independence of a particular operating-system (OS) and communication middleware by providing a unified and platform independent API.

Quality of Service

Quality of Service (QoS) defines the ability of a system to meet application-specific customer needs and expectations while remaining economically competitive. (see Wikipedia service-quality)

Further Resources

All about the SmartSoft World can be found at http://www.servicerobotik-ulm.de. Selected links:

Selected Publications

  • Dennis Stampfer, Alex Lotz, Matthias Lutz, and Christian Schlegel. “The SmartMDSD Toolchain: An Integrated MDSD Workflow and Integrated Development Environment (IDE) for Robotics Software.” In: Journal of Software Engineering for Robotics (JOSER): Special Issue on Domain-Specific Languages and Models in Robotics (DSLRob) 7.1 (2016). ISSN 2035-3928, pp. 3–19. LINK
  • Alex Lotz, Arne Hamann, Ralph Lange, Christian Heinzemann, Jan Staschulat, Vincent Kesel, Dennis Stampfer, Matthias Lutz, and Christian Schlegel. “Combining Robotics Component-Based Model-Driven Development with a Model-Based Performance Analysis.” In: IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR). San Francisco, CA, USA, Dec. 2016, pp. 170–176. LINK
  • Matthias Lutz, Dennis Stampfer, Alex Lotz, and Christian Schlegel. “Service Robot Control Architectures for Flexible and Robust Real-World Task Execution: Best Practices and Patterns.” In: Workshop Roboter-Kontrollarchitekturen, co-located with Informatik 2014. Vol. P-232. GI-Edition: Lecture Notes in Informatics (LNI). ISBN: 978-3-88579-626-8. Stuttgart: Bonner Köllen Verlag, 2014. LINK

See also: Further Publications and Technical Reports in context of SmartSoft.

baseline:environment_tools:smartsoft:start · Last modified: 2019/05/20 10:50
http://www.robmosys.eu/wiki-sn-01/baseline:environment_tools:smartsoft:start