0
$\begingroup$

Currently ROS is tied to Ubuntu LTS releases. However, with the latest releases, I'm finding Ubuntu increasing bloated and laggy. With Ubuntu 22.04, it is particularly noticeable. For embedded systems, a lightweight OS is crucial, so it seems like it would be particularly relevant to Robotics users. I realize there are work arounds, but those invariable come with a cost, and it'd be better if ROS had proper support for other popular varieties of Linux. I often read posts suggesting other Linux distros are much faster and better at managing RAM, but ROS is currently keeping me locked to Ubuntu. Are there any plans to change?

$\endgroup$
0

3 Answers 3

1
$\begingroup$

There are a few options:

  • Compilation. ROS has tier 1 support for Ubuntu but also well-documented compilation instructions that would work on other distros. Yocto is probably a good choice if you want to squeeze performance.
  • FAT archives. Depending on the target OS you may have luck with "fat" archives, see this and this.
  • Docker. This is my favorite method, we heavily utilize this at the company. Pick a Docker base image, configure X11 forwarding (if you need ROS GUI tools), and use it as a remote shell. Any of the previous methods will bring you problems once you start installing 3rd party ROS packages as they often rely on specific versions of system packages.

However, with the latest releases, I'm finding Ubuntu increasing bloated and laggy.

I haven't experienced it, but GNOME is probably responsible. You can use the server version of Ubuntu or replace it with something lighter like i3.

I often read posts suggesting other Linux distros are much faster and better at managing RAM

I would like to conclude with the most important advice: Don't get distracted by micro-optimizations.

Performance gains you will get by switching Linux distro are extremely marginal. The choice of algorithms, hardware acceleration, memory management, choice of programming language, and system architecture will make a way greater impact on performance.

$\endgroup$
0
$\begingroup$

What is the embedded platform you are planning to use?

There are a few options:

  • MicroROS and MicroROS2
  • If you are using a platform like a Raspberry Pi, you can choose to run Raspberry Pi OS which also has good support and community for ROS.

ROS works pretty decently on most of the Debian based systems

$\endgroup$
0
$\begingroup$

ROS libraries can be compiled for just about any OS or low-power device. There are a few things that need to be figured out first. ROS2 is a giant CMake project. There are instructions for building ROS2 from source in the documentaiton. As long as you have the source code for the desired DDS backend (or a precompiled library), a proper cross compiler (or native compiler), and the general C++ std library dependencies, ROS can run on most hardware/software platforms. There are a few platform specific dependencies, but those will have to be derived as you go about running the CMake build. The errors will tell you about missing packages. I suggest you start learning more about CMake to learn how to build ROS2.

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.