[Documentation] [TitleIndex] [WordIndex


This is just a broad overview of transports - relevant for multimaster since we are often dealing with the difficulties arising from wifi networks. Please update if you have more accurate information.


These are old and just useful as a starting reference.

Transport Types


Examples: TCP, ZeroMQ.

Description: Use to absolutely make sure a client gets the packet you send it. Ideal for ros service or action style messaging where you absolutely need a message flow to not break down.

Issues: Difficult to rely on for wireless connections. {TODO} what exactly goes wrong in ros when both ends aren't guaranteed to be there?

Semi Reliable

Examples: OpenPGM

Description: Allows the receiver end to determine what to do about lost packets - resend the packet, data or just ignore. Ideal perhaps for multi-robot-device communications.

Issues: No current implementation with ros message marshalling.


Examples: UDP

Description: Lost packets are just thrown away and ignored. In ros, this means a whole data message gets thrown away if just one udp packet gets lost.

Issues: No current rospy implementation, no control over what to do about lost packets.

Transport Hints


Current Status

Desirables not in ros comms (as of fuerte):

Uncertain Desirables:


<notice>It is our responsibility to ensure that when there is progress in this area we make sure we provide input</notice>

As much as I'd like to, transports is a huge job and part of the core ros - not our sphere. However it's important we remember the previous point. Unfortunately it's not likely that any of this will be available with the ros msg architecture soon, but we should be ready when it comes.

2022-06-11 13:05