Research Outline

ROS Programming

Goals

To provide a report detailing the key differences between ROS 1 and ROS 2, industry statistics as to which version is more widely used, as well as case study examples and applications of ROS1 and ROS2.

Early Findings

ROS 1 and ROS2 - Key Differences

Some of the key differences between ROS 1 and ROS 2 have been listed below:
  • ROS 1 was first published in 2007, while ROS 2 was officially released in 2017.
  • ROS 1 can only be programmed using C++ 03, C++ 11, and python 2. ROS 2 can be programmed using C++ 11, C++ 14, C++ 17, and python 3.5.
  • ROS 1 supports the Ubuntu and OS X operating environment, while ROS 2 supports Ubuntu Xenial, Windows 10, and OS X El Captain.


ROS 1 and ROS2 - Industry Usage Statistics

The usage rates for various ROS 1 and ROS 2 packages by the ROS community have been listed below:
  • (ROS 1) Hydro and earlier: 0.00%
  • (ROS 2)Bouncy and earlier ROS 2: 0.12 %
  • Rosdistro independent: 12.10%

The complete list of release packages for ROS 1 can be found here, while the complete list of release packages for ROS 2 can be found here.

Summary of Findings

In our initial hour of research, we were able to identify a number of differences between ROS 1 and ROS 2. As it stands, ROS 2 was designed to improve and modernize ROS 1. However, the majority of the ROS community still actively makes use of ROS 1, and less than 5 percent of the community has moved to ROS 2.