-
Notifications
You must be signed in to change notification settings - Fork 20
Home
##1. RAPP Ecosystem
RAPP provides a robot agnostic approach by introducing a middleware stack with added functionalities suitable for different kinds of robots. In this way, developers will be able to utilize a common API (RAPP Robot API) in order to access the robot’s sensors and actuators. A number of high level services and functionalities for implementing RApps are also offered by the RAPP Platform and are accessible through the RAPP Platform API. The RAPP Platform offers a cloud-based solution that lifts the underlying robotic hardware computational and storage limitations and enables advanced machine learning operations, distributed data collection and processing, as well as knowledge sharing among robots. The developed RApps are hosted in the proposed RAPP Store, which is ultimately expected to have an important effect in the robotic application market. The adoption of a common API will provide developers with the versatility needed to address people with different needs, capabilities and expectations, while simultaneously respecting their privacy and autonomy.
##2. Get involved!
There are three levels of technical involvement in RAPP:
- Create robotic applications for a robot already supported by RAPP Ecosystem by using the RAPP Platform API and the RAPP Robot API
- Enrich the RAPP Platform by introducing new off-the-shelve robotic-oriented functionalities
- Support a new robot in the RAPP Ecosystem
Below, the necessary documentation, tutorials and examples for each of the involvement levels are presented.
##3. Robotic Applications (RApps) development
There are three concepts involved with the creation of robotic applications:
- Create a stand-alone application to manipulate the robot
- Create an application that uses RAPP Platform web services
- Upload and distribute your application
For all the above cases you must have a robot supported by RAPP, either in its physical form or in simulation. Right now, the only consumer robot supported is NAO, by SoftBank robotics.
In order to test the created applications in your robot, specialized software must be installed first, called the Core Agent of each robot (for more information check the RAPP Architecture). You can find information on how to install this software, by following the below links:
- For NAO robot:
- If you want to create C++ RApps: NAO robot Core Agent.
- If you want to create Python RApps you don't have to install a Core Agent, since NAOqi uptakes this task.
###3.1. How to: Create stand-alone RApps
After you have installed the Core Agent in your robot, you can start creating RApps (Robotic Applications). For creating stand-alone robotic applications you only need the RAPP Robot API (C++ or Python).
####3.1.1. RAPP Robot API - Python
Concerning the Python RAPP Robot API, RAPP provides a robot-agnostic API which can be found in the following link: Python RAPP Robot API.
Two full tutorials on how to create Python RApps for the NAO case follow:
- Remote application for NAO in Python: Move by speech (easy)
- In-robot application for NAO in Python: Move by speech (easy)
####3.1.2. RAPP Robot API - C++
INPUT NEEDED!
###3.2. How to: Create RApps that use RAPP Platform functionalities
For manipulating robots that invoke some of the RAPP Platform functionalities, you must use two APIs: the RAPP Robot API and the RAPP Platform API. The RAPP Platform API is offered in Python, C++ and JS. The documentation for each of the three languages follows:
- Python RAPP Platform API - General information
- Python RAPP Platform API - API calls
- C++ RAPP Platform API - General information
- C++ RAPP Platform API - API calls INPUT NEEDED
- JS RAPP Platform API - General information
- JS RAPP Platform API - API calls INPUT NEEDED
RAPP Platform functionalities can be utilized by robots via standard web services. The service layer has been developed using HOP consisting of a web server implementation, an http/https server, and the web services developed in Hop.js framework. Web services are executed within forked server-side web workers, each of which can include more than one web services allowing concurrent execution. Currently, the RAPP Platform hosts 27 web services, allowing robot platforms to gain access to the RIC functionalities described previously. The RAPP Platform nodes are fully described below:
-
RAPP Object Recognition - Under development
-
RAPP Face Recognition - Under development
-
I do not want to install RAPP Platform. Is there an easier way to use it?
-
I do not even want to try the easier way. Do you have something up and running to test?
Some RApp full tutorials for the Python language follow:
- Remote application for NAO in Python: Detect and track QR tags (normal)
- Remote application for NAO in Python: Use ROS & TLD tracker to approach arbitrary objects (hard)
- In-robot application for NAO in Python: Create a cognitive game (hard)
###3.3. How to: Upload and distribute your RApps
In order to upload and distribute your RApps you must utilize the RAPP Store. You can read the RAPP Store documentation here.
##4. RAPP Platform enrichment
In order to enrich the RAPP Platform with new functionalities, you must gain knowledge on the overall RAPP Architecture. In order to do this visit the following link: RAPP Architecture & component diagram.
Furthermore, you must be aware of the RAPP Platform multithreading policy, since RAPP Platform is meant to be deployed in the cloud. You can find more information here: RAPP Multithreading issues.
###RAPP Web services
##5. Supporting new robots in the RAPP Ecosystem
RAPP Project, http://rapp-project.eu/