What bridges all the entities and users, is in fact the RAPP API, which will be developed as part of this project. Whereas technical specifications need to be discussed and resolved, the overall idea is that the API will enable the cloud-nature of the RAPP platform, providing developers a way to implement such cloud-robotic controllers. The design of RAPP API is the integrating part of the whole platform. It will allow for the cross-robot development of binaries, and will provide a highlevel abstraction of the base functions via a RAPP wrapper.
The API should provide connectivity with ROS, HOP and any RAPP developed functions. Such functions include, but are not limited by, machine learning algorithms, statistical procedures, data analysis etc. In the future versions of the RAPP API, these functions will be updated to allow for higher complexity modules. The developer should be aware of which parts run on the robot, and which on the cloud, but should not have to dig deep into lower level development of how they intercommunicate, interact or synchronize. We believe the developer should preferably create one application, not two, unless he or she wishes to.
The benefit of distributed robotic controllers can only be fully achieved, if we enable the creation of distributed applications in an easy and convenient manner, so as to attract developers from across disciplines, similar to how smartphone development rose through the app paradigm. This implies that the API will hide quite a lot from the developers.
Maybe even enforce or impose certain restrictions. We are willing to create a closed ecosystem for the development of such applications, if and only if, the gain is greater than those imposed restrictions.