Main Content

ROS Network Setup


Setting up a ROS network enables communication between different devices. These participants, or nodes, all register with a ROS master to share information. Each ROS network has only one, unique master. Each node is usually a separate device, although one device can have multiple nodes running. MATLAB® acts as one of these nodes when communicating on an existing ROS Network.

All devices must be connected to the same actual or virtual network for ROS connections to work. You can create a new ROS master in MATLAB, or you can connect to an existing ROS master that is running on a different device. If you connect to an external master, you have to know the IP address or hostname of the device. The initial ROS master connection is created by calling rosinit. For more information on setting up and using the ROS network, see ROS Network Connection and Exploration.

Nodes communicate by sending messages using entities called publishers, subscribers, and services. Publishers send data using topic names, which subscribers then receive over the network. Services use clients to request information from a server. For more information on sending messages, see ROS Network Access in MATLAB.

Network Connection Layout

The ROS network is a collection of nodes that are all connected to the ROS master. The number of nodes can be quite large depending on your application and devices. Nodes that are registered with the master can communicate with all other registered nodes. Each node registers different publishers, subscribers, and services on the ROS master to send and receive information between nodes. Even though all nodes in the ROS network are registered with the master, data is exchanged directly between nodes. The following figure shows the layout of a ROS network with two ROS nodes. All nodes must have bidirectional connectivity to share data across the network. Verifying these connections is important during setup.

ROS master and node connection network. Node 1 and node 2 are registered with the ROS master and data is exchanged mutually between the two nodes.

Each node registers its own Node URI with the master. Other participants in the ROS network will use this URI to contact the node. Again, this URI must be reachable by every other node in the ROS network. To create a node in MATLAB, call rosinit. If a ROS master is already set up, MATLAB detects it and sets the Node URI appropriately. Otherwise, it creates both a ROS master and node that are connected.

By default, each MATLAB instance has a single global node. The node has a randomly generated name assigned to it for uniqueness. All publishers, subscribers, service clients, and service servers operate on this global node.

See Also

| |

Related Topics