Only released in EOL distros:  

rocon_multimaster: redis | rocon_gateway | rocon_gateway_tests | rocon_hub | rocon_hub_client | rocon_test | rocon_unreliable_experiments | rocon_utilities

Package Summary

A hub acts as a shared key-value store for multiple ros systems (primarily used by gateways).

rocon_multimaster: redis | rocon_gateway | rocon_gateway_tests | rocon_hub | rocon_hub_client | rocon_test | rocon_unreliable_experiments | rocon_utilities

Package Summary

A hub acts as a shared key-value store for multiple ros systems (primarily used by gateways).

rocon_multimaster: rocon_gateway | rocon_gateway_tests | rocon_gateway_utils | rocon_hub | rocon_hub_client | rocon_test | rocon_unreliable_experiments

Package Summary

A hub acts as a shared key-value store for multiple ros systems (primarily used by gateways).

rocon_multimaster: rocon_gateway | rocon_gateway_tests | rocon_gateway_utils | rocon_hub | rocon_hub_client | rocon_test | rocon_unreliable_experiments

Package Summary

A hub acts as a shared key-value store for multiple ros systems (primarily used by gateways).

The Gateway Model

The gateway model is based on the lan concept where a gateway stands inbetween your lan and the rest of the internet, controlling both what communications are allowed through, and what is sent out.

Gateways for ros systems are very similar conceptually. They interpose themselves between a ros system and other ros systems and are the co-ordinators of traffic going in and out of a ros system to remote ros systems.

Gateway Model

Note that the gateways are not a point to point multimaster solution. They have been designed to be a convenient building block for a variety of more complete solutions on top. Some ideas for use cases.

Notes

Ros API

Parameters

~hub_whitelist (list of string, default: [])

  • Use this to control which hubs you wish to work with.
~hub_blacklist (list of string, default: [])
  • Use this to control which hubs you wish to not work with.
~watch_loop_period (int, default: 10)
  • How long the watcher should sleep inbetween checking if the system state needs synchronisation (secs).
~firewall (bool, default: false)
  • Used to block/permit remote gateway's from flipping to this gateway.
~advertise_all (bool, default: false)
  • Make everything (except the default_blacklist) publicly available for pulling.
~default_blacklist (list of connections (name, node, type), default: rocon_gateway/param/default_blacklist.yaml)
  • Connections that should never get advertised. Usually good to rosparam load this file as the default for your gateway.
~default_advertisements (list of connections (name, node, type), default: [])
  • Connections to advertise by default (watched for from startup). Can use python regex patterns to full effect for these. See rocon_gateway/param/default.yaml for an example.
~default_flips (list of remote_connections (gateway, (name, node, type) ), default: [])
  • Connections to flip by default (watched for from startup). Can use python regex patterns to full effect for these. See rocon_gateway/param/default.yaml for an example.
~disable_uuids (boolean, default: False)
  • Manage unique naming of multiple gateways yourself.

Services

~advertise (gateway_msgs/Advertise)

  • Advertise a connection to be shared to other ros systems.
~advertise_all (gateway_msgs/AdvertiseAll)
  • Advertise all connections except the a specified blacklist.
~connect_hub (gateway_msgs/ConnectHub)
  • Specify manually the location of the hub to connect to.
~flip (gateway_msgs/Remote)
  • Flip the specified remote rule.
~flip_all (gateway_msgs/Remote)
  • Flip all connections except the specified blacklist.
~gateway_info (gateway_msgs/GatewayInfo)
  • Current status and info about the local gateway.
~pull (gateway_msgs/Remote)
  • Pull rule from the specified remote gateway.
~pull_all (gateway_msgs/RemoteAll)
  • Pull all except a specified blacklist from the remote gateway.
~remote_gateway_info (gateway_msgs/RemoteGatewayInfo)
  • Current status and info about currently connected remote gateways.

Utilities

These scripts are located in either the global bin directory or are rosrunnable from the rocon_gateway package (prefixing the latter with a ~ to distinguish them)

  • gateway_info : pretty prints local gateway info

  • remote_gateway_info : pretty prints remote gateway info

  • ~flip : manual command line tool to flip connections (useful for debugging)

  • ~advertise : manual command line tool to advertise connections (useful for *

  • ~pull : manual command line tool to pull connections (useful for debugging)

Tutorials

An introduction to the tools and some explanatory examples about the gateways can be found in the Tutorials.

Wiki: rocon_gateway (last edited 2018-01-04 22:13:52 by WilliamChamberlain)