Overview

  • SmartSoft is a component approach for robotics software based on communication patterns as core of a robotics component model. Although SmartSoft is particularly well suited for sensori-motor systems like robots, its approach to master system complexity is generic and universally applicable.
  • SmartSoft assists the component developer, the application builder and the end user in building and using distributed components in such a way that the semantics of the interface of components is predefined by the communication patterns, irrespective of where they are applied.
  • Dynamic wiring of components at run-time is explicitly supported by the wiring pattern which makes one major difference to other approaches. This allows to implement loosely coupled and distributed systems based on standardized components whose interaction can be adjusted according to the current context and requirements.
  • The SmartSoft mechanisms always show the same semantics independently of the underlying implementational technologies. At the moment, the most prominent implementations are based on ACE/TAO named CORBA / SmartSoft and based solely on ACE named ACE / SmartSoft.
  • CORBA / SmartSoft runs on Linux out-of-the-box. Others use it also on Windows. ACE / SmartSoft runs on Linux and on Windows out-of-the-box. Since it depends only on ACE and relies on its OS abstractions, it requires only minor effort to get it into operation on all OS supported by ACE.
  • The SmartSoft Component Model includes standardized ports for component interaction and configuration during runtime as well as an internal state automaton representing at least the states neutral, alive and fatal. This component hull allows the separation between component internals and the externally visible component interface. It is important to note that the final processing models and additional structures used within a component are not restricted.
  • The SmartSoft Component Model is underpinned by a UML profile. Thus, the SmartSoft approach is accessible via a Model Driven Software Development Approach (MDSD).