The software framework into which PROMISE is integrated consists of four elements distributed into two units. The unit Central station provides an interface to the user (typically deployed into a computer) and integrates elements A, B, and C. The unit Robot represents what is deployed and executed at run-time within each robot. Our framework builds upon an existing robotic platform and architecture, SERA [1]. This platform's current implementation relies on ROS (https://www.ros.org) and provides a set of functionalities, including motion control, collision avoidance, image recognition, self-localization, and planning. All these functionalities will be made available on the website of the project that founds this research (http://www.co4robots.eu). Despite being integrated into the said platform, PROMISE is developed as a standalone tool and could be integrated with various robotic tools and platforms.
The component A encapsulates the language and DSL of PROMISE, realized as a plugin for Eclipse, using Xtext (https://www.eclipse.org/Xtext) for the textual interface and Sirius (https://www.eclipse.org/sirius/) for the graphical one. The compiler (component B) contains a script that automatically generates the local missions to be sent to each robot. This component also generates a description of the specified mission using natural English, which might help users while specifying missions to evaluate whether the description corresponds to what they wanted to express. An example of such a description is provided here.
The intermediate language (component C) describes the set of tasks to be performed by each robot according to the semantics of the operators used for the mission specification. The used software platform currently implements an LTL-based planner, so PROMISE's intermediate language is composed of a set of LTL formulae with the addition of the used operators' semantics. The intermediate language permits decoupling the mission specification from the robotic platform and the development of interpreter tools. For more information regarding the intermediate language, we refer the interested reader to our publication. Finally, an interpreter (component D) is deployed within each robot. This interpreter receives the robot-specific local mission and communicates the tasks to the local planner appropriately. In this way, PROMISE becomes robot-agnostic since only the robot-specific interfaces of the interpreter with the lower-level components of the platform must be adapted when using a new robot.
[1] GarcĂa, S., Menghi, C., Pelliccione, P., Berger, T., & Wohlrab, R. (2018, April). An Architecture for Decentralized, Collaborative, and Autonomous Robots. In 2018 IEEE International Conference on Software Architecture (ICSA) (pp. 75-7509). IEEE.