Basic Concepts

Introductory topics to know about ROS.

Note: This page was generated from UM23-Docs/ros-introduction.md and may not always be up to date.


Node

A node is a program that is responsible for carrying out a specific task, such as sending or receiving data from a sensor, or performing a computational task. Nodes communicate with each other through topics, which allow them to exchange information and coordinate their activities.

singleTopic multipleTopic

Topic

Topics are channels that nodes use to communicate with each other. Think of a topic as a bulletin board where nodes can publish and subscribe to messages related to a specific topic of interest.

For example, a node that has GPS sensors could use a topic to publish information about the car’s position, speed, and rotation. Other nodes that need access to this information, such as a control node, could subscribe to this topic to receive and process the data to perform actions based on the information received.

Topics are designed to be flexible and decentralized, which means that nodes can publish and subscribe to topics without having to know the details of the other nodes’ implementation.

ROS Msg

Messages are the data structures used to represent information exchanged between nodes through topics. Messages define the format, data types, and semantics of the data that a node will send or receive through a topic.

Publisher

A publisher is a module of a node that “write/publish/paste” data in a topic.

You can have python program that makes a specific task and publish the result in a certain topic.

Suscriber

A suscriber is a module of a node that “read/copy” data of a topic.

You can have a python program that to make a specific task reads data from a certain topic.

Last modified March 18, 2023: Fix link to image (62e4b8e)