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):
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.
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. They will be supported for a while but are not fully conform to RobMoSys.
The SmartMDSD Toolchain (version 3.x) is fully conform to RobMoSys and meanwhile achieved the same maturity level as the version 2.x series (in use within other projects such as BMWi PAiCE SeRoNet and used by FESTO Robotino).
The RobMoSys staff is happy to support you in choosing the right version depending on your needs. (To all RobMoSys Integrated Projects: approach your coaches for help!)
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.
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)
|Function||C++ Library (libOpenRave)|
|OS/Middleware||ACE, CORBA, DDS, Linux, Windows, iOS|
|Hardware||UR5, Sick, ARM, x86, Robotino, Segway, MARS|
SmartTCL (and the concept of Dynamic State Charts) are realizations of the Architectural Pattern for Task-Plot Coordination (Robotic Behaviors)
To be extended based on needs.
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
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 (QoS) defines the ability of a system to meet application-specific customer needs and expectations while remaining economically competitive. (see Wikipedia service-quality)
All about the SmartSoft World can be found at http://www.servicerobotik-ulm.de. Selected links: