Table of Contents
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
No | Features | ROS Noetic | ROS Melodic |
---|---|---|---|
1 | Fully supported OS | Ubuntu Focal Fossa (20.04) | Ubuntu Bionic (18.04) |
2 | Supported OS | Debian Buster, Fedora 32 | Ubuntu Artful (17.10), Debian Stretch, Fedora 28 |
3 | Architecture Support | amd64, arm32, arm64 | arm64, arm32, arm64 |
4 | C++ | C++ 14 | C++ 14 |
5 | Python | Python 3.8 | Python 2.7 |
6 | Gazebo | 11.x | 9.0 |
7 | OpenCV | 4.2 | 3.2 |
8 | PCL | 1.10 | 1.8.1 |
9 | Qt | 5.12.5 | 5.9.5 |
10 | PyQt | 5.14.1 | 5.10.1 |
11 | Boost | 1.71 | 1.65.1 |
12 | CMake | 3.16.3 | 3.10.2 |
13 | OGRE | 1.9 | 1.9 |
14 | Ignition | Citadel | — |
15 | Lisp | Lisp SBCL 1.3.14 | Lisp 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
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
- 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 - CMake version: The CMake minimum version mentioned in the ROS Noetic package
CMakeLists.txt
should be given belowcmake_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.