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
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