ROS Terminology

Node

  • A node in ROS is the fundamental unit of computation, representing a single executable program.

  • Nodes facilitate communication with others, even if written in different languages, through message exchange.

  • Best practice is to develop one node for a specific purpose, and a Master manages these nodes.

  • Nodes are created and communicate through the Master.

Package

  • A ROS package is the basic organizational unit, bundling one or more nodes along with necessary information for their execution.

  • When nodes are grouped together, they form a package; multiple packages bundled together are referred to as a metapackage.

Message

  • Messages in ROS serve as a means for nodes to exchange data.

  • Typically structured as variables or arrays containing messages.

  • Communication methods include topics and services, depending on the nature of transmission and reception.

Topic

  1. Publisher:

    • Publishes information continuously, irrespective of whether a request is made.

    • Analogous to a YouTube streamer who broadcasts content regardless of viewership.

  2. Subscriber:

    • Subscribes to specific content of interest.

    • Similar to a YouTube subscriber who watches content they find interesting.

    • The publisher continuously sends content (topic), and subscribers receive it if interested.

  3. Topic:

    • Represents the subject or content on YouTube.

    • Establishes a connection between publishers and subscribers.

    • It’s a matter of mutual interest and enables one-way communication from the publisher to the subscriber.

Service

  1. Service Client:

    • Requests a specific service from the service server.

    • Receives a response related to the service from the server.

  2. Service Server:

    • Responds only when a service request is made from a client.

    • Immediately responds with content related to the request.

  3. Service:

    • Connects the server and client, representing any requested service.

    • Involves two-way communication, consisting of a request and a response.

Action

  1. Action Client:

    • Delivers actions (executions) to the server.

    • Involves a process where the client receives intermediate results and, finally, the complete result after a longer response time.

  2. Action Server:

    • Receives actions from the client and takes corresponding actions.

    • Provides interim reports and delivers the final result to the client.

  3. Action:

    • Serves as a link between the action client and server.

    • Represents the task that the server must perform when delivered by the client, typically a time-consuming task.

    • Like a service, it involves two-way communication.

Parameter

  • Parameters in ROS act similar to services, managing parameter-related information through communication between external parameter clients.

  • They enable easy setting or changing of parameters within or outside the node.

  • Parameters can be defined in the Parameter Server, and their values can be specified through various methods.

  • YAML syntax is commonly used for parameter configuration files.

  • Tools like Rosparam (command-line) and the Param API (programming language level) allow interaction with the ROS parameter server.