ROS Transports

The ROS transport enables some communication between RSB participants and ROS nodes.

The ROS transport for RSB maps the following URI schemas to ROS network protocols:

tcp+ros (See TCP+ROS Transport (without Master Lookup))

Direct connections to the TCP endpoints of ROS nodes.

ros (See ROS Transports)

Connections to ROS nodes are made via the ROS master.

TCP+ROS Transport (without Master Lookup)

Direct connections to the TCP endpoints of ROS nodes. This low-level protocol requires knowing the hostname and TCP port of a ROS node. Knowing the node name and/or topic is not sufficient on this level.

Note

This schema is supported in the Python and Common Lisp implementations of RSB.

Schema

See also

URIs
Use of URIs in RSB.

This transport uses the tcp+ros URI schema.

Options

The following Configuration options are accepted:

Name        Type   Comment
+ transport
+-- tcp+ros
+---- host  string Hostname on which endpoint runs
+---- port  uint16 Port on which entpoint listens

Implementations

Language File(s)
C++ not implemented yet
Java not implemented yet
Python /../rsb-ros-python/rsbros/transport/tcpros/__init__.py
Common Lisp “0.11” branch of https://code.cor-lab.org/git/rsb.git.ros-cl src/transport/tcpros

ROS Transport (with Master Lookup)

Connections to ROS nodes are made and accepted via the ROS master. That is the ROS master is consulted to determine the endpoint for a given topic. After that, a low-level connection is established, if one of the ROS transports offered by the endpoint is supported.

For this schema, nameservice queries which yield multiple results or change over time can lead to a changing set of connections. For example, the URL ros:/foo could causes connections to be established to nodes publishing the topics /foo/bar and /foo/baz.

Note

This schema is only supported in the Common Lisp implementation of RSB.

Schema

See also

URIs
Use of URIs in RSB.

This transport uses the ros URI schema.

Options

The following Configuration options are accepted:

Name        Type   Comment
+ transport
+-- ros
+---- host  string Hostname on which the ROS master runs
+---- port  uint16 Port on which the ROS master listens

Implementations

Language File(s)
C++ not implemented yet
Java not implemented yet
Python not implemented yet
Common Lisp “0.11” branch of https://code.cor-lab.org/git/rsb.git.ros-cl src/transport/ros

Bus Semantics

TODO

Limitations

TODO