



Overview
Both ROS (Robot Operating System) and ROS 2 are open-source frameworks designed to simplify the development of complex, distributed robotic systems. While ROS provides a robust middleware layer for communication, abstraction, and modularity, ROS 2 builds on these concepts with improved scalability, reliability, and real-time capabilities125.
ROS (ROS 1) Architecture
Core Concepts:
- Nodes: Independent processes that perform computation, such as sensor drivers, controllers, or perception algorithms. Each node is responsible for a specific function and can run on the same or different machines45.
- Master: The central coordinator that enables nodes to find each other and establish communication. It manages the registration of nodes, topics, and services24.
- Topics: Named buses for asynchronous, unidirectional message passing between nodes. Nodes can publish messages to a topic or subscribe to receive messages from it245.
- Services: Synchronous communication mechanism for request-response interactions between nodes245.
- Parameter Server: Stores configuration and static data that nodes can access at runtime2.
- Bags: File format for recording and replaying message data, useful for debugging and analysis2.
Communication Model:
- Publish-Subscribe: Nodes communicate by publishing messages to topics and subscribing to topics of interest125.
- Request-Response: Nodes can provide or call services for synchronous communication25.
Modularity and Flexibility:
- ROS is highly modular, allowing developers to start, stop, or replace nodes dynamically without affecting the rest of the system6.
- The system is distributed, supporting nodes across multiple machines, with communication handled transparently by the middleware16.