Publish/subscribe to topics on remote ROS instances


License: BSD-3-Clause

Language: Ruby


topic_bridge enables robots on separate machines to communicate when they do not use the same ROS master.

Each ROS master should have a single topic_bridge node. The node listens to bspecified topics via ROS's communication infrastructure, and sends messages it receives to other topic_bridge nodes on other ROS masters via 0MQs publish / subscribe sockets. Upon receiving a message from a foreign topic_bridge, the local topic_bridge will broadcast the message locally via ROS' communication infrastructure.

Design notes

  • Requires 0MQ version 3.
  • ROS parameters are not supported.
  • ROS services are not supported.
  • Assumes synchronized clocks between machines.
  • No service discovery.
  • Everything is implemented using rospy.

Mesh notes

I've measured the following on a basic mesh 802.11S network.

  • Ping time between two bots is ~2ms.
  • When transferring a file from one scarab to another via scp, the max data rate is 2.8 MB/s.
  • If you send zeros via UDP from one machine to another via netcat, the max data rate is 3.3 MB/s, but it occasionally drops to 2.2 MB/s. This variance is probably due to small default send / receive UDP buffer sizes.

Commands to send, receive, and check dropped packets:

cat /dev/zero | netcat -u 8080
netcat -l -u -p 8080 | pv > /dev/null    
netstat -su

Project Statistics

Sourcerank 5
Repository Size 176 KB
Stars 0
Forks 0
Watchers 2
Open issues 0
Dependencies 0
Contributors 8
Tags 0
Last updated

Top Contributors See all

Mike Perham Kelly Mahan jsierles2 Jeffrey Hardy Timur Vafin Justin Balthrop Aleksey Yeschenko Arron Washington

Packages Referencing this Repo

A Ruby library for accessing memcachedb. Forked from memcache-client
Latest release 1.1.5 - Updated

Something wrong with this page? Make a suggestion

Last synced: 2019-10-04 02:12:18 UTC

Login to resync this repository