The ROS Graph is a real-time, computational network representing the communication topology of a running ROS system, composed of nodes (executable processes), topics (asynchronous message buses), services (synchronous request-reply channels), and actions (asynchronous goal-oriented interfaces). This graph is not a static file but a live entity that can be introspected using tools like rqt_graph and ros2 node list, showing how data flows between publishers and subscribers to perform complex robotic tasks such as sensor processing, planning, and control.
Glossary
ROS Graph

What is ROS Graph?
The ROS Graph is the fundamental runtime architecture of a Robot Operating System (ROS) application, representing all active computational processes and their communication channels as a dynamic, peer-to-peer network.
This decentralized, peer-to-peer architecture enables modular system design, where nodes can be developed, tested, and deployed independently. The graph's dynamic nature allows nodes to join or leave at runtime, facilitating fault tolerance and system reconfiguration. In ROS 2, the graph is built atop the Data Distribution Service (DDS) middleware, which handles node discovery and message routing across the network, often segmented using ROS_DOMAIN_ID for logical isolation of different robot systems.
Key Components of the ROS Graph
The ROS Graph is a runtime representation of a robotic system's communication topology. It is composed of several fundamental, interacting entities that define how data and control flow between software processes.
How the ROS Graph Works
The ROS Graph is the foundational runtime communication network of a ROS-based robotic system, representing all active participants and their data flows.
The ROS Graph is a peer-to-peer network of computational processes (ROS Nodes) and their communication channels that represents the runtime dataflow topology of a robotic system. It is a dynamic, visualized entity comprising publishers, subscribers, services, actions, and the messages flowing between them. Tools like rqt_graph render this graph, providing engineers with a real-time map of the system's architecture for debugging and understanding data propagation.
This graph is not a centralized server but a decentralized mesh where nodes discover each other via a ROS Master (ROS 1) or through the Data Distribution Service (DDS) discovery protocol (ROS 2). The graph's structure is fluid; nodes can join or leave, and connections can be remapped, enabling flexible system composition. Understanding the graph is essential for diagnosing latency issues, ensuring correct topic connections, and architecting modular, scalable robotic software.
ROS 1 vs. ROS 2 Graph Architecture
A technical comparison of the fundamental architectural differences in the communication graph between ROS 1 (ROS Kinetic/Melodic) and ROS 2 (Foxy/Humble/Iron).
| Architectural Feature | ROS 1 (Noetic) | ROS 2 (Humble) |
|---|---|---|
Underlying Middleware | Custom TCPROS/UDPROS | DDS Standard (RTPS) |
Discovery Mechanism | Centralized Master Node | Decentralized Peer-to-Peer (via DDS) |
Communication Model | Publish-Subscribe, Client-Server | Publish-Subscribe, Client-Server, Actions |
Real-Time Capability | Not natively supported | Native via configurable QoS policies |
Deterministic Execution | Limited | Supported via Executors & Real-Time Executors |
Multi-Robot Support | Complex, requires network bridging | Native via Domain ID isolation |
Network Topology | Strictly centralized for discovery | Fully decentralized, no single point of failure |
Default Transport | TCP | Configurable (Shared Memory, UDP, TCP, etc.) |
Lifecycle Management | Ad-hoc (nodes start/stop independently) | Managed via Lifecycle Node state machine |
Security (Authentication/Encryption) | None | Native via DDS Security (SROS2) |
Quality of Service (QoS) Policies | Best-effort only | Configurable (Reliability, Durability, Deadline, Liveliness) |
Parameter Management | Centralized Parameter Server | Distributed, with parameter events |
ROS Graph Visualization and Debugging Tools
A suite of command-line and graphical tools for inspecting, visualizing, and debugging the dynamic communication topology of a running ROS system.
Frequently Asked Questions
The ROS Graph is the fundamental runtime communication network of a robotic system. These FAQs address its core concepts, practical management, and troubleshooting for developers.
The ROS Graph is a peer-to-peer network of computational processes (ROS Nodes) and the communication channels (Topics, Services, Actions) that connect them, representing the real-time data flow and computational topology of a running robotic system.
It is a dynamic, runtime representation of how all software components in a ROS-based robot interact. The graph is not a single file or static diagram but a living network that can be introspected using tools like rqt_graph or the command ros2 topic list. Key entities in the graph include:
- Nodes: Executable processes that perform computation.
- Topics: Named buses for asynchronous, many-to-many message streaming (publish/subscribe).
- Services: Synchronous, request-response communication channels.
- Actions: Asynchronous interfaces for long-running tasks with feedback.
The graph enables the decoupled, modular architecture central to ROS, allowing developers to build complex systems by connecting specialized, reusable nodes.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
The ROS Graph is the runtime communication topology of a robotic system. Understanding its components is essential for designing and debugging distributed robotic software.
ROS Node
A ROS Node is the fundamental executable process within a ROS graph that performs computation. Nodes are designed to be modular, each responsible for a specific function (e.g., sensor drivers, perception algorithms, controllers). They communicate with other nodes via topics, services, actions, or parameters. A typical robotic system comprises many nodes running concurrently, often distributed across multiple computers.
- Primary Role: Encapsulates a single, specific function.
- Communication: Uses a unique name for identification and addressing.
- Lifecycle: Can be started, stopped, and restarted independently, allowing for flexible system composition.
ROS Topic
A ROS Topic is a named channel for asynchronous, many-to-many data exchange using a publish-subscribe model. A node publishes messages to a topic, while other nodes subscribe to that topic to receive the data. This pattern is ideal for continuous data streams like sensor readings (e.g., camera images, LiDAR scans) or actuator commands.
- Communication Pattern: Decoupled, one-way data flow.
- Message Type: Defined by a
.msgfile, ensuring type safety. - Use Case: Streaming data where timing is critical but immediate acknowledgment is not required.
ROS Service
A ROS Service provides a synchronous, request-response communication mechanism. A client node sends a request to a server node and blocks execution until it receives a reply. This is used for on-demand computations or actions that require a definitive, immediate result, such as calculating a path, performing a one-time calibration, or querying a database.
- Communication Pattern: Synchronous, blocking call.
- Structure: Defined by a
.srvfile containing one request and one response message. - Use Case: Remote procedure calls (RPC) where a direct answer is needed to proceed.
ROS Action
A ROS Action is an asynchronous interface for managing long-running, goal-oriented tasks. Built on top of topics, it involves three channels: a client sends a goal to a server, the server streams periodic feedback, and finally sends a result upon completion or preemption. This is essential for operations like navigation, manipulation, or any task that takes significant time and may need to be monitored or canceled.
- Communication Pattern: Asynchronous with feedback.
- Structure: Defined by an
.actionfile (Goal, Result, Feedback). - Use Case: Executing and monitoring non-instantaneous tasks like 'move to location' or 'pick up object'.
ROS Parameter
A ROS Parameter is a configuration variable stored on a centralized or node-specific parameter server. Nodes can get, set, and be notified of changes to these values at runtime, enabling dynamic system reconfiguration without restarting nodes. Parameters are typically used for tuning gains, setting operational modes, or defining thresholds.
- Storage: Key-value pairs, supporting types like integers, floats, strings, and lists.
- Dynamic Reconfiguration: Nodes can subscribe to parameter events to react to changes.
- Use Case: Adjusting system behavior (e.g., control PID values, maximum velocity) during operation or between missions.
ROS Launch System
The ROS Launch System is a tool for automating the startup of complex ROS graphs. A launch file (XML or Python) defines which nodes to run, their parameters, topic remappings, and environment variables. It allows an entire multi-node system to be started with a single command, ensuring correct configuration and namespace isolation.
- Key Functions: Starts nodes, sets parameters, remaps topic names, includes other launch files.
- Namespace Support: Launches nodes within specific namespaces to avoid name collisions.
- Use Case: Essential for deployment, testing, and bringing up all software components of a robot.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us