There are two steps to creating a concert solution.
Wrapping the concert master launcher is simply a matter of setting args in your own concert.roslaunch and including the concert_master/concert_master.launch file. The most oft used arguments to set include:
An example from turtle_concert:
<launch>
<arg name="turtle_services" default="turtle_concert/turtle.services"/>
<arg name="concert_name" default="Turtle Concert"/>
<arg name="scheduler_type" default="compatibility_tree"/>
<arg name="local_machine_only" default="true"/> <!-- only invite clients if they are on the same pc -->
<include file="$(find concert_master)/launch/concert_master.launch">
<arg name="concert_name" value="$(arg concert_name)"/>
<arg name="services" value="$(arg turtle_services)"/>
<arg name="conductor_auto_invite" value="true" />
<arg name="conductor_local_clients_only" value="$(arg local_machine_only)" />
<arg name="auto_enable_services" value="true" />
<arg name="scheduler_type" value="$(arg scheduler_type)"/>
</include>
</launch>
In the example launcher above we passed in a service argument of the form:
<arg name="turtle_services" default="turtle_concert/turtle.services"/>
....
<arg name="services" value="$(arg turtle_services)"/>
This argument takes a resource location to a yaml file which specifies the list of services that serves solution. It includes the resource name of the service definition file [1] as well as parameters that override the default service parameters.
All services have a common set of overrideable parameters:
Depending on the service and the service type it may also have its own set of overrideable parameters (just like a ros node’s parameters). These can be configured by setting them in a yaml file and referencing that via the above parameters field.
turtle_concert/turtle.services
- resource_name: concert_service_turtlesim/turtlesim
overrides:
parameters: turtle_concert/turtlesim
- resource_name: turtle_concert/turtle_pond
- resource_name: concert_service_admin/admin
- resource_name: concert_service_teleop/teleop
Here the parameters file is used to configure how many and which simulated turtles should be launched:
# These are all req'd, even if empty
turtles:
kobuki:
rapp_whitelist: [rocon_apps, turtle_concert]
concert_whitelist: [Turtle Concert, Turtle Teleop Concert, Concert Tutorial]
guimul:
rapp_whitelist: [rocon_apps, turtle_concert]
concert_whitelist: [Turtle Concert, Turtle Teleop Concert, Concert Tutorial]