Note: This tutorial assumes that you have completed the previous tutorials: Concert Client Preparation.
(!) 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.

Create Concert Mode Launcher

Description: how to prepare your robot to use in your concert

Keywords: rocon concert solution

Tutorial Level: BEGINNER

Next Tutorial: Join Concert as a Client

Overview

Concert Client infers an retaskable agent like robot that can serve services in the concert. This tutorial guides how to prepare your robot to join concert.

concert_client.launch

To use your robot with concert, you need to create concert_client.launch to bring up rapp manager and rocon_gateway for multi-master communication. It automatically configure robot's rapp manager to expose its access handle over network. So the concert can acquire. It is similar to standalone mode launcher with extra arguments.

Please check turtlebot concert_client.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   <!-- Capabilities(Disabled) -->
  23   <!-- Interactions(Disabled) -->
  24   <!-- Concert Configuration -->
  25   <!-- list of concert names this robot will work with. Empty list means it is open to any concert -->
  26   <arg name="concert_whitelist"  default="['YOUR_CONCERT_NAME']"/>
  27 
  28   <!-- postfix a uuid to robot_name to create unique namespaces for rapps (else manually guarantee unique names for multimaster'ing -->
  29   <arg name="robot_unique_name"  default="true"/>
  30 
  31   <!-- Debug -->
  32   <!-- Verbose output from running apps -->
  33   <arg name="screen" default="true"/>
  34 
  35   <include file="$(find rocon_app_manager)/launch/concert_client.launch">
  36     <!-- Rapp Manager --> 
  37     <arg name="robot_name"                    value="$(arg robot_name)" />
  38     <arg name="robot_type"                    value="$(arg robot_type)" />
  39     <arg name="robot_icon"                    value="$(arg robot_icon)" />
  40     <arg name="robot_description"             value="$(arg robot_description)" />
  41     <arg name="rapp_package_whitelist"        value="$(arg rapp_package_whitelist)" />
  42     <arg name="rapp_package_blacklist"        value="$(arg rapp_package_blacklist)" />
  43 
  44     <!-- Concert Configuration -->
  45     <arg name="concert_whitelist"             value="$(arg concert_whitelist)"/>
  46     <arg name="robot_unique_name"             value="$(arg robot_unique_name)"/>
  47 
  48     <!-- Debug -->
  49     <arg name="screen"                        value="$(arg screen)"/>
  50   </include>
  51 </launch>

What's Next?

Wiki: rocon_concert/Tutorials/indigo/Create Concert Mode Launcher (last edited 2015-05-15 07:01:58 by jihoonl)