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. |
Pairing
Description: Launching rapps in tandem with rocon interactions.Keywords: pairing, robot app manager,
Tutorial Level: INTERMEDIATE
Next Tutorial: Run Interactions with QT Remocon
Contents
Overview
Pairing is a means of getting a user's interaction (qt/android/web) running in tandem with a specific rapp on the robot. Some examples:
Robot App (Rapp) |
User Application (Rocon Interaction) |
Gmapping |
Android Make A Map |
Amcl |
Android Navigation |
Interactive Marker Navigation |
RViz |
Software
The mechanisms for doing this are via:
remocons - user applications for listing, initiating and managing pairing.
rocon_interactions - handles the user interactions.
rocon_app_manager - handles the rapps.
Prerequisite
To follow the tutorial, please install the rocon_app_manager_tutorials.
> sudo apt-get install ros-indigo-rocon-app-manager-tutorials
Enable Interactions in Rapp Manager
Rocon App Manager provides arguments to enable/disable interactions and to load interactions list. This is example roslaunch file in rocon_app_manager_tutorials. You should set interactions as true and add your .interactions file in interactions_list.
1 <include file="$(find rocon_app_manager)/launch/standalone.launch">
2 <arg name="interactions" value="true"/>
3 <arg name="interactions_list" value="[rocon_app_manager_tutorials/pairing]"/>
4 <arg name="rapp_package_whitelist" value="[rocon_apps, turtle_concert]"/>
5 <arg name="robot_name" value="Cybernetic Pirate"/>
6 <arg name="robot_type" value="pc"/>
7 <arg name="robot_icon" value="rocon_icons/cybernetic_pirate.png"/>
8 <arg name="robot_description" value="A tutorial environment for demonstrating pairing interactions." />
9 <arg name="zeroconf" value="true"/>
10 </include>
11 <node pkg="turtlesim" type="turtlesim_node" name="turtlesim" required="true"/>
12 </launch>
Execute Example Rocon App Manager
> roslaunch rocon_app_manager_tutorials pairing.launch --screen
Verify loaded Interactions
As interactions are loaded in interaction manager, you can check available interactions with the following command.
> rocon_interactions
Then you should see like this.
Example Interactions
rocon_app_manager_tutorials/pairing.interactions include example
Qt Listener
This pairing will run a simple qt listener (the interaction) and a talker (the rapp). Termination of both will occur as soon as the qt listener is closed.
Android Listener
This is android version of listener which starts a talker in the robot and listener in android.
Chirp
This is an example of a dummy pairing, i.e. a trigger used to conveniently launch rapps on the robot. There is no (qt) application on the interaction side, just a monitoring thread. On the robot side chirp.rapp will start and promptly make a moo'ing sound before naturally terminating itself. When it terminates, the monitoring thread started by the remocon too will shut down.
Remocons will typically highlight the active status of the rapp when a dummy interaction is triggered (usually by background colour).
QT Teleop
This pairing will run a qt teleop gui (the interaction) and a rocon_apps/video_teleop (the rapp). With the GUI joystick, you can control turtle in turtlesim.
Android Teleop
Android version of Teleop.