ABSTRACT

This chapter focuses on the concept of nodes in Robot Operating System (ROS), starting with minimal examples. Communications among nodes are at the heart of ROS. A node is a ROS program that uses ROS's middleware for communications. Communication among nodes uses the concepts of messages, topics, roscore, publishers and subscribers. A topic may be introduced and various publishers may take turns publishing to that topic. Thus, a subscriber only needs to know the name of a topic and does not need to know what node or nodes publish to that topic. The concept of a ROS package is introduced, along with instructions on how to compile and link the code via the associated files package.xml and CMakeLists. A package is a ROS concept of bundling multiple, necessary components together to ease building ROS code and coupling it with another ROS code. There are a few idiosyncrasies regarding the node name.