fkie / multimaster_fkie

ROS stack with FKIE packages for multi-robot (discovering, synchronizing and management GUI)
BSD 3-Clause "New" or "Revised" License
272 stars 106 forks source link

Changing Local ROS parameters in real-time #116

Closed BurakHocaoglu closed 4 years ago

BurakHocaoglu commented 4 years ago

Hello,

I've been working with multimaster for a couple months so far and I am trying to test something related to dynamic changes in neighbouring status of ROS masters.

Let's say there are 2 distinct ROS masters on 2 distinct systems. The master_discovery component of each system will be periodically checking whether there are new masters in the network and when one of them gets in the range of the other, user can see it by echoing the ROS topics.

What I'm wondering is whether I can change the master_sync ROS parameters when one of the masters detect the existence of another ROS master and add the names of a particular set of topics and/or services to the ROS parameters accordingly (particularly sync_hosts and sync_topics ROS parameters), so that the detector master would consider the detected master as a neighbour in the ROS master network, conceptually. I see that there is a parameter in master_sync called sync_topics_on_demand, but I did not see any means/indicator such that the user can specify which topics to be tracked in real-time.

Thanks,

Burak

atiderko commented 4 years ago

Hi,

I didn't really understand your problem.

Currently master_sync is designed to sync all topics from detected remote masters. The parameter are used only if you want restrict the synchronization to specific topics, nodes or services. All available parameter you find in example master_sync.launch or on ROS wiki.

Additionally master_sync reads the parameter only at start. Parameter changes at runtime are ignored. If you change the master_sync parameter you need to restart master_sync.

If you want react to master-detections in your own code you have to subscribe to /master_discovery/changes.