Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
1. General structure of RAPP system
Figure 1 presents the general structure of the RAPP system, consisting of agents residing in the cloud and a robot.
Figure 1: General structure of RAPP system
The cloud part of the system contains a repository agent
a_rep (repository storing all RAPP applications - RApps in short) and a cloud agent
a_cloud (representing external services).
Each robot contains a specific core agent
a_core, which governs both NAO effectors and receptors.
RApps are composed of a single dynamic agent
a_dyn executed on a robot and might be supplemented with agents running in the cloud.
More information of the general structure of RAPP system can be found in here...
2. Preparation of hardware for RAPP development
Figure 2: Files flow in RAPP system development
Preparation of hardware for RAPP development requires on virtual machine download of source code of ROS. It is downloaded to
ws_ros/src folder. Additionally it is required to download ROS dependent software packages to
ws_ros_additional_packages/src workspace folder and ROS independent software packages (such as hop, bigloo, etc.) to
ws_ros_additional_packages/programs workspace folder.
Core agent source code is downloaded from
rapp-robot-nao github repository to
ws_rapp_nao/src workspace folder.
RApps source code is cloned from
rapp-applications github repository to
ws_rapp_applications/src folder. Then in workspace
ws_rapp_applications_nao there is created a symbolic link to
ws_rapp_applications/rapp-applications/nao/src with the name
src. Any changes in a
ws_rapp_applications_nao/src folder will influence on
ws_rapp_applications/rapp-applications/nao/src folder contents.
Square lines with arrows on Figure 2 represent installation process in each of workspaces. Libraries and ROS packages are installed in workspace's
install_isolated folder from a given virtual machine workspace is copied to the Nao corresponding workspace.
- Structure of RAPP project repositories on github - short explanation of the most important RAPP- and NAO-related repositories.
Preparation of virtual machine
Required system on virtual machine: Gentoo (the same as on Nao robot!)
The virtual machine is required for development, compilation and installation of Core and Dynamic Agents for Nao robot. For this reason it depends on many different libraries and tools that must be installed beforehand. The following tutorials explain how to prepare your own virtual machine.
Structure of virtual machine - describes the general structure of directories and dependencies of Virtual Machine
Installation of virtual machine - contains instructions regarding installation of Oracle VM Virtual Box along with image of OpenNAO Virtual Machine.
Installation of necessary packages - explains how to download, compile and install required ROS packages and libraries.
Preparation of NAO robot
Required system on Nao robot: Aldebaran RT (based on Gentoo)
After preparation of the OpenNAO Virtual Machine you must perform analogous operations of the NAO robot itself. The following tutorials explain how to do it.
[Structure of directories on Nao robot] (https://github.com/rapp-project/rapp-robot-nao/wiki/Structure-of-directories-on-Nao-robot) - description of the most important directories on NAO robot.
Configuration and copying of libraries to NAO robot - contains list of the libraries that must be installed on NAO and explains how to configure and install them.
3. Running the RAPP system
As the RAPP system is a multi-agent distributed system, it is required to start its subsystems/agents in a proper order. Please follow the tutorials below in order to compile, upload and run Core, prepare your PC to work as a local RApp rapository and, finally, how to execute dynamic agent (RApps).
Preparation of core agent
Download and compilation of core agent on Virtual Machine - explains how to compile the core agent
Upload of core agent from Virtual Machine to NAO - explains how to upload the core agent-related binaries from Virtual Machine to NAO.
Running core agent on NAO
- Launching ROS and HOP on NAO - Describes the method of running required libraries (including most important ROS and HOP) on NAO.
- Running Core Agent - explains how to start the Core Agent.
Preparation of Dynamic Agents
- Download and compilation of Dynamic Agents on Virtual Machine - explains how to compile the code of dynamic agents.
- Creation of hz packages on Virtual Machine - explains how to pack the binaries of dynamic agents into hz files.
Preparation of PC to work as a Repository
Required system: Ubuntu 14.04
The RApps (Dynamic Agents) can be downloaded from the RAPP store (
a_rep) or from your own PC emulating the RAPP store. In order to emulate the RAPP store you must install the several required libraries, set up the HOP server and copy generater eariler hz packages from virtual machine to the right directory on PC. The following tutorials describe how to prepare your PC to work as RAPP repository.
- Installation of required libraries on PC - describes the required libraries along with the procedure of their installation.
- Running and configuration of HOP server on PC - explains how to configure the HOP server
- Sending hz packages from Virtual Machine to Repository - explain methods and scripts for copying hz packages from Virtual Machine to PC-based RAPP repository emulator.
Running RApps (dynamic agents)
- Running dynamic agents - this tutorial explains how to activate RApp (execute one of the hz packages uploaded to the repository).
4. Development of new RApps
The dynamic agent is implemented with the use of API provided by RAPP core developers.
Rapp API functions - list of functions constituting the RAPP API.
Implementation of exemplary dynamic agent - a tutorial explaining how to implement your own dynamic agent.
Creation of hz packages on Virtual Machine - explains how to pack the binaries of dynamic agents into hz files.
Sending hz packages from Virtual Machine to Repository - explain methods and scripts for copying hz packages from Virtual Machine to PC-based RAPP repository emulator.
Adding new RApp to NAO - explains the method of adding new RApp (hz package) to the repository, so it can be recognized, downloaded and executed by Core Agent running on NAO robot.