What Is ROS and Why It's Needed

This post explained what is ROS and ROS 2 (Robot Operating System) and when it's needed in today's market.

Time to read:

6

minutes

Learning robotics can be complex for most, especially when it’s hard to find decent code. Often, developers will research code to use for their projects and not find anything that’s usable, so they create their own. The time taken for this research can hold them back and hinder the accessibility of robots to those worldwide.

Robot Operating System (ROS) solves this problem. ROS strives for a standardized platform. One where professionals and hobbyists can collaborate and share code for software development. That way, when working on a new project, engineers don’t have to re-learn how to use the platform.

Read along as we explore what the robotic operating system is. We'll cover other bits of information engineers need to know about ROS. The language used for ROS. A list of companies that use this operating system. Also, ways enthusiasts and engineers can jump into the action without paying a fortune.

What Is ROS?

The robot operating system was introduced in 2007 and serves as a flexible framework for writing robot software. It's a collection of libraries and tools. ROS connects professionals and enthusiasts to share and reuse code for robotics applications.

Hobbyists, researchers, and engineers can contribute to this open-source platform through various communities. With easy access to code, robots become accessible to more around the world.

Contrary to the acronym, it’s not an operating system—ROS runs on Linux Debian and Ubuntu. The robot operating system serves as middleware. It provides a set of plug-and-play libraries to speed up the development of robots.

Middleware deals with the communication between different programs.

When using ROS, engineers will have an easier time dividing their codebases into packages that contain programs known as nodes.

The robot operating system utilizes the following tools to allow the programs to communicate with one another:

  • Actions: this enables users to give directions that aren’t time-sensitive to monitor the server’s state.
  • Topics: a medium to relay information among the nodes. Other nodes within the packages can follow these nodes to receive the transmitted data.
  • Services: they create a synchronous channel between nodes. This method allows developers to request specific actions from robots and adjust settings.

Open Robotics (OR) supports the robot operating system. OR also offers the Ignition platform. For years, students, professionals, and hobbyists have utilized their platform. ROS has helped them perform research and launch products.

What Is ROS 2? 

ROS 2 succeeds where ROS couldn’t. It’s revamped from the robot operating system’s existing framework and optimized for industrial use. ROS 2 bases its communication on Data Distribution Service (DDS).

It removes the reliance on a master node its preceding counterpart has. That standard, combined with the intra-process API ROS 2, offers users an enhanced transmission mechanism.

For instance, ROS 2 addresses ROS 1’s performance issues and has set the following goals:

  • Multi-platform. As of now, ROS limits itself to Ubuntu 18 or Linux Debian. Users can now benefit from ROS on macOS, Windows, real-time operating system (RTOS), and other operating systems.
  • Real-time control. ROS lacks real-time design. ROS 2 makes up for this weakness by improving robots’ performance and timeliness of control.
  • Multiple robot systems. ROS 2 will improve network performance and support for multiple-robot system
  • Microcontrollers. The new operating system will support embedded microcontrollers units (MCU). A couple of examples include M7 and ARM-M4.

What Language Is ROS Written In?

The robot operating system uses two languages; Python and C++. However, developers can use ROS in any modern language. When using ROS, engineers will write Python in the rospy library and C++ in roscpp.

Users can install rosbridge to support any language that speaks JSON. Moreover, enthusiasts can search through available libraries to see if there are any that support ROS.

When Should Engineers Use ROS?

Here are some typical scenarios when engineers might want to use the robot operating system:

  • They are learning robotics. With the ROS framework, newbies can easily reuse code and develop robot applications. Users can also quickly transfer this code to other robots, allowing them to experiment.
  • Robotics research. Since ROS is open-source, all the needed communication tools and code are already available. ROS allows researchers to focus on what matters.
  • Prototyping. ROS allows anyone to quickly implement projects and adjustments to get out a prototype in days if they know what they’re doing.

If the project involves various devices. ROS provides a distributed system for multiple devices. This upgrade makes scaling a lot easier.

With ROS 1, users will have certain limitations. For instance, the lack of support for real-time controls. Furthermore, ROS isn’t ideal if the project calls for crafting a basic robot. 

What Companies Use ROS?

Several of the world’s largest robotics companies use the robot operating system. There are iRobot, Fetch Robotics, and Doosan, for example. 

Here’s a list of several noteworthy companies that use ROS:

  • Amazon Web Services
  • Samsung
  • John Deere
  • Microsoft
  • Siemens

In one way or another, these corporations have found a way to weave this OS into their systems. They could use a ROS fork or an installation. A few use-cases include robotic vacuums, medical supplies, and agriculture. Moreover, these companies have incorporated ROS into their systems to grow their company’s automation.

Is ROS Accessible to Hobbyists?

Until recently, it could cost up to a small fortune to get one’s hands on a device that could output AI functionality. However, in 2019 the lack of affordable devices changed for the better. NVIDIA introduced its Jetson Nano—an embedded Linux dev kit. Priced under $100, this hardware enables hobbyists to develop low-powered autonomous machinery.

Installing the robot operating system on a Jetson Nano is simple. It’ll take less than 10 minutes. Explore installROS repository, enter some scripts, and ROS is good to go. Conversely, users can install the robot operating system on Ubuntu 18 and use it to configure their catkin workspace. These workspaces simplify the installation and build processes for ROS packages.

Conclusion

ROS expands the opportunities to develop robotics software for professionals and hobbyists alike. Similar software to what some of the planet’s most prominent corporations use in their robotics means it’s trustworthy.

The embedded Linux dev kit Jetson Nano further enables those just getting into robotics to bring their projects to life.

As the robot operating system expands, so will its features and software due to its open-source environment.