[Documentation] [TitleIndex] [WordIndex

Note: This tutorial assumes that you have completed the previous tutorials: Installation.
(!) 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 Your Own Solution

Description: how to create your own solution

Keywords: rocon concert solution

Tutorial Level: BEGINNER

Next Tutorial: Bring up a Concert

Overview

Solution is a system running configuration of concert which defines what concert services serve who and how. It is simply a multi-robot-device-tablet system that enables a collection of services. This tutorial addresses how to create your own solution. It assumes that you have completed rocon installation

Package Format

The solution package is generally a catkin package which consists of four files, package.xml, CMakeLists.txt, solution.launch, and solution.services. In addition, custom service configuration files may be included. Customising services will be covered in next tutorial.

The common solution package format is the following:

<My Sol Package> --- CMakelists.txt
                  |- package.xml
                  |- solution -  solution.launch
                              |- solution.services
                              |- configurations - <custom service configurations>

concert.launch

This is the minimal configuration for solution.

   1 <launch>
   2   <arg name="services"          default="my_concert/solution.services"/>  <!-- "<package_name>/<file>.services"  tuple-->
   3   <arg name="concert_name"      default="My Concert"/>
   4   <arg name="concert_description" default="This is my concert"/>
   5 
   6   <!-- To enable webapp interations -->
   7   <arg name="enable_rosbridge"  default="false"/>
   8   <arg name="rosbridge_address" default="localhost"/>
   9   <arg name="rosbridge_port"    default="9090"/>
  10 
  11   <!--autoenable services, e.g. [admin, teleop] services which auto enabled on start up or 'all' to enable all services -->
  12   <arg name="default_auto_enable_services" default="all"/>
  13 
  14   <include file="$(find concert_master)/launch/concert_master.launch">
  15     <arg name="concert_name"                  value="$(arg concert_name)"/>
  16     <arg name="concert_description"           value="$(arg concert_description)"/>
  17     <arg name="services"                      value="$(arg services)"/>
  18 
  19     <arg name="default_auto_enable_services"  value="$(arg default_auto_enable_services)"/>
  20     <arg name="enable_rosbridge"              value="$(arg enable_rosbridge)"/>
  21     <arg name="rosbridge_address"             value="$(arg rosbridge_address)"/>
  22     <arg name="rosbridge_port"                value="$(arg rosbridge_port)"/>
  23   </include>
  24 </launch>

Note that concert_master.launch provides lots of arguments for advanced use. Some features will be covered in following tutorials.

solution.services

.services file defines which concert services will be used in the solution. override are used if service need to be customised. Note that resource names are a tuple of package_name/service_name

   1 - resource_name: concert_service_admin/admin
   2 - resource_name: concert_service_teleop/teleop
   3 - resource_name: concert_service_indoor_2d_map_prep/indoor_2d_map_prep

The concert provides the following default services.

What's Next?


2019-11-16 13:14