ROS Noetic

Getting started with new ROS Noetic Ninjemys

1. Introduction

R.O.S (Robot Operating System) is one of the popular open-source robotics software framework and its gained vast acceptance in the robotics community. The core part of R.O.S is maintained mainly by Open-Robotics Foundation, a Nonprofit Organization based on California USA. There is an active worldwide community to develop, maintain, and support ROS.

There had an annual release of R.O.S distribution till the ROS Melodic, which was released in 2018. After Melodic, now the ROS releases are planning along with the Ubuntu L.T.S (Long Term Support).

The Noetic Ninjemys is the new L.T.S release of ROS. It is going to be the 13th ROS distribution. Noetic primary support is for Ubuntu 20.04 (Focal). The released date was May 23rd. 2020. The alpha version was released in End of February 2020, and Beta release was at the end of April 2020. You will get support for ROS Noetic up to 2025 (5 years).

After Noetic L.T.S, there will not be any new ROS 1 release, Open Robotics announced that they are putting full effort to bring up ROS 2.

So let’s have a look on to the new features and upgrades of ROS Noetic first.


2. What’s new in ROS Noetic?

In this section, we are planning to compare ROS Noetic and ROS Melodic. I am mainly planning to compare the software versions of both the distributions. Important changes are marked as red color.

The comparison between ROS Noetic and Melodic is shown below

NoFeaturesROS NoeticROS Melodic
1Fully supported OSUbuntu Focal Fossa (20.04)Ubuntu Bionic (18.04)
2Supported OSDebian Buster, Fedora 32Ubuntu Artful (17.10),
Debian Stretch, Fedora 28
3Architecture Supportamd64, arm32, arm64arm64, arm32, arm64
4C++ C++ 14C++ 14
5Python Python 3.8Python 2.7
6Gazebo11.x9.0
7OpenCV4.23.2
8PCL1.101.8.1
9Qt5.12.55.9.5
10PyQt5.14.15.10.1
11Boost1.711.65.1
12CMake3.16.33.10.2
13OGRE1.91.9
14IgnitionCitadel
15LispLisp SBCL 1.3.14Lisp SBCL 1.4.16

2.1 Python Support

One of the popular versions of Python was 2.7. On January 1st, 2020, Python 2.x stopped its official support. Till ROS melodic, the Python 2.7 support was there, but in Noetic, we are getting Python 3 exclusive support.

2.2 OpenCV version

The ROS Melodic and Kinetic were shipped with OpenCV 3.x, but in Noetic we are getting 4.x version.

2.3 Comparing version of ROS packages

If you want to compare the version upgrades of each ROS package, please check the following link

Compare Kinetic, Melodic and Noetic packages

2.4 Maintenance Status of ROS Noetic packages

If you want to check the maintenance status of ROS Noetic, you can check it form the following link

ROS Noetic maintenance status


3. Installing ROS Noetic in Ubuntu 20.04

Installing ROS Noetic in Ubuntu is a straight forward process. Still some people have difficulty in installing ROS. I have created a simple bash script to make the ROS installation easier.

3.1. Quick install – ROS Noetic

I have developed a simple script to install and uninstall ROS Noetic on Ubuntu 20.04.

Copy-paste the following command to your Ubuntu terminal and enter the password whenever it asks. During installation it will ask whether you want to install ROS full desktop installation or minimal installation. You can enter the option you want. The default option is full installation.

3.1.1 Single line ROS Noetic Installation

wget -c https://raw.githubusercontent.com/qboticslabs/ros_install_noetic/master/ros_install_noetic.sh && chmod +x ./ros_install_noetic.sh && ./ros_install_noetic.sh

3.1.2 Single line ROS Noetic Uninstall

wget -c https://raw.githubusercontent.com/qboticslabs/ros_install_noetic/master/ros_uninstall_noetic.sh && chmod +x ./ros_uninstall_noetic.sh && ./ros_uninstall_noetic.sh

Note: If the rosversion -d command not working on the current terminal, please take another terminal and execute the command. It will work.

You can find the installation script repository from GitHub.

ROS Noetic Quick Install: Github

I also updated the above instruction in ROS TwoLine Install page on wiki.ros.org

3.2. Regular installation of ROS Noetic

If you want to see the detailed steps of ROS Noetic installation, you can have a look on to the following links


4. Possible issues with Migration of Code

Here are some of the important issues that you may encounter while migrating your packages from ROS Melodic to ROS Noetic

  1. Python 3 compatibility: Most of the Python nodes in ROS Melodic are written in Python 2.x. While migrating to ROS Noetic, you may have to convert all ROS nodes to Python 3 compatible. You can find a migration guide from ROS wiki in order to port the Python 2.x code Python 3.x.

    Transitioning to Python 3
  2. CMake version: The CMake minimum version mentioned in the ROS Noetic package CMakeLists.txt should be given below

    cmake_minimum_required(VERSION 3.0.2)

Detailed ROS Noetic migration guide is here

5. Conclusion

In this post, we have seen a basic introduction on ROS Noetic, and the major changes in this version when compared with the previous version, ROS Melodic. We have seen how to install ROS Noetic in a single line command and discussed possible issues when migrating to ROS Noetic.

Lentin Joseph

View posts by Lentin Joseph
Roboticist | Author of 8 robotics books | TEDx speaker

Leave a Reply