The figure below illustrates the separation of levels and the separation of concerns. Please also refer to the RobMoSys Glossary for descriptions of used terms. The levels indicate abstractions in a robotics system.
The levels can be seen as an analogy to “ISO/OSI model” for robotics that addresses additional concerns beyond communication. The analogy is interesting, because ISO/OSI partitions the communication aspect in different levels of abstraction that then help to discuss and locate contributions. The ISO/OSI separations in levels allows to develop efficient solutions for each level. Establishing such levels for robotics would clearly help to communicate between robotics experts–as ISO/OSI does in computer science.
The levels and concerns can be used to identify and illustrate architectural patterns. The blue line in the figure is an abstract example. An architectural pattern combines several levels and several concerns. For example, the architectural pattern for a software component spans across the levels of service, function and execution container.
A the skill level is an abstraction level that decouples task-level and service-level. The purpose of abstraction is to enable replacement and composition of components (components providing the same skill) and decoupling (e.g. separation of roles: component developer and behavior developer).
Skills provide access to the functionalities realized within components and make them accessible to the task level. Skills coordinate software components through RobMoSys Software Component Coordination interface. With skill definitions on Tier 2, skills enable the task modeling independent of the underlying software component architecture. Skill implementations are bundled with software components and are provided by the component supplier role.
A skill defines basic capabilities of a robot. The area of transition between high-level tasks and concrete configurations and parameterizations of components on the service-level.
A collection of skills is required for the robot to do a certain task. For example, a butler robot requires skills for navigation, object recognition, mobile manipulation, speaking, etc. A component often implements a certain skill, but skills might also be realized by multiple components.
Skill-level often interfaces between symbolic and subsymbolic representations.
A service is a system-level entity that serves as the only access point between components to exchange information at a proper level of abstraction.
Services follow a service contract and separate the internal and external view of a component. They describe the functional boundaries between components. Services consist of communication semantics, data structure and additional properties.
Components realize services and might depend on existence of a certain type of service(s) in a later system.
See also: Service-based Composition
Example elements on this level: e.g. phread, socket, FIFO scheduler
An Operating System is, for example, responsible for:
Examples for Operating System
A (communication) middleware is a software layer between the application and network stack of the operating system. Communication middlewares are very common in distributed systems, but also for local communication between applications. They provide an abstract interface for communication independent of the operating system and network stack.
There are many distributed middleware systems available. However, they are designed to support as many different styles of programming and as many use-cases as possible. They focus on freedom of choice and, as result, there is an overwhelming number of ways on how to implement even a simple two-way communication using one of these general purpose middleware solutions. These various options might result in non-interoperable behaviors at the system architecture level.
For a component model as a common basis, it is therefore necessary to be independent of a certain middleware.
Solid pieces of bare metal that the robot is built of and uses to interact with the physical environment. It includes actors/sensors and processing unit.
This document contains material from: