A ROS node is a single program that does one job in a robot's software — a camera driver, a planner, a controller — and talks to the others over topics and services. Nodes are the building blocks of every ROS robot.
A ROS node is one small program with one job. A robot's software is built from many nodes — one reads the camera, one plans the path, one drives the motors — each talking to the others through shared channels.
Open up the software of any ROS robot and you'll find it isn't one big program — it's a swarm of small ones, each with a single responsibility. Each of those is a node.
What it is
A ROS node is a single program that does one job: one node reads the camera, another runs SLAM, another plans a path, another drives the wheels, another watches for e-stops. Each runs as its own process, and together they form the robot's software. This "many small programs" design is deliberate — it's what makes robot software modular, debuggable, and reusable.
Nodes cooperate through the ROS graph
Each node does one thing and passes results to the next over topics and services. Swap or restart any single node without rebuilding the whole robot.
How nodes talk
A node communicates with others through four mechanisms:
Because nodes are decoupled, you can run them on one computer or spread across several, in different languages (C++ via rclcpp, Python via rclpy), and mix and match freely.
Why this design wins
Fault isolation. One node crashing doesn't necessarily take down the rest.
Reusability. A well-written lidar driver node works on any robot with that lidar.
Testability. Run one node in isolation, feed it recorded data, and check its output.
Teamwork. Different engineers own different nodes without stepping on each other.
In ROS 2, "lifecycle" and "composable" nodes add extra control — managed startup states and the option to run several nodes in one process for efficiency.
Why it matters
The node is the atom of ROS software architecture. Every ROS robot is, at bottom, a graph of nodes exchanging messages — so understanding nodes is understanding how robot software is built.