How to install ROS Noetic (Ubuntu 20.04) or ROS Melodic (Ubuntu 18.04) on Jetson Orin JetPack v6.0?

How to install ROS Noetic (Ubuntu 20.04) or ROS Melodic (Ubuntu 18.04) on Jetson Orin JetPack v6.0?

And I also noticed phrases: Noetic is not supported on Ubuntu 22.04.

Is that mean “ROS is NOT supported by Jetpack v6.0 based on Jammy 22.04 distribution”?

Hi @daniel2008_12, you can try to build docker container for Noetic on JetPack 6:

The container will compile ROS from source. I will also try it here to see if hit any error or not on L4T R36.3.

I checked github, it seems there is no 36.3 tags (PASSING Build).

And I have downgrade to 35.5, there is no such tags either.

@dusty_nv Is that mean I need to use latest master and try ?

— EDIT, I’m stucked at OpenCV-4.5.0-aarch64.tar.gz(I think nvidia.box.com is NOT accessible from mainland China, anyway to work around?).

+ apt-get clean
+ '[' off == on ']'
+ '[' '!' -z https://nvidia.box.com/shared/static/2hssa5g3v28ozvo3tc3qwxmn78yerca9.gz ']'
+ echo 'Installing opencv 4.5.0 from deb packages'
+ /tmp/opencv/install_deb.sh
Installing opencv 4.5.0 from deb packages
OPENCV_URL=https://nvidia.box.com/shared/static/2hssa5g3v28ozvo3tc3qwxmn78yerca9.gz
OPENCV_DEB=OpenCV-4.5.0-aarch64.tar.gz
+ python3 -c 'import numpy'
ARCH:  aarch64
+ '[' 0 '!=' 0 ']'
+ set -e
+ apt-get purge -y '.*opencv.*'
Reading package lists...
Building dependency tree...
Reading state information...
Package 'opencv-doc' is not installed, so not removed
The following packages will be REMOVED:
  libopencv* libopencv-dev* libopencv-python* libopencv-samples*
  nvidia-opencv* nvidia-opencv-dev* opencv-licenses*
0 upgraded, 0 newly installed, 7 to remove and 0 not upgraded.
After this operation, 83.5 MB disk space will be freed.
(Reading database ... 62429 files and directories currently installed.)
Removing nvidia-opencv-dev (5.1.2-b97) ...
Removing libopencv-dev (4.5.4-8-g3e4c170df4) ...
Removing opencv-licenses (4.5.4-8-g3e4c170df4) ...
Removing libopencv-python (4.5.4-8-g3e4c170df4) ...
Removing libopencv-samples (4.5.4-8-g3e4c170df4) ...
Removing nvidia-opencv (5.1.2-b97) ...
Removing libopencv (4.5.4-8-g3e4c170df4) ...
+ mkdir opencv
+ cd opencv
+ wget --quiet --show-progress --progress=bar:force:noscroll --no-check-certificate https://nvidia.box.com/shared/static/2hssa5g3v28ozvo3tc3qwxmn78yerca9.gz -O OpenCV-4.5.0-aarch64.tar.gz

— EDIT2: I can mannually download the gz file, where should I put instead of using wget to dowload the gz file?

Hi @daniel2008_12 , you can replace that wget section in the dockerfile and openCV install script with a COPY command instead of RUN to copy your local copy of that archive into the container, and then proceed with extracting it like the commands did normally.

I am also attempting to build ROS Noetic again now for JetPack 6 / L4T R36.3, I will let you know how it goes and upload the image to DockerHub if it passes.

I tried it and could not get Noetic building on 22.04:

Thanks for info.

I have rolled back to Linux 35.5 + JetPack v5.1.3, which can install ros-noetic.

Hello, I’d like to ask how you rolled back to JP5.1.3(there are still many areas needing improvement in jp60), I haven’t seen specific instructions on the downgrade process, especially regarding QSPI operations,so I’d like to ask for your advice…

@SeasonMay Just re-install from image, not downgrade the system.

I have put a link of Linux 35.5 + JetPack v5.1.3@ros-noetic reinstall.

Hello all,

I have the same issue, will need to have a Noetic environment at Jetpack 6.0. I am relatively new to the Jetson/Jetpack topics. If it is not possible to have Noetic Docker Image, would it be possible to have a Docker Image with Jetpack 5.1.2 + Ubuntu 20.04 + ROS Noetic? Or would it be only possible without using the full Jetpack image but Ubuntu 20.04 + ROS Noetic Docker image?

Thank you for ideas.

@batuhan.sakal it’s not possible if you want CUDA acceleration in Noetic on JP6, or in the same container. The CUDA packages available for JP6 are for 22.04, and I can’t get Noetic to build on aarch64 22.04 (would be great if someone did get it working of course). For JP5, I already have Noetic containers built with CUDA here:

https://hub.docker.com/r/dustynv/ros/tags?page=&page_size=&ordering=&name=noetic

DoesJP6 is open source, so someone with the knowledge can hackin?

@dusty_nv Thank you very much dusty.
What I am trying to understand here:
-When it says dustynv/**ros:noetic-desktop-l4t-r35.4.1**
Does it mean it has l4t-r35.4.1 based image(that has Jetpack 5.1.2 inside) or is it an image suitable for a system with Jetpack 5.1.2?

Basically my question is can I run this image with r35.4.1 image on my Jetpack 6 installed Orin?

My application won’t need CUDA, I just need ROS1 environment on my Jetpack 6 Orin for some ROS packages.

I am grateful for help.

@batuhan.sakal generally-speaking, the containers built for JetPack 5 / L4T R35 can be run on versions of JetPack 5, but are not compatible with systems running JetPack 6. Some parts with CUDA may or may not work. Over time we have decoupled the dependencies so that the containers are more portable across JetPack/OS versions (as should be the case with Docker), however there are still some limitations - particularly across major releases of JetPack where significant changes to the driver infrastructure occurred. In the future it should continue becoming less of an issue as the Jetson iGPU driver architecture is merged with dGPU.

1 Like

Thank yo very much for the answer @dusty_nv
In this case what would you be your suggestion to have ROS1 environment on a Jetpack5 installed AGX Orin? I have different packages that is dependent on ROS1 and ROS2, I need Jetpack 6 for ISAAC ROS 3.0. Therefore can’t have my computer running with JetPack 5.

@batuhan.sakal - @i_love_nvidia had mentioned they were actually able to run the ros:noetic-*-r35.4.1 containers on JetPack 6 (unclear if GPU acceleration was working or not), but if you don’t need CUDA in Noetic, then that could be an option.

1 Like

Thank you very much for the support Dusty, I will try 🙏