Supporting newer versions of Ubuntu

I’m just getting started with ROS and feel I’m left with a set of undesirable choices for installation. My robot uses an Nvidia Jetson, which only supports Ubuntu 22.04 and thus Humble. My computer runs Ubuntu 24.04, but I can’t install Humble on it.

My choices are to reinstall my OS (painful and leaves me without patches I need for other programs unrelated to ROS), use Docker (I expect this will introduce tremendously more complications for some of my sensor drivers and ROS GUI programs), use a VM (introduces performance overhead and other difficulties and I’m already on an older machine), or develop on an incompatible version of ROS and cross my fingers (risky).

It would be really nice if older ROS 2 releases added support for the subsequent version of Ubuntu even if at a lower tier of support.

I believe this is a wrong assumption. Docker containers, as some people may not know, are insanely thin wrappers around Linux kernel namespaces. Making sensors available in Docker should not be a problem (virtual all production users of Transitive run it in Docker and they can still access their cameras just fine). And running GUIs (X applications) in docker is well documented, too.

Yes, and it would be nice if Nvidia supported newer versions of Ubuntu on their Jetsons :wink:

1 Like

`do-release-upgrade` and tadaa, you’re on 24.04.

Use RoboStack and install the same ROS distribution on both systems.

Jetpack 7.x for Jetson devices runs on Ubuntu 24.04.

If you are using Orin, it should be supported in Jetpack 7.2 that should be released soon.

Right now 7.x is only for Thor

My current workflow is indeed based on Docker, so you are not tied to NVIDIA’s release schedule. You spotted this correctly: the JetPack release that ships Ubuntu 24 for the Jetson Orin Nano will come after the release of the next ROS version based on Ubuntu 26. That’s why I would suggest not being too tightly bound to JetPack releases.

I currently use a Docker image based on Ubuntu 24, and it works very well on Jetson (with CUDA integration). However, there is also a bit of luck involved. You can’t really guarantee that CUDA will work with an Ubuntu 26–based Docker image on Jetson.

That’s why I’m thinking about the next step: using Pixi (and consequently RobotStack) to install ROS, so you are no longer constrained by the host Ubuntu version.

I’m even considering installing ROS via Pixi inside a Docker container, but I still need to experiment with this approach.

Another option is using Yocto, but the overhead is significant. It does work—I’ve done it—but if you can avoid it, I would recommend avoiding it.

That’s my humble opinion after working with Jetson for a few years.

(In any case, I don’t think that ROS should support multiple Ubuntu versions. In Open Source, Human Resources are important/gold and I prefer to see new features than spending time maintaining things in // like multiple Ubuntu versions. That’s only my humble opinion.)

1 Like

You’re thinking too much about Docker here. On a Jetson or any Ubuntu host, it’s easy to give a container access to `/dev` devices like cameras and LIDARs with the `–device` flags. You can also use `xhost` or `-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix` to run GUI apps. Since it’s not a VM, there isn’t much speed overhead. For Humble on Ubuntu 24.04, a simple Docker setup is much easier than switching between OSes, and you won’t have to cross your fingers that sensors will work. Using ros2 and docker in production is pretty much the norm these days.

2 Likes

There’s also Apptainer/Singularity. A little bit different philosophy than Docker, but the isolation you get is great and the restrictions you get are very few (e.g. X11 apps work out of the box).

Is the info about Ubuntu 26 official?
Jetpack 7.2 should come out with Orin support in Q2 2026, I doubt they’ll make a distro upgrade while keeping the same Jetpack version.
See the roadmap here:

Also, they confirmed it in the forums:

Changing topic, if you need docker containers with Ubuntu 24.04 for Jetson Orin there are also the containers by Dusty, I see they are still publishing updates but I didn’t run them in a while:

This is not correct, jazzy supports 22.04 as tier 3. Meaning you can compile jazzy from source on 22.04 without problems.

1 Like

In general, I agree that running via Docker isn’t too much of a hurdle. In my case, my robot has a Zed camera on it. I haven’t tried to run it via Docker, but it seems to introduce extra complications to manage the compatibility between it and available Nvidia images. E.g. stereolabs/zed - Docker Image states that openGL images are required for their GUI programs and Nvidia no longer publishes Docker images with openGL support for their latest software. I could probably use an older image or otherwise figure out how to make it work, but it seems like an extra layer of headache I’d rather avoid our of the gate. I may revisit this in the future

Thank you! I ended up compiling Jazzy from source as suggested. It took several hours as I had to go through long compile times numerous times while installing some new dependency after each attempt. I finally got it to work by installing the packages below in addition to those listed in the documentation:

sudo apt install libtinyxml2-dev libeigen3-dev libxrandr-dev python3-pyqt5 qttools5-dev-tools pyqt5-dev-tools sip-dev pyqt5-dev libxaw7-dev libbullet-dev
pip install lark

I really appreciate the help!

Jetpack 7.x is Kernel 6.8, Ubuntu 24.04 (see the image on the link you provided) so yes Q2 2026 you will have Ubuntu 24.04 on Jetson Orin Nano.