This work-in-progress paper reports on our efforts to improve different aspects of coordination in complex, component-based robotic systems. Coordination is a system level aspect concerned with commanding, configuring and monitoring functional computations such that the system as a whole behaves as desired. To that end a variety of models such as Petri-nets or Finite State Machines may be utilized. These models specify actions to be executed, such as invoking operations or configuring components to achieve a certain goal. This traditional approach has several disadvantages related to loss of reusability of coordination models due to coupling with platform-specific functionality, non-deterministic temporal behavior and limited robustness as a result of executing platform operations within the context of the coordinator. To avoid these shortcomings, we propose to split this "rich" coordinator into a Pure Coordinator and a Configurator. Although the coordinator remains in charge of commanding and reacting, the execution of actions is deferred to the Configurator. This pattern, called "Coordinator-Configurator", is implemented as a novel Configurator domain specific language that can be used together with any model of coordination. We illustrate the approach by refactoring an existing application that realizes a safe haptic coupling of two youBot mobile manipulators.
Since this work is concerned with constructing modular subsystems, the work of the Ptolemy project @cite_10 is relevant, although that is more focused on composition of heterogeneous systems.
@cite_10
1496267491
Ptolemy is an environment for simulation and prototyping of heterogeneous systems. It uses modern object-oriented software technology (C++) to model each subsystem in a natural and efficient manner, and to integrate these subsystems into a whole. Ptolemy encompasses practically all aspects of designing signal processing and communications systems, ranging from algorithms and communication strategies, simulation, hardware and software design, parallel computing, and generating real-time prototypes. To accommodate this breadth, Ptoloemy must support a plethora of widely differing design styles. The core of Ptolemy is a set of object-oriented class definitions that makes a few assumptions about the system to be modeled; rather, standard interfaces are provided for generic objects and more specialized, application-specific objects are derived from these. A basic abstraction in Ptolemy is the Domain, which realizes a computational model appropriate for a particular type of subsystem. Current examples of domains include synchronous and dynamic dataflow, discrete-event, and others appropriate for control software and embedded microcontrollers. Domains can be mixed as appropriate to realize and overall system simulation. Some current applications of Ptolemy include networking and transport, call-processing and signaling software, embedded microcontrollers, signal processing (including implementation in real-time), scheduling of parallel digital signal processors, board-level hardware timing simulation, and combinations of these.