Fdata / Blog / ROS Robot Operating System Overview and Key Points

ROS Robot Operating System Overview and Key Points

ROS Robot Operating System Overview and Key Points

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 Unitree Robotics  education, research, and industrial tasks https://www.unitree.com/go2
Boston Dynamics USA Boston Dynamics Industrial Inspection https://bostondynamics.com/products/spot/

Top 5 Wheeled Robots Using ROS

Copmay name Country Robot Picture Playload Official Website
MiR Denmark MiR Robot 600kg https://www.mobile-industrial-robots.com
Robotnik Robot Spain Robotnik Automation Robot 150kg https://bostondynamics.com/products/spot/
Robotnik Spain 250kg
Clearpath Robotics Canada Clearpath Robotics 100kg https://clearpathrobotics.com
Fdata Robot China agricuture robot A025 1000KG https://www. fdatabot.com

Best Tracked Robots with ROS Integration

Copmay name Country Robot Picture Application Official Website
Superdroid

Robots

Canada Superdroid Robot  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.

Contact Form
Leave a Reply

Your email address will not be published. Required fields are marked *

Leave a Message