Interactions are specified in yaml to be loaded onto the interactions manager node, via either the parameter server or over the node ros api.
- Direct executable
- Rosrun executable
- Roslaunch launcher
- Web url
- Web app
- Android activity
A single interaction specification in yaml has the following format:
name:
role:
compatibility:
display_name:
description:
icon:
resource_name:
parameters:
remappings:
- remap_from:
remap_to:
The names above resolve as follows:
- name : the name used to determine interaction type and start the interactivity
- direct executable : either program name (must be on the PATH), or absolute path to the program, e.g. rqt_graph
- rosrunnable : a ros resource name (pkg/filename) pair, e.g. rocon_interactions/loader
- roslaunchable : a ros resource name (pkg/launcher) where the filename is a .launch file, e.g. rocon_interactions/rviz_markers.launch
- web url : a normal web url with the web_url() wrapper, e.g. web_url(http://wiki.ros.org/rocon_interactions)
- web app : a normal web url pointing to a valid ros web app with the web_app() wrapper, e.g. web_app(http://robotics-in-concert.github.io/rocon_interactions/js/listener.html)
- android activity : the fully qualified name for launching an activity, e.g. com.github.robotics_in_concert.rocon_android.SolutionManager
- role: the role to embed this interaction in, e.g. admin, dev, customer
- compatibility: a rocon_uri field establishing its platform compatibility
- display_name: a human friendly name to show to the user
- description: provide some info about the interaction, important as the name can be usually configured in various ways
- icon: an icon to represent this interaction (optional)
- resource_name: ros resource name to locate this icon
- parameters: is a free-form yaml variable used to configure the interaction in various ways:
- direct exes/rosrunnables/android app : loads the yaml directly as private ros parameters.
- roslaunchables : utilise key-value pairs only and passes these in as roslaunch args.
- web app : utilise key-value pairs only and reads these from the query string of the url.
- remappings: same meaning as remappings in roslaunch xml files, see the examples
- roslaunchables : currently do not accept remappings (workaround: use parameters passed in as roslaunch args to configure topic names).
Interactions may be combined together in a yaml list for loading onto the interaction node.
The interactions node will substitute various symbols when loading the interactions. These include:
- ROSBRIDGE_ADDRESS : substitutes the interactions node’s configured rosbridge address parameter
- ROSBRIDGE_PORT : substitutes the interactions node’s configured rosbridge port parameter
Web app:
name: web_app(http://robotics-in-concert.github.io/rocon_tools/js/current/listener.html)
role: 'Web Apps'
compatibility: rocon:/*/*/hydro|indigo
display_name: Listener
description: Simple listener using rosjs in a web app.
icon:
resource_name: rocon_bubble_icons/rocon.png
parameters:
rosbridge_address: __ROSBRIDGE_ADDRESS__
rosbridge_port: __ROSBRIDGE_PORT__
remappings:
- remap_from: /chatter
remap_to: /babbler