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

Turtle Concert

Description: An example concert demonstration, turtlesim style.

Keywords: concert

Tutorial Level: BEGINNER

Installation

Follow the rocon installation instructions.

Demo

Bootstrapping

Let's bootstrap all the robots as well as the centralised concert master. Source your setup.bash and rocon_launch the concert, e.g. for a source install:

> cd ~/concert/devel
> source setup.bash
> rocon_launch turtle_concert turtle.concert

rocon_launch is a utility used to multi-launch and manage several launchers running under independant ros masters. It has the same effect as running the following in four new setup.bash'd terminals:

# The concert master
> roslaunch --port=11311 turtle_concert concert.launch
# Two pseudo-turtle concert clients
> roslaunch --port=11312 turtle_concert kobuki.launch
> roslaunch --port=11313 turtle_concert guimul.launch
# A pc software client
> roslaunch --port=11314 turtle_concert turtlesim.launch

At this point, the concert master recognises all the concert clients have been loaded (it is pre-configured via the orchestra node) and is ready to run, but first, let's look around.

Looking Around

The concert system is essentially a centralised workspace. You can find all the topics and services landing there, allowing you to introspect and interact with the concert without having to delve into each robot (concert client). A quick look at the concert workspace (selectively filtering a bit here):

> rosservice list
/concert/conductor/invite_concert_clients
/concert/gateway/advertise
/concert/gateway/advertise_all
/concert/gateway/connect_hub
/concert/gateway/flip
/concert/gateway/flip_all
/concert/gateway/gateway_info
/concert/gateway/pull
/concert/gateway/pull_all
/concert/gateway/remote_gateway_info
/concert/start_solution
/concert/stop_solution
/concert/zeroconf/add_listener
/concert/zeroconf/add_service
/concert/zeroconf/list_discovered_services
/concert/zeroconf/list_published_services
/concert/zeroconf/remove_listener
/concert/zeroconf/remove_service
/guimul/invitation                                                                                  
/guimul/list_apps                                                                                   
/guimul/platform_info                                                                               
/guimul/start_app                                                                                   
/guimul/status                                                                                      
/guimul/stop_app                                                                                    
/kobuki/invitation
/kobuki/list_apps
/kobuki/platform_info
/kobuki/start_app
/kobuki/status
/kobuki/stop_app
/turtlesim/invitation
/turtlesim/list_apps
/turtlesim/platform_info
/turtlesim/start_app
/turtlesim/status
/turtlesim/stop_app

Starting the Solution

The orchestration component of the concert master is pre-loaded with a solution. Think of this as a multimaster launch file which launches apps (launchers) on each robot instead of nodes.

From the concert workspace (ROS_MASTER_URI=http://localhost:11311)

> rosservice call /concert/start_solution

Viewing the Gateway Graph

Have a gander and see what topics and services are getting the love (i.e. shared around):

> rosrun rocon_gateway_graph rqt_gateway_graph

Wrapping Up

Put the turtles to sleep. Again, from the concert workspace (ROS_MASTER_URI=http://localhost:11311)

> rosservice call /concert/stop_solution

Screenshot

Turtle Concert

Video

Wiki: turtle_concert/Tutorials/groovy/Turtle Concert (last edited 2013-06-07 02:25:40 by jihoonl)