Software architecture

The overall RAPP System is a distributed architecture composed of two major elements:

  • The “RAPP Platform” layer, located in the cloud, serving all robots.
  • The “Robot Platform” layer, located on each robot connecting to the RAPP platform;

RAPP functioning

Overall functioning of the RAPP architecture

RAPP adopts a distributed architecture, where the platform and the store are on the cloud, and the client is on the robot. In that sense, the host is the controller executing on the robot, and the guest is the controller or the services executing on the cloud. We consider both controllers as a single entity, separated only by a network socket. Together, they make up a RApp (Robotic Application).

On the cloud resides the RAPP Improvement Centre (RIC) which can perform a variety of Machine Learning (ML) and Data Mining (DM) tasks, either when requested by a RApp, or as a standalone or offline process. Other than the streamlined services provided by RIC, in the cloud also resides a workspace where specific tasks programmed by the developer of a RApp can be executed. This serves as a high performance computing entity (in comparison to the robot) where computationally expensive processes of a RApp that are not already offered as a service from the RIC can be offloaded.

The overall RAPP architecture is presented below. There are two major layers, further divided into subcomponents and specific systems. The two layers are the RAPP platform (located on the cloud infrastructure) and the Robot platform (located at the software level of each robot participating in the RAPP framework). The particular subsystems shown below correspond to the major high-level components that are expected on each layer; the RAPP Store, the RAPP Improvement Centerand the RApp execution workspace (Cloud Agent) on the cloud side, and the Core and Dynamic Agents as well as the Communication Layer on the robot side.

The middleware between the Robot platform and RAPP Platform is HOP Web Services. Hop Web Services run on the Platform side and handles client requests towards modules located under the RAPP Improvement Center.