tf + multiple machines + wifi

asked 2015-11-27 16:32:59 -0500

rb gravatar image

updated 2015-11-27 16:33:18 -0500

I'm working on a multi-robot system. Currently, the system runs one roscore on a "mission control" machine. Each robot runs all of its own nodes on its own machine. Bandwidth between machines is limited and latency is variable (the system uses wifi and also 4G + VPN).

The general model here is that data exchange between machines is very minimal and relatively infrequent. Any cross-machine message should not be time-critical or require high bandwidth.

I am new to TF and I want to understand how it exchanges information. For regular ros nodes, the mapping between the networking layer and the ros layer is very straightforward. A ros pub and subscriber represents a TCP/IP connection. IF the pub and sub are on the same machine, then there is no network traffic.

I am having trouble understanding how tf exchanges information over the network. The descriptions I've found are a bit vague and according to the ros node graph (using rqt_graph), it seems everything just goes to a node called "/tf".

What I would like to accomplish is this:

  • Each robot has its own set of local frames, updated continuously, which I would like to avoid transmitting over the network.
  • The "mission control" machine maintains a global world frame, and knows where each robot is located (but this can be updated on the order of 1hz or less).

If someone could provide me with some reference info that will help me design this, it would be much appreciated.

What I'm hoping I can do is follow a model similar to the rest of the nodes:

  • Make sure tf frames are only accessed on the machine they are generated on.
  • Write a slow-update node that simply publishes the robot's position to the "mission control" node at a low rate. My hope is this prevents tf from sending data over the network.
edit retag flag offensive close merge delete

Comments

I think you'll want to look at multimaster setups. IIRC you should be able to either configure things to do what you want, or only need to do minimal work to get something similar.

Also: /tf is not a node, it's a topic.

gvdhoorn gravatar imagegvdhoorn ( 2015-11-28 09:43:08 -0500 )edit

Somewhat similar, but on a different level (and therefore not on that multimaster page I think): AIS-Bonn/nimbro_network, meant for "high-latency, low-quality networks".

gvdhoorn gravatar imagegvdhoorn ( 2015-11-28 09:45:49 -0500 )edit