Show EOL distros:
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.
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: master)
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.
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: master)
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.
- Maintainer status: maintained
- Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: groovy-devel)
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.
- Maintainer status: maintained
- Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: hydro-devel)
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.
- Maintainer status: maintained
- Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: indigo-devel)
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.
- Maintainer status: maintained
- Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: jade-devel)
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.
- Maintainer status: developed
- Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: kinetic-devel)
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.
- Maintainer status: maintained
- Maintainer: Alexander Tiderko <alexander.tiderko AT gmail DOT com>
- Author: Alexander Tiderko
- License: BSD
- Source: git https://github.com/fkie/multimaster_fkie.git (branch: melodic-devel)
Contents
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
- 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
- The port number for XML-RPC server created by the node.
- The test rate of ROS master state in Hz.
- The send rate of the heartbeat packets in Hz (only for master_discovery node).
- The IPv4 multicast group used for discovery (only for master_discovery node).
- The port number of the socket used for discovery (only for master_discovery node).
- 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
- 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
- Let the master discovery send heartbeat requests to update the neighbors
Parameters
~name (String, default: hostname)- The name of the ROS master
- The port number for XML-RPC server created by the node.
- The test rate of ROS master state in Hz.
- The send rate of the heartbeat packets in Hz (only for master_discovery node).
- The IPv4 multicast group used for discovery. You can bind to defined interface by adding @address to the group. (only for master_discovery node).
- The port number of the socket used for discovery (only for master_discovery node).
- 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)
- 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!
- 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 an offline host after this time in [sec]
- send an update request, if after this time no hearbeats are received [sec] (only for master_discovery node)
- disables the send of multicast messages. (only for master_discovery node)
- 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.
Parametersempty
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).
Parametersempty
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)} ], ... ]