Note: This tutorial assumes that you have completed the previous tutorials: Install Rocon App Manager. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Configure Rapp Manager for Robot
Description: describes how to setup rapp manager for the robotKeywords: rocon app manager app_manager concert
Tutorial Level: BEGINNER
Next Tutorial: Bring up Rapp Manager
Goal
This tutorial shows how to configure a robot app manager launch for a standalone ros system. If you haven't already, make sure you have followed previous tutorial to install the rocon app platform or the full rocon
Launch Modules
The standalone.launch launches the core rocon app manager node as well as (optionally) a few highly correlated modules that work with the rapp manager. In the following list [C] indicates core modules and [O] optional modules:
[C] Rocon App Manager - the rocon app manager itself.
[C] Rocon Master Info - advertising your ros master information (see rocon_master_info)
[O] Capabilities - if your rapps depend on capabilities this can be conveniently configured from here.
[O] Zeroconf - advertise your ros master on the lan so other tools can easily find the rapp manager
[O] Interactions - load up rocon_interactions to enable pairing with the rapp manager.
Standalone.launch
In order to use rapp manager with your robot, you need to create your own launcher to bring up the robot and rapp manager. This is typical roslaunch file to bringup robot and rapp manager. Note that Capabilities and Zeroconf settings are hid for start template. Please check advanced tutorials to configure capabilities and use custom zeroconf setting.
Also please check turtlebot minimal.launch as an example. The list of arguments with full descriptions can be found here
You should replace the following arguments:
- robot_name
- robot_type
- robot_icon
- rapp_package_whitelist
- interactions_list
Please refer Add Your Robot Type Tutorial to use your custom robot type with app manager.
Also Please check out starter template in github to form your robot launcher.
1 <launch>
2 <!-- Robot bringup -->
3 <!-- Add your robot bringup -->
4
5 <!-- Rapp Manager -->
6 <!-- used as a unique identifier -->
7 <arg name="robot_name" default="YOUR_ROBOT_NAME"/>
8
9 <!-- just in case you are considering a 'variant' and want to make use of this. -->
10 <arg name="robot_type" default="YOUR_ROBOT_TYPE"/>
11
12 <!-- Rocon Master Info -->
13 <!--e.g) turtlebot_bringup/turtlebot2.png" -->
14 <arg name="robot_icon" default="<PKG_NAME>/<ICON_FILE>"/>
15 <!-- Describe your robot -->
16 <arg name="robot_description" default="Kick-ass ROS turtle"/>
17
18 <!-- a list of catkin packages that provide rapps to be loaded by the app manager. -->
19 <arg name="rapp_package_whitelist" default="[rocon_apps, YOUR_RAPP_PACKAGE]"/>
20 <arg name="rapp_package_blacklist" default="[]"/>
21
22 <!-- Interactions -->
23 <!-- start an interactions manager -->
24 <arg name="interactions" default="true"/>
25 <!-- a list of filenames that provide interactions specifications. -->
26 <arg name="interactions_list" default="[YOUR_INTERACTIONS_LIST]"/>
27
28 <!-- Capabilities(Disabled) -->
29 <!-- Zeroconf -->
30 <arg name="zeroconf" default="true"/>
31
32 <!-- Rapp Manager -->
33 <include file="$(find rocon_app_manager)/launch/standalone.launch">
34 <!-- Rapp Manager -->
35 <arg name="robot_name" value="$(arg robot_name)" />
36 <arg name="robot_type" value="$(arg robot_type)" />
37 <arg name="robot_icon" value="$(arg robot_icon)" />
38 <arg name="robot_description" value="$(arg robot_description)" />
39 <arg name="rapp_package_whitelist" value="$(arg rapp_package_whitelist)" />
40 <arg name="rapp_package_blacklist" value="$(arg rapp_package_blacklist)" />
41
42 <!-- Interactions -->
43 <arg name="interactions" value="$(arg interactions)"/>
44 <arg name="interactions_list" value="$(arg interactions_list)"/>
45
46 <!-- Zeroconf -->
47 <arg name="zeroconf" value="$(arg zeroconf)"/>
48 </include>
49 </launch>
Robot Identifier
robot_name is used as an unique identifier and occasionally to preconfigure root namespaces, gateway/zeroconf ids etc.
robot_type is just in case you are considering a 'variant' and want to make use of this.
Also note that robot_name and robot_type are used to form the robot's rocon_uri to filter out incompatible rapps.
Robot Meta info
robot_icon and robot_description are to describe robot. These will be used for client applications like Rocon Remocon or Android Remocon. The info can be check with the following command.
> rocon_master_info
Rapp Configuration
rapp_package_whitelist and rapp_package_blacklist would be the most important args. They controls where you can constrain the rapps on the ROS_PACKAGE_PATH that are discoverable by the rapp manager. For example, rocon_apps package includes default rapps like chirp or meta rapp to implement teleop rapp.
You need to add your rapp package in rapp_package_whitelist in order to use in rapp manager. To create and add your own rapp in the system, please refer to Create Your Own Rapp tutorial.
Interactions
Rocon Interactions are designed to manage client-side applications(e.g, QT, Android, Web App) in ros-ecosystem. Rocon App Manager makes use of rocon interactions to pair robot(or rocon) apps with client applications.
More details will be covered in Pairing Mode Tutorials later.
What's Next
Bring up Rapp Manager or return to Main.
Will be added later. |
For advanced users who wants to use capabilities layer under rapp manager, please check Configure Capabilities under Rapp Manager