The Concert Master LauncherΒΆ

The provided concert_master.launch arguments that can be configured by a regular roslaunch include of this launcher. The arguments should be fairly self explanatory (we will formally detail this in the future when it is more stable).

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<launch>
  <!-- ******************************* Arguments ******************************* -->
  <!-- Concert -->
  <arg name="concert_name" default="Pirate Concert" doc="concert name"/>
  <arg name="concert_icon" default="rocon_icons/rocon.png" doc="concert icon path in resource pair. e.g)rocon_icons/rocon.png"/>
  <arg name="concert_description" default="Pirates in concert." doc="Describe concert"/>
  
  <!-- Gateways -->
  <arg name="hub_port" default="6380" doc="port for rocon hub redis"/>
  <arg name="hub_uri" default="http://localhost:6380" doc="gateway hub configuration"/>
  <arg name="gateway_watch_loop_period" default="2" doc="Polling period for multimaster advertising/flipping"/>
  <arg name="gateway_disable_uuids" default="false" doc="manage unique naming of multiple gateways yourself"/>
  <arg name="gateway_network_interface" default="$(optenv GATEWAY_NETWORK_INTERFACE)" doc="If you have multiple network interfaces and want to lock it on one (e.g. 'eth0')"/>
  <arg name="gateway_unavailable_timeout" default="10" doc="how long before a concert client is flagged as missing when it drops off the wireless"/>

  <!-- Zeroconf -->
  <arg name="disable_zeroconf"            default="false" doc="It is required process to configure both hub and gateway. Configures rocon_hub zeroconf param and gateway disable_conf param.(e.g docker does not support zeroconf properly"/>
  <arg name="hub_zeroconf"    if="$(arg disable_zeroconf)" value="false"/>
  <arg name="hub_zeroconf"    unless="$(arg disable_zeroconf)" value="true"/>

  <!-- Conductor -->
  <arg name="conductor_auto_invite" default="true" doc="invite clients automatically?"/>
  <arg name="conductor_local_clients_only" default="false" doc="conductor invites only local clients"/>

  <!-- Service Manager -->
  <arg name="services" default="" doc="service list resource location. e.g. concert_tutorial/tutorial.services" />
  <arg name="default_auto_enable_services" default="[]" doc="autoenable services, e.g. [admin, initialisation] services which auto enabled on start up or 'all' to enable all services"/>
  <arg name="disable_cache" default="true" doc="whether reading solution configuration and service profile from cache or default"/>

  <!-- Interactions -->
  <arg name="enable_rosbridge"  default="false" doc="start rosbridge or not"/>
  <arg name="rosbridge_address" default="localhost" doc="rosbridge address for rocon_interactions"/>
  <arg name="rosbridge_port" default="9090" doc="rosbridge port for rocon_interactions"/>
  <arg name="webserver_address" default="webapp.robotconcert.org" doc="webserver address for webapps in rocon_interactions"/>
  <!--                  Schedulers
      - preemptive_compatibility_tree : concert_schedulers/preemptive_compatibility_tree_scheduler.launch
      - compatibility_tree            : concert_schedulers/compatibility_tree_scheduler.launch
      - simple                        : concert_schedulers/simple_scheduler.launch
   -->
  <arg name="scheduler_type" default="compatibility_tree" doc="available scheudlers : [preemptive_compatibility_tree, compatibility_tree, simple]"/>

  <group ns="concert">
    <!-- ****************************** Parameters ***************************** -->
    <param name="name" value="$(arg concert_name)"/>
    <param name="description" value="$(arg concert_description)"/>
    <param name="icon" value="$(arg concert_icon)"/>
  
    <!-- ******************************** Master ******************************* -->
    <node pkg="rocon_master_info" type="master.py" name="master"/>

    <!-- ***************************** Service Manager *************************** -->
    <include file="$(find concert_service_manager)/launch/service_manager.launch">
      <arg name="concert_name" value="$(arg concert_name)"/>
      <arg name="services" value="$(arg services)" />
      <arg name="default_auto_enable_services" value="$(arg default_auto_enable_services)" />
      <arg name="disable_cache" value="$(arg disable_cache)"/>
    </include>

    <!-- ***************************** Software Farmer *************************** -->
    <include file="$(find concert_software_farmer)/launch/software_farmer.launch"/>

    <!-- ****************************** Conductor ****************************** -->
    <include file="$(find concert_conductor)/launch/conductor.launch">
      <arg name="auto_invite" value="$(arg conductor_auto_invite)" />
      <arg name="local_clients_only" value="$(arg conductor_local_clients_only)" />
    </include>

    <!-- ****************************** Conductor Graph to String ****************************** -->
    <node pkg="concert_utilities" type="conductor_graph_to_string.py" name="concert_conductor_graph_to_string"/>

    <!-- ****************************** Scheduler ****************************** -->
    <include file="$(find concert_schedulers)/launch/$(arg scheduler_type)_scheduler.launch"/>

    <!-- **************************** Interactions ***************************** -->
    <node pkg="rocon_interactions" type="interactions_manager.py" name="interactions">
      <param name="rosbridge_address" value="$(arg rosbridge_address)"/>
      <param name="rosbridge_port" value="$(arg rosbridge_port)"/>
      <param name="webserver_address" value="$(arg webserver_address)"/>
    </node>

    <!-- ******************************** Hub ********************************** -->
    <include file="$(find rocon_hub)/launch/hub.launch">
      <arg name="hub_name" value="$(arg concert_name)" />
      <arg name="hub_port" value="$(arg hub_port)" />
      <arg name="external_shutdown" value="true"/> <!-- let the conductor shut it down -->
      <arg name="gateway_unavailable_timeout" value="$(arg gateway_unavailable_timeout)"/>
      <arg name="zeroconf" value="$(arg hub_zeroconf)"/>
    </include>

    <!-- ******************************** Gateway ******************************** -->
    <node pkg="rocon_gateway" type="gateway.py" name="gateway">
      <rosparam command="load" file="$(find rocon_gateway)/param/default.yaml"/>
      <rosparam command="load" file="$(find rocon_gateway)/param/default_blacklist.yaml"/>
      <rosparam param="hub_whitelist" subst_value="True">["$(arg hub_uri)"]</rosparam>
      <param name="hub_uri" value="$(arg hub_uri)"/>
      <param name="name" value="$(arg concert_name)"/>
      <param name="firewall" value="false"/>
      <param name="watch_loop_period" value="$(arg gateway_watch_loop_period)"/>
      <param name="disable_uuids" value="$(arg gateway_disable_uuids)"/>
      <param name="network_interface" value="$(arg gateway_network_interface)"/>
      <param name="external_shutdown" value="true"/> <!-- let the conductor shut this node down -->
      <param name="disable_zeroconf" value="$(arg disable_zeroconf)"/>
    </node>
    <!-- ****************************** Zeroconf ******************************* -->
    <group unless="$(arg disable_zeroconf)">
      <node ns="zeroconf" pkg="zeroconf_avahi" type="zeroconf" name="zeroconf">
        <rosparam param="services" subst_value="true">
          [ { name: "$(arg concert_name)", type: _concert-master._tcp, port: 11311, domain: local, description: "$(arg concert_description)" } ] 
        </rosparam>
      </node>
    </group>
  </group>

  <!-- ****************************** Rosbridge ******************************** -->
  <group if="$(arg enable_rosbridge)">
    <include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch">
      <arg name="address"   value="$(arg rosbridge_address)"/>
      <arg name="port"   value="$(arg rosbridge_port)"/>
    </include>
  </group>
</launch>

Previous topic

Quickstart

Next topic

Creating a Concert Solution

This Page