Show EOL distros: 

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

Package Summary

A Node to discovery the running ROS Masters in local network. The discovering is done by send a echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

multi_master_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

Package Summary

A Node to discovery the running ROS Masters in local network. The discovering is done by send a echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multi_master_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | node_manager_fkie

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Discover the running ROS Masters in local network. The discovering is done by sending an echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Discover the running ROS Masters in local network. The discovering is done by sending an echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Discover the running ROS Masters in local network. The discovering is done by sending an echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Discover the running ROS Masters in local network. The discovering is done by sending an echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Discover the running ROS Masters in local network. The discovering is done by sending an echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

multimaster_fkie: default_cfg_fkie | master_discovery_fkie | master_sync_fkie | multimaster_msgs_fkie | node_manager_fkie

Package Summary

Discover the running ROS Masters in local network. The discovering is done by sending an echo heartbeat messages to a defined multicast group. The alternative is to use a zeroconf/avahi daemon to register the ROS master as service and discover other ROS masters.

Overview

This package contains discovery nodes to detect a ROS master in a multi robot system. There are currently two nodes 'master_discovery' and 'zeroconf' which uses different discovery strategies. 'zeroconf' node uses an avahi implementation of zeroconf technique. The 'master_discovery' node sends periodically a multicast message to notify about an available ROS master. Furthermore the ROS master will be monitored for changes. On changes other discovery nodes are notified using a timestamp. This feature is used e.g. by master_sync to syncronize the ROS masters. Moreover an XML-RPC server created by a discovery node helps to avoid a lot of requests on remote ROS master for a synchronization.

Usage

Getting started

Although the nodes are written in Python we need to generate message and service types:

rosmake master_discovery_fkie

catkin_make

Run the node:

rosrun master_discovery_fkie master_discovery

To use zeroconf for discovering you need to run:

rosrun master_discovery_fkie zeroconf

In this case you have to install python-avahi and avahi-daemon!

Interface

Published Topics

~changes (master_discovery_fkie/MasterState)
  • Description of the ROS master
~linkstats (master_discovery_fkie/LinkStatesStamped)
  • The list with links and their quality, determined from packet loss. Not available if using zeroconf node.

Services

~list_masters (master_discovery_fkie/DiscoverMasters)
  • The list with all known ROS masters and their description

Parameters

~name (String, default: hostname)
  • The name of the ROS master
~rpc_port (int, default: 11611)
  • The port number for XML-RPC server created by the node.
~rosmaster_hz (int, default: 1)
  • The test rate of ROS master state in Hz.
~heartbeat_hz (int, default: 2)
  • The send rate of the heartbeat packets in Hz (only for master_discovery node).
~mcast_group (String, default: "226.0.0.0")
  • The IPv4 multicast group used for discovery (only for master_discovery node).
~mcast_port (int, default: 11511)
  • The port number of the socket used for discovery (only for master_discovery node).
~static_hosts (list, default: [])
  • The list of hosts wich are pinged using a unicast messages (only for master_discovery node). /!\ This can lead to a high load on the network!

Published Topics

~changes (multimaster_msgs_fkie/MasterState)
  • Description of the ROS master
~linkstats (multimaster_msgs_fkie/LinkStatesStamped)
  • The list with links and their quality, determined from packet loss. Not available if using zeroconf node.

Services

~list_masters (multimaster_msgs_fkie/DiscoverMasters)
  • The list with all known ROS masters and their description
~refresh (std_srvs/Empty)
  • Let the master discovery send heartbeat requests to update the neighbors

Parameters

~name (String, default: hostname)
  • The name of the ROS master
~rpc_port (int, default: 11611)
  • The port number for XML-RPC server created by the node.
~rosmaster_hz (int, default: 1)
  • The test rate of ROS master state in Hz.
~heartbeat_hz (int, default: 2)
  • The send rate of the heartbeat packets in Hz (only for master_discovery node).
~mcast_group (String, default: "226.0.0.0")
  • The IPv4 multicast group used for discovery. You can bind to defined interface by adding @address to the group. (only for master_discovery node).
~mcast_port (int, default: 11511)
  • The port number of the socket used for discovery (only for master_discovery node).
~interface (str, default: )
  • Bind the master_discovery to an interface address. If this is not specified the ROS_IP or default interface will be used. (only for master_discovery node)
~robot_hosts (since v0.4.0) (list, default: [])
  • The list of hosts to request a heardbeat message using a unicast messages. Unlike static_host this parameter is set on control station. (only for master_discovery node). /!\ This can lead to a high load on the network!
~static_hosts (until v0.4.0) (list, default: [])
  • The list of hosts wich are pinged using a unicast messages (only for master_discovery node). /!\ This can lead to a high load on the network!
~remove_after (float, default: 300.0)
  • remove an offline host after this time in [sec]
~active_request_after (float, default: 60.0)
  • send an update request, if after this time no hearbeats are received [sec] (only for master_discovery node)
~send_mcast (bool, default: True)
  • disables the send of multicast messages. (only for master_discovery node)
~listen_mcast (since v0.7.0) (bool, default: True)
  • disables the listening to multicast messages. If listen_mcast and send_mcast are False, only unicast socket will be created. (only for master_discovery node)

XML-RPC API

masterContacts()

  • Retrieve the contact information of the ROS master and remote discovery node.


    Parameters

    • empty

    Returns

    • [str, str, str, str, str]

      • (timestamp of the ROS master state, ROS master URI, master name, name of this service, URI of this RPC server)

masterInfo()

  • Retrieve list representation of complete ROS system state (i.e. publishers, subscribers, services and their types, URI's).
    Parameters

    • empty

    Returns

    • (float, float, str, str,

      • [ [str,[str] ] ], [ [str,[str] ] ], [ [str,[str] ] ], [ [str,str] ], [ [str,str,str,int,str] ], [ [str,str,str,str,str] ])

      • (stamp, stamp of local changes, masteruri, name, publishers, subscribers, services, topicTypes, nodes, serviceProvider)


        System state is in list representation:

        [stamp, stamp of local changes, masteruri, name, publishers, subscribers, services, topicTypes, nodes, serviceProvider]

        publishers is of the form:

        [ [topic1, [topic1Publisher1...topic1PublisherN]] ... ]

        subscribers is of the form:

        [ [topic1, [topic1Subscriber1...topic1SubscriberN]] ... ]

        services is of the form:

        [ [service1, [service1Provider1...service1ProviderN]] ... ]

        nodes is of the form:

        [ [topicName1, topicType1], ... ]

        topicTypes is of the form:

        [ [nodename, XML-RPC URI, origin ROS_MASTER_URI, pid, {str(local) or str(remote)} ], ... ]

        serviceProvider is of the form:

        [ [service, XML-RPC URI, origin ROS_MASTER_URI, type, {str(local) or str(remote)} ], ... ]

Wiki: master_discovery_fkie (last edited 2018-12-17 13:28:41 by AlexanderTiderko)