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

Standalone Rapp Manager

Description: Launching and running a standalone app manager with no connections to the outside world.

Keywords: appmanager rocon

Tutorial Level: BEGINNER

Next Tutorial: Configuring the Rapp Manager

Contents

  1. Overview
  2. Usage

Overview

This tutorial shows how to run the ROCON app manager in standalone mode. That is, no interaction with an Android or multimaster concert. This is still useful in terms of having a useful structure on the robot that is able to install, upgrade and launch the robot in a useful way that makes maintenance and retasking simple.

If you haven't already, make sure you have installed either the rocon_app_platform environment, or the full rocon environment itself.

Usage

> roslaunch rocon_app_manager standalone.launch --screen

This launches under a namespace determined by the robot name parameter passed to the rocon app manager in the launch file - here the default name is 'Cybernetic Pirate', hence all of the rapp manager's handles can be found under the ros name 'cybernetic_pirate'.

There are more convenient ways to work with the rapp manager, but here we'll get started with just the command line and your basic ros comms. To retrieve what rapps are runnable (using 'grep -v data' here to avoid spamming with icon data):

> rosservice call /cybernetic_pirate/list_rapps | grep -v data
available_rapps: 
  - 
    name: rocon_apps/listener
    display_name: Listener
    description: Default ros style listener tutorial
    compatibility: rocon:/
    status: Ready
    icon: 
      resource_name: ''
      format: png
    required_capabilities: []
  - 
    name: rocon_apps/chirp
    display_name: Chirp
    description: Make an audible "chirp" sound.
    compatibility: rocon:/
    status: Ready
    icon: 
      resource_name: ''
      format: png
    required_capabilities: []
  - 
    name: rocon_apps/talker
    display_name: Talker
    description: Default ros style talker tutorial
    compatibility: rocon:/
    status: Ready
    icon: 
      resource_name: ''
      format: png
    required_capabilities: []
running_rapps: []

Starting a rapp:

> rosservice call /cybernetic_pirate/start_rapp "name: 'rocon_apps/talker'"
> rostopic list
/app_manager/app_list
/app_manager/chatter
/app_manager/incompatible_app_list
/app_manager/remote_controller
/gateway/force_update
/gateway/gateway_info
/rosout
/rosout_agg

The standalone rapp manager will always start application connections underneath the application namespace. The second argument in the start rapp call is for remapping the connections. By default, the talker rapp is at 'chatter', but supposing we wish to start it at babble:

# First stop
> rosservice call /cybernetic_pirate/stop_rapp
# And restart with remappings
> rosservice call /cybernetic_pirate/start_rapp "name: 'rocon_apps/talker'
remappings:
- remap_from: 'chatter'
  remap_to: 'babble'"
# Validate
> rostopic list
/app_manager/app_list
/app_manager/babble
/app_manager/incompatible_app_list
/app_manager/remote_controller
/gateway/force_update
/gateway/gateway_info
/rosout
/rosout_agg

Wiki: rocon_app_manager/Tutorials/indigo/Standalone Rapp Manager (last edited 2014-05-02 02:57:24 by DanielStonier)