ROS System Design Goals
With the rapid advancement and increasing complexity of robotics, the demand for code reusability and modularity has grown increasingly urgent. Some open-source robotics systems have struggled to adequately meet these needs. In 2007, Willow Garage released the open-source Robot Operating System (ROS), which quickly sparked a wave of learning and adoption within the robotics research community.
The ROS system originated from a collaboration between a 2007 project at Stanford University’s Artificial Intelligence Laboratory and Willow Garage’s Personal Robots Program. After 2008, development was led by Willow Garage. With the remarkable feats of early ROS robots like the PR2—such as folding clothes, plugging in devices, and preparing breakfast—ROS gained increasing attention. Willow Garage expressed its ambition to leverage open-source development to transform PR2 into a “universal” robot.
PR2 came with a hefty price tag, retailing for $400,000 in 2011. It is now primarily used for research. Equipped with two arms, each featuring seven joints, PR2’s end effectors are grasping grippers. Mobility is provided by four wheels mounted on its base. High-resolution cameras, laser rangefinders, inertial measurement units, tactile sensors, and other advanced sensing equipment are mounted on the PR2’s head, chest, elbows, and grippers. Two 8-core computers at the base serve as the control and communication hub for the robot’s hardware. Both computers run Ubuntu and ROS.
ROS Design Goals
ROS is open-source and serves as a secondary operating system for robots. It provides functions similar to those of an operating system, including hardware abstraction, low-level driver management, execution of shared functions, inter-program messaging, and package management. It also offers tools and libraries for acquiring, building, writing, and running multi-robot collaborative programs. ROS is open-source and serves as a backend operating system, or secondary operating system, for robots. It provides functions similar to those of an operating system, including hardware abstraction, low-level driver management, execution of shared functions, inter-program messaging, and package management. It also offers utility programs and libraries for acquiring, building, writing, and running multi-robot collaborative programs.
Key Features of the ROS
The ROS runtime architecture is a processing framework that utilizes ROS communication modules to establish loosely coupled peer-to-peer network connections between modules. It implements several communication types, including service-based synchronous RPC (Remote Procedure Call) communication, topic-based asynchronous data flow communication, and data storage on the parameter server. However, ROS itself does not inherently possess real-time capabilities.
The key characteristics of ROS can be summarized as follows:
-
Peer-to-Peer Design
A system using ROS consists of a series of processes that exist across multiple distinct hosts and communicate during operation through a peer-to-peer topology. While software frameworks based on central servers can also achieve the advantages of multi-process and multi-host environments, these frameworks encounter issues with the central data server when computers are connected via different networks. A system using ROS consists of a series of processes that exist on multiple different hosts and communicate during operation through a peer-to-peer topology. Although software frameworks based on a central server can also achieve the advantages of multi-process and multi-host environments, in these frameworks, problems arise with the central data server when computers are connected via different networks.
-
Multilingual Support
When writing code, many programmers tend to favor certain programming languages. These preferences stem from factors such as the amount of time spent programming in each language, debugging effectiveness, syntax, execution efficiency, and various technical and cultural considerations. To address these issues, we designed ROS as a language-neutral framework. ROS now supports numerous different languages, including C++, Python, Octave, and LISP, and also includes multiple interface implementations for other languages.
The uniqueness of ROS primarily manifests in the message communication layer rather than deeper levels. End-to-end connections and configurations are implemented using the XML-RPC mechanism, which also includes well-documented implementations for most major programming languages. We aim for ROS to be implemented more naturally across various languages, aligning with their respective syntax conventions, rather than providing interfaces based on C for other languages. However, in certain cases, leveraging existing libraries to encapsulate support for new languages is convenient. For example, the Octave client is implemented using a C++ wrapper library.
To support cross-language development, ROS employs a simple, language-agnostic interface definition language (IDL) to describe message exchanges between modules. The IDL uses concise text to define each message’s structure and allows message composition. For example, the following diagram illustrates a point message described using IDL:
Code generators for each language produce corresponding native code files. During message transmission and reception, ROS automatically compiles and executes these files in parallel. This saves significant programming time and reduces errors: the three-line IDL file automatically expands into 137 lines of C++ code, 96 lines of Python code, 81 lines of Lisp code, and 99 lines of Octave code. Since messages are automatically generated from simple text files, new message types can be easily enumerated. At the time of writing, known ROS-based code libraries contain over four hundred message types. These messages transmit sensor data, enabling objects to detect their surroundings.
The end result is language-agnostic message handling, allowing multiple languages to be freely mixed and matched.
-
Streamlining and Integration
Most existing robotics software engineering projects contain drivers and algorithms that can be reused outside the project. Unfortunately, due to various reasons, the intermediate layers of most code are overly messy, making it difficult to extract their functionality and apply them beyond prototyping.
To counter this trend, we encourage gradually evolving all drivers and algorithms into standalone libraries independent of ROS dependencies. ROS-built systems feature modularity, where code within each module can be compiled separately. The CMake tool used for compilation facilitates the concept of minimalism. ROS essentially encapsulates complex code within libraries, creating only small applications to demonstrate library functionality. This allows simple code to be ported and reused beyond prototyping. As a new advantage, unit testing becomes significantly easier when code is distributed across libraries. A single test program can verify multiple features within a library.
ROS leverages code from numerous existing open-source projects. For instance, it borrows driver, motion control, and simulation code from the Player project; vision algorithms from OpenCV; planning algorithms from OpenRAVE; and many others. In each instance, ROS provides diverse configuration options and facilitates data communication between software components while applying minimal wrappers and modifications. ROS continuously evolves through community maintenance, incorporating updates from other software libraries and application patches into its source code.
-
Comprehensive Toolkit
To manage the complex ROS software framework, we leveraged numerous utilities to compile and run diverse ROS components, designing them as a kernel rather than constructing a massive development and runtime environment. These tools handle various tasks, such as organizing source code structures, retrieving and setting configuration parameters, visualizing end-to-end topology connections, measuring bandwidth usage, vividly depicting information data, and automatically generating documentation. Although we have tested core services like the global clock and recorder for controller modules, we still aim to modularize all code. We believe any efficiency loss is far outweighed by the benefits of stability and reduced management complexity.
-
Free and open-source
All ROS source code is publicly released. We believe this will inevitably promote debugging at all levels of ROS software and continuously correct errors. While non-open-source software like Microsoft Robotics Studio and Webots possesses many commendable attributes, we maintain that an open-source platform remains irreplaceable. This holds especially true when hardware and software at all levels are designed and debugged concurrently. All ROS source code is publicly released. We believe this will inevitably promote debugging at all levels of ROS software and continuously correct errors. Although non-open-source software like Microsoft Robotics Studio and Webots also possess many commendable attributes, we consider an open-source platform to be irreplaceable. This is especially true when hardware and software at all levels are designed and debugged simultaneously.
Representative Robots of Typical ROS on The Market
Representative robots using ROS on the market showcase how this open-source framework supports diverse applications. For example, mobile robots such as TurtleBot and Husarion ROS bot are widely used for education and research; service robots like Fetch and PR2 highlight advanced manipulation and navigation capabilities; while industrial platforms such as Clearpath’s Husky demonstrate ROS integration in rugged environments. These examples reflect the flexibility and scalability of ROS in both academic and commercial robotics.
The following lists representative quadruped ROS robots, wheeled ROS robots, and tracked ROS robots.
Best Quadruped Robots Powered by ROS
| Copmay name | Country | Robot Picture | Application | Official Website |
| Unitree Robotics | China | ![]() |
education, research, and industrial tasks | https://www.unitree.com/go2 |
| Boston Dynamics | USA | ![]() |
Industrial Inspection | https://bostondynamics.com/products/spot/ |
Top 5 Wheeled Robots Using ROS
| Copmay name | Country | Robot Picture | Playload | Official Website |
| MiR | Denmark | ![]() |
600kg | https://www.mobile-industrial-robots.com |
| Robotnik Robot | Spain | ![]() |
150kg | https://bostondynamics.com/products/spot/ |
| Robotnik | Spain | ![]() |
250kg | |
| Clearpath Robotics | Canada | ![]() |
100kg | https://clearpathrobotics.com |
| Fdata Robot | China | ![]() |
1000KG | https://www. fdatabot.com |
Best Tracked Robots with ROS Integration
| Copmay name | Country | Robot Picture | Application | Official Website |
| Superdroid
Robots |
Canada | ![]() |
Tactical Robot Tactical Robot | https://www.superdroidrobots.com/store/tracked-robots |
Looking for Customized Robotics Solutions? Contact US
Get in Touch
Fdata is a mobile robot manufacturer in China, we specialize in customized mobile robot solutions, helping customers from idea to mass production.









