ROS 2 in Leo Rover – what to expect?

There is a new version of LeoOS and it’s based on none other than ROS 2!

November 25, 2022


Aleksandra Szczepaniak

Leo Rover desktop environment

We’ve been working on a new ROS 2-based operating system for the Leo Rover mobile robot and guess what? We did it! Well, it’s still not particularly stable, but hey, it’s a work in progress. Read on to find out what’s new in the LeoOS.

New LeoOS based on ROS 2

We’ve released the second beta of LeoOS – an experimental version of the software image based on ROS 2. In it, we switched to the latest Ubuntu distribution – 22.04 LTS Jammy Jellyfish – with ROS Humble Hawksbill.

But first, a quick recap.

About ROS

ROS, which stands for Robot Operating System, is an open-source software package created in 2007 by Willow Garage, initially for their robot called PR2. The goal was to ease robot development by creating a very general framework, one that wouldn’t require plenty of experience from users to write in it and use its functionalities. And this is how the open-source ROS framework emerged and has constantly been developed ever since. Today, it provides a wide array of tools helpful with low-level device control, package management, hardware abstraction, and the like.

Around 2015, ROS developers decided to change and improve some things, but instead of implementing the modifications to ROS 1, they started to work on ROS 2 completely from scratch and that’s how it appeared.

How to upload new LeoOS to your Leo Rover?

The experimental ROS 2 version of LeoOS is easy to upload to your Leo Rover. You do it the same way as the old version – you download the image, either the lite or full version. Lite is just a poorer version of the image that lacks the desktop environment. This means you won’t be able to connect to the robot via a remote desktop and run any graphical applications. All of this can be done in the full version, which also provides additional tools such as Rviz, RQt and others. After uploading the image to the microSD card (see how to do that here), you need to flash the firmware onto the controller board – depending on the iteration of the robot you have, it’ll be either LeoCore or CORE2-ROS (see our guide on how to update the firmware).

The key differences from the user’s perspective

While the basic concepts between ROS 1 and ROS 2 remain the same, many of the commands as well as the fundamental architecture differ quite a bit. For example, the rosserial project is not available in ROS 2, so we had to rewrite a large portion of the firmware to use micro-ROS instead. In addition, we’ve made some improvements, although not necessarily ROS-related. 

You can find a more in-depth comparison here.

What to still be aware of

The new LeoOS is experimental as it introduces a lot of changes, so, there are a few things to keep in mind. For example, there are some visible bugs in the firmware such as that the board may stop communicating with the rover and, then, it needs to be reset. Another limitation is that we have yet to support launching multiple robots on ROS 2 in a single network. In addition, most of the tutorials on our website are not adjusted to ROS 2, which is another issue. It’s important to bear this in mind when trying to complete our guides with the new ROS version as it may require some tinkering on your side, for instance, with some of the commands. Other than the aspects mentioned above, everything else is pretty much the same.

It’s also worth mentioning that we’ve slightly refreshed the desktop environment. Below, you can take a peek at what the new LeoOS’s desktop looks like:

Leo Rover desktop environment
Leo Rover’s refreshed desktop
RViz in Leo Rover
RViz launched in Leo Rover’s desktop environment

What do we plan?

Currently, the Leo Rover runs on the latest ROS 1 distribution – ROS Noetic Ninjammys. After May, 2025, there will no longer be any ROS 1 distributions. But until then, we’re going to support it, so no worries. 

As for the new ROS 2 LeoOS, at this point, we can’t say for certain what its future holds. Perhaps it’ll become the default version or perhaps it’ll remain experimental forever. Time will tell :) In the meantime, click below to go the GitHub repository from where you can download the new LeoOS files:

Beta 2 of LeoOS

More changes to come

We want you to keep in mind that we’re constantly working on the ROS 2 in the Leo Rover robotic platform, so there’s bound to be more changes and improvements. In case you have any questions regarding the new LeoOS, or need help with pretty much anything else, don’t hesitate to reach out to us at Cheers!

See more blog posts:

<- get back to the Blog