Chapter 3. Topics
As we saw in the previous chapter, ROS systems consist of a number of
independent nodes that comprise a graph. These nodes by themselves
are typically not very useful. Things only get interesting when nodes
communicate with each other, exchanging information and data. The
most common way to do that is through topics. A topic is a name for
a stream of messages with a defined type. For example, the data from
a laser range-finder might be sent on a topic called scan
, with a
message type of LaserScan
, while the data from a camera might be
sent over a topic called image
, with a message type of Image
.
Topics implement a publish/subscribe communication mechanism, one of the more common ways to exchange data in a distributed system. Before nodes start to transmit data over topics, they must first
announce, or advertise, both the topic name and the types of messages
that are going to be sent. Then they can start to send, or publish,
the actual data on the topic. Nodes that want to receive messages on
a topic can subscribe to that topic by making a request to
roscore
. After subscribing, all messages on the topic are delivered
to the node that made the request. One of the main
advantages to using ROS is that all the messy details of setting up
the necessary connections when nodes advertise or subscribe to topics
is handled for you by the underlying communication mechanism so that
you don’t have to worry about it yourself.
In ROS, all messages on the same topic must be of ...
Get Programming Robots with ROS now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.