(!) 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.

Chatter Concert

Description: An example concert demonstration, talker-listener style.

Keywords: concert tutorials rocon

Tutorial Level: BEGINNER

Next Tutorial: Chatter Concert - Distributed

Overview

This tutorial is a glorified version of ros' simple chatter tutorials. We up the game here by launching each talker (dudette) and listener (dude) on its own master and co-ordinate them from a central concert service.

Chatter Concert

Preparation

Follow the rocon installation instructions.

Demo

Source your setup.bash and rocon_launch the chatter concert, e.g. for a source install:

> source ~/rocon/devel/setup.bash
> rocon_launch chatter_concert chatter.concert --screen

This launches the concert solution, robot apps and immediately links everything once all the components are discovered.

Interacting

You're a human! Interact with it...

> source ~/rocon/devel/setup.bash
> rocon_remocon
  • Point it at your localhost ip, port 11311

Here you will find various roles in which you can interact with the concert. Feel free to explore the interactions provided for each role. A good example is the gateway graph introspection of the concert (inside the admin role):

Chatter Concert

You'll notice four masters in this system - the concert, dudette and two dudes. Dudette and the dudes flip your usual chatter pubs and subs (dudes of course have to listen to dudette, so they flip the subscribers and dudette flips the publisher).

Looking Around

Concert Info

Some basic information about this concert.

> concert_info

concert_info.png


Human Interactions

You can also get a quick view of all the interactions from the command line on the concert master:

> rocon_interactions
Admin
  Concert Info
    Name         : concert_info
    Description  : Generic information about this concert.
    Icon         : rocon_bubble_icons/rocon.png
    Rocon URI    : rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty
    Namespace    : /services/admin
    Max          : infinity
    Hash         : -1521334899
  Conductor Graph
    Name         : concert_conductor_graph
    Description  : Graph of all elements in a rocon conductor network.
    Icon         : rocon_bubble_icons/rocon.png
    Rocon URI    : rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty
    Namespace    : /services/admin
    Max          : infinity
    Hash         : 738504379
  Ros Graph
    Name         : rqt_graph
    Description  : Graph of all topics and services in the concert workspace.
    Icon         : rocon_bubble_icons/rocon.png
    Rocon URI    : rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty
    Namespace    : /services/admin
    Max          : infinity
    Hash         : 844838261
  Gateway Graph
    Name         : rocon_gateway_graph
    Description  : Graph of all elements in a rocon gateway network.
    Icon         : rocon_bubble_icons/rocon.png
    Rocon URI    : rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty
    Namespace    : /services/admin
    Max          : infinity
    Hash         : 1296470224
Docs
  Ros Wiki - Chatter Concert
    Name         : http://wiki.ros.org/chatter_concert
    Description  : A ros chatter style introduction to the concert.
    Icon         : rocon_bubble_icons/ros.png
    Rocon URI    : rocon:/pc
    Namespace    : /services/chatter
    Max          : 1
    Hash         : -1295151295
Chatter
  Dude
    Name         : chatter_concert/remocon_dude
    Description  : For human dudes who have to listen to nagging dudettes.
    Icon         : rocon_bubble_icons/rocon.png
    Rocon URI    : rocon:/pc/*/hydro|indigo/precise|quantal|raring|saucy|trusty
    Namespace    : /services/chatter
    Max          : infinity
    Remappings   : chatter->/conversation/chatter
    Hash         : -2138897534
  Android Listener
    Name         : com.github.rosjava.android_remocons.listener.Listener
    Description  : Android listener
    Icon         : rocon_bubble_icons/rocon.png
    Rocon URI    : rocon:/*/*/hydro/jellybean|ice_cream_sandwich|kitkat
    Namespace    : /services/chatter
    Max          : infinity
    Remappings   : chatter->/conversation/chatter
    Hash         : -965118903

The Clients (Retaskable Robots)

> rosservice list

In this list you can see all of the app manager handles provided by the dudes and dudette. Each client provides their handles in namespaces that are all postfixed with uuid strings. This is the default behaviour for naming and ensures that each member in the concert is unique.

The Services

Get some information about the services running inside the concert.

> concert_service_info
Concert Service Information
  Resource      : rocon_service_admin/admin
  Name          : admin
  Description   : Administrative services and tools
  Author        : DanielStonier
  Priority      : 1
  Launcher Type : shadow
  Status        : 0
  Enabled       : True

  Resource      : chatter_concert/chatter
  Name          : chatter
  Description   : Dudes and dudettes chatting.
  Author        : Daniel Stonier
  Priority      : 2
  Launcher Type : roslaunch
  Status        : 0
  Enabled       : True

Scheduled Resources

> concert_scheduler_requests
##############################################################################
#                 Scheduler Request Feedback                                 #
##############################################################################
Requester [2953da1f-a537-4bf3-92a6-bc931e1ac20e]
  Request
    Id        : 2785ce60-5d98-4334-8804-e6baf7131467
    Priority  : 10
    Status    : granted
    Resources : 9004c2b8-f2b9-4064-bf2e-f8818c327afc-rocon:/pc/dudetteb3a53f75f8434aa4a6acba230772d3b2/indigo/saucy-rocon_apps/talker
              : 2467ecfa-339b-42e7-81d3-c02e2ce02aa9-rocon:/pc/dude61509a4d1b594cbfb3e211ef2d0d60fe/indigo/saucy-rocon_apps/listener
              : a7ebd33a-9c3d-487f-9cc2-4a3213ac87b0-rocon:/pc/dudebd55b785281d4da4b30b65861a9aab78/indigo/saucy-rocon_apps/listener
  Request
    Id        : 77fb9997-7706-4fb1-a700-cb2c51e96d13
    Priority  : 0
    Status    : waiting
    Resources : d59657b0-3ab8-424a-9327-4cae688e9fed-rocon:/*/*#rocon_apps/listener-rocon_apps/listener

Here you can see dudette and the two dudes already having been allocated (granted) in the first request. You notice that the service has also lined up a further request for another dude (listener) that is yet waiting. The chatter service itself allows four dudettes to a dude (read what you will into that!). While the concert_scheduler_requests call is stil running, open new shells and try launching additional dudes:

> roslaunch -p 11315 chatter_concert dude.launch --screen
> roslaunch -p 11316 chatter_concert dude.launch --screen

You should see requester-scheduler process interactively granting and creating new requests.

Wiki: chatter_concert/Tutorials/indigo/Chatter Concert (last edited 2014-05-02 07:24:32 by DanielStonier)