Categories
ROS

ROS Noetic: What You Need to Know

ROS Noetic is the latest and marks the last Long Term Support (LTS) ROS 1 release targeted to Ubuntu 20.04. Like other ROS LTS, Noetic is supported for five years, from May 2020 to May 2025.

Introduction

ROS Noetic Ninjemys is the 13th and latest distribution release of Robot Operating System (ROS), the most popular framework for programming robots. It was released on May 23, 2020 by Open Robotics, the developer of ROS. May 23 is also the World Turtle Day, which is sponsored yearly since 2000 by American Tortoise Rescue. The day is mainly created to “celebrate and protect turtles and tortoises and their disappearing habitats around the world”.

ROS Noetic
The poster of ROS Noetic

It is also a Long Term Support (LTS) ROS release that mainly targeted to Ubuntu 20.04, which is also a LTS version of Ubuntu. Ubuntu 20.04 was released on April 23, 2020 and Noetic is released one month later in May 23. As a LTS version, ROS Noetic will be supported for 5 years until May 2025, which marks the End of Life (EOL) date. It is also good to know that all ROS LTS versions are supported for 5 years. The LTS means the bugs and security issues found will be fixed and released throughout the 5 years. You will get these updates after you install ROS Noetic on Ubuntu, where you set up the official ROS Debian package repo partly for this purpose.

Noetic is also the last and final official release of ROS 1. In the future, all the official effort will be put into developing ROS 2, which is a major rewrite of the ROS framework. It is actually recommended to plan to upgrade to ROS 2 to be future-proof. However, if it is not realistic due to your dependencies not supporting ROS 2 yet, limited support for ROS 1 may still come from the robotics community.

Why Noetic and Ninjemys in the name?

Noetic means intellect. As ROS’s developer Open Robotics describe Noetic, “there is perhaps no better way to describe the entire pursuit of ROS 1”.

Noetic: Greek noΔ“tikos intellectual, from noein to think, from nous mind

Noetic on Merriam-Webster

For Ninjemys, it is an extinct turtle species in Australia, according to Wikipedia. The Ninjemys turtles have a large pair of horns on its head stuck out to the sides.

Ninjemys turtle restoration
The Ninjemys turtles, featuring 2 horns on head.

Timeline

The alpha version of ROS Noetic was planned around the end of February 2020. In the alpha version, core packages are built successfully and released.

The deadline of the beta version was planned around the end of April 2020. This phase is to ensure all the packages could be released. The ros-noetic-dekstop-full metapackage should also be downloadable by then.

The final release was planned and released on May 23, 2020.

Reference: http://wiki.ros.org/noetic/Planning.

3 ways to install ROS Noetic

ROS Noetic is mainly developed for Ubuntu 20.04, so Ubuntu is the recommended Linux OS for installation. Learn how to install it on Ubuntu 20.04 or use Docker for the install Noetic. In the latter option, Docker allows you to run ROS on any operating system that you can install Docker to. However, having Ubuntu 20.04 will give you the most support as it is more popular. If you have a Raspberry Pi, you will need to compile from source to install ROS Noetic packages. Learn how to do this in our guide on How to Install ROS Noetic on Raspberry Pi 4.

In fact, you can also install ROS Noetic on Debian 10 Buster, but Ubuntu has a much larger userbase and Ubuntu is designed to be user friendly and based on Debian.

Noetic vs ROS Melodic: What’s New

Compared to the last ROS LTS release ROS Melodic, ROS Noetic mainly features Python 3, which is a major shift from Python 2, which has been EOL by the Python foundation. This changes requires you to port your ROS packages to Python 3.

Python 3 in Noetic

The main change is that the version of Python in ROS Noetic is bumped to Python 3 (3.8) in Ubuntu 20.04, compared to Python 2.7 in Ubuntu 18.04

One of the major difference from Python 2 (Python 2.7) to Python 3 is the print statement syntax. You will need to bracket the arguments when using print in Python 3.

You can learn how to port your Python 2 code to Python 3 through the official porting guide from the Python documentation.

There is also a guide on transitioning to Python 3 on ROS Wiki.

Gazebo 11 in Noetic

ROS Noetic is using Gazebo 11 now, compared to Gazebo 9 in ROS Melodic. The version 11 of the Gazebo simulator is released on January 30 in 2020. You can read the change log to see all the changes with pull request numbers here, and how to migrate from 9 to 11, including the additions and modifications to the code (there was also version 10 in between).

CMake 3.16

Because ROS Noetic targets Ubuntu 20.04, the CMake version has bumped to 3.16.3 from 3.10.2 in Ubuntu 18.04. The minimum CMake version in the beginning of your CMakeLists.txt file should be at least 3.0.2. Otherwise, CMake will display a warning message.

cmake_minimum_required(VERSION 3.0.2)

Python 3 and CMake are the 2 major changes. For migration to ROS Noetic, please read the migration guide on ROS Wiki: http://wiki.ros.org/noetic/Migration.

Other changes

The point cloud library is PCL 1.10 in Noetic, compared to 1.8 in Melodic.

OpenCV is 4.2 now on Noetic from 3.2 from ROS Melodic.

ROS Noetic packages: What are available?

It is also helpful to check out the ROS Noetic distribution file on GitHub to see all the packages currently available: https://github.com/ros/rosdistro/blob/master/noetic/distribution.yaml. Each package occupies 15 lines, so you can get a rough number by having the total line number divide by 15. You can also use the history function to check what are the packages released for ROS Noetic.

You can also check the status page for the unreleased packages that are blocking their dependent packages: http://repositories.ros.org/status_page/blocked_releases_noetic.html?s=6&r=1.

3+

By VarHowto Editor

Welcome to VarHowto!

2 replies on “ROS Noetic: What You Need to Know”

Leave a Reply

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