Hope these kinds of questions are allowed here. On this occasion I’m just looking for a straight answer.
For a university course I need to install ROS - software for doing robotics stuff. Specifically, I need ROS 1 - which is no longer being updated, as ROS 2 is now the focus. The installation instructions are here: https://wiki.ros.org/Installation/Ubuntu
The instructions from the course material say that only Ubuntu 18 would work, though the ROS wiki says Ubuntu 20.04 is the target. Either way, it doesn’t seem to be available for Ubuntu 22.04 and therefore Linux Mint 21, which is what I’m running.
The course instructions generally gives 3 options:
- Install ROS on a VirtualBox virtual machine
- Install on Windows using WSL
- Install on a real Ubuntu 18 system
Right now I’m going to use VirtualBox to get started, but I’d really prefer to run it natively and I’m worried about performance. Is there a simple way to download and run software intended for Ubuntu 20.04 on Linux Mint 21.3?
Edit: thank you all for the great suggestions! I got stuck on an unrelated problem (ran out of storage space) but I’m sure your suggestions will work once I fix that. Forgive me for not replying individually, you’re all awesome and I don’t have anything to add other than “thank you” :)
Sounds like distrobox/ toolbx would be the easiest here. There’s an ubuntu 18.04 image here https://github.com/toolbx-images/images it’s like a vm without all the overhead
Since they already mentioned WSL, you can also describe distrobox like WSL for Linux.
but yeah, agree this would be the simplest.
Ubuntu themselves package ROS, it’s a little out of date from the latest (1.16 vs 1.18) https://packages.ubuntu.com/jammy/ros-desktop
Try apt update && apt install ros-desktop
I’d say distrobox is the easiest and safest way to do that.
Install from source is fairly likely to work: https://wiki.ros.org/noetic/Installation/Source
It doesn’t seem to have any outrageously complicated dependencies to work, just C++, Boost and a few other recognizable names, at least at a glance. They also seemingly have an ArchLinux package, which means it’s likely to at least be buildable on latest everything. Mint will fall in between, so the odds it’ll compile are pretty good.
I don’t have much to comment on native installs that hasn’t already been said, but if you go with a VM, please don’t use VirtualBox. It’s a pile of hot garbage that pales in comparison to the already existing, kernel-level virtualization offered by KVM/QEMU. Use a package like
virt-manager
for KVM/QEMU based VMs and your experience and performance will be infinitely better. The Linux kernel has KVM built in for a reason, so take advantage of that.Otherwise, Distrobox is a great recommendation, as are many of the other install methods listed in these comments.
For maximum performance you probably want to skip virt-manager, virt-viewer has a hardcoded FPS cap.
If you use QEMU directly and use virtio-gpu paired with the sdl or gtk display, and OpenGL enabled, you can run Ubuntu at 4K144Hz no problem. The VM is near imperceptible, and it works out of the box, that’s not even touching the crazy VFIO stuff.
Perhaps I was a bit vague with the word “performance”, but given that this user only seems to be interested in running ROS, there is absolutely no reason they need anything above the FPS cap (hence my recommendation of
virt-manager
, as it is quite user friendly). The “performance” aspect of it boils down to CPU utilization and efficiency more than anything.
In general this kind of thing won’t work real real well. You can sometimes make it work but it takes a surprisingly large amount of knowledge about the internals of the packaging system and even then it sometimes fails or causes problems.
I would try install ROS 1 via
apt
as another poster recommended, with VirtualBox as the fallback option (and see whether performance turns out to be a real issue in practice or not).May not qualify as “simple” versus a VM, but you can try using chroot environment. You essentially run minimal Ubuntu environment from a folder that can be a newer or old version of the host OS.
Both Snap and Flatpak provide an easy install for the really old, pre 1997, NCSA Mosaic browser. The Snap page gives a hint about how this was done :
Built from source code hosted at: https://github.com/alandipert/ncsa-mosaic Thanks to John Lenton for the snapcraft config.
This suggests that if you can build the ROS 1 from source, you have Flatpak and Snap as option, and maybe also AppImage.
Besides that there is also Linux KVM (QEMU) which may perform better than VirtualBox. Cannot find a good page for Ubuntu on it, but here’s the KVM entry of the excellent Arch Linux wiki https://wiki.archlinux.org/title/KVM
deleted by creator
Try it?
I haven’t really needed to virtualize anything lately, but my understanding is that some of the options on Linux are pretty light weight. Frpm discussion I’ve seen, I think distrobox could resolve the issue with minimal overhead if you have issues natively, though I haven’t personally experimented with it or its limitations.