ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Can I run ROS jade in combination with Ubuntu snappy core?

asked 2016-09-30 05:02:44 -0500

JRikken gravatar image

updated 2016-09-30 07:51:15 -0500

Hello all,

I am developing a modular robotic arm, which will consist of the following parts:

  • A PC running the motion planning (MoveIt & ros_control)
  • Embedded controllers which run the local PID loops to control the arm's joints

My idea was to use SBC's (Single Board Computers) running linux as the embedded controllers, so for communication between the main PC and the embedded controllers the standard ROS infrastructure can be used.

Most of these SBC's have some ARM processor, so my initial guess would be to run a stripped down ARM Ubuntu version on the SBC's. However, Canonical seems to have stopped distributing ARM versions of Ubuntu, apart from their new distribution for embedded systems: Ubuntu snappy core. This would not be an issue, since there is a nice plugin to create snappy-compatible packages out of ROS workspaces with the catkin plugin for snapcraft. (see also: this link). This would generate a stand-alone application that contains all ROS (and other) dependencies and is compatible with the snappy package system. (the main issue with the snappy distribution over the old ARM distributions is that you can no longer use apt-get to retrieve needed ROS packages, so the only way to get ROS on snappy is to either create a snappy package containing the ROS nodes and dependencies, or to install ROS from source)

But here is the catch:

  • MoveIt is released up to ROS jade, running on Ubuntu 15.04 (Vivid) (but not on later ubuntu versions)
  • Snapcraft is released only on Ubuntu 16.04 (Xenial), so this would correspond to ROS kinetic

As far as I know, mixing two ROS distributions is not recommended, so there would be couple options to get this working:

  • Install MoveIt from source for kinetic on Ubuntu 16.04 (Xenial) PC: Ubuntu 16.04 + Kinetic, Embedded: Ubuntu 16.04 Snappy Core
  • Install ROS jade from source on Ubuntu 16.04 (Xenial) and create snappy packages from there PC: Ubuntu 15.04 + Jade, Embedded: Ubuntu 16.04 Snappy Core, Build PC: Ubuntu 16.04 + Jade
  • Install Snapcraft from source on Ubuntu 15.04 (Vivid) and create snappy packages from there PC: Ubuntu 15.04 + Jade, Embedded: Ubuntu 16.04 Snappy Core
  • Install ROS jade from source directly onto Ubuntu 16.04 Snappy Core (circumventing the snappy package system altogether) PC: Ubuntu 15.04 + Jade, Embedded: Ubuntu 16.04 Snappy Core + Jade from source

Does any of you have any experience with this? Is this even feasible? Or would it be best to move to some other OS for the embedded controllers (one of the boards I am considering is the BeagleBone Black which can also run Debian or Angstrom for example (see also: this link) which also has some unofficial ROS support). My preferred situation would be to use as much stable software as possible, preferably in the form of binary releases.

Thanks in advance!

edit retag flag offensive close merge delete


There is a Ubuntu server 16.04 for arm systems. It comes with no graphical interface but installing a desktop environment would be an easy task

Mehdi. gravatar image Mehdi.  ( 2016-09-30 05:20:53 -0500 )edit

And building MoveIt! from source on Kinetic is actually a pretty well supported (and documented) endeavour. See Source Installation Instructions - Kinetic for some info. A debian release is also close. How the ARM factor influences this, I can't say though.

gvdhoorn gravatar image gvdhoorn  ( 2016-09-30 05:23:23 -0500 )edit

@Mehdi: thanks for pointing out the server distribution, but the only available version is 16.04, which would force me to compile MoveIt from source as well (since the only ROS version compatible with 16.04 is kinetic, and MoveIt is not released for kinetic yet).

JRikken gravatar image JRikken  ( 2016-09-30 07:30:45 -0500 )edit

@gvdhoorn: it seems that compiling MoveIt from source is not as hard as I tought. Actually, if I understand correctly, the fact that MoveIt is allready in ros-shadow-fixed suggests that it is almost ready for release... I will definately look into this...

JRikken gravatar image JRikken  ( 2016-09-30 07:35:06 -0500 )edit

What about Ubuntu 14.04? the one most people are using nowadays with ROS Indigo?

Mehdi. gravatar image Mehdi.  ( 2016-09-30 08:35:43 -0500 )edit

@Mehdi: I was looking for 14.04, but I could not find it. the download page for server for ARM only lists 16.04. the alternative downloads link only lists some specific ARM targets.

JRikken gravatar image JRikken  ( 2016-09-30 09:09:14 -0500 )edit

@Mehdi: targeted at the beaglebone black (BBB) there is snappy 15.04 see here, maybe that is the best candidate, it is specifically developed for the BBB, and it should be possible to install ROS Jade from source on 15.04 ARM...

JRikken gravatar image JRikken  ( 2016-09-30 09:15:49 -0500 )edit

here are the releases of ubuntu 14.04

Mehdi. gravatar image Mehdi.  ( 2016-10-05 02:20:24 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2016-12-09 13:03:39 -0500

kyrofa gravatar image

updated 2016-12-09 13:04:51 -0500

You have a few options. First of all, as some comments have pointed out, you can still access arm versions of trusty. However, let's assume you want to use Ubuntu Core. There are two versions of Ubuntu Core that have been released: Ubuntu Core 15 (based on vivid), and Ubuntu Core 16 (based on xenial). Corresponding to this, there have been two major releases of Snapcraft, v1 (which targets Ubuntu Core 15) and v2 (which targets Ubuntu Core 16).

If you were happy with using Ubuntu Core 15, you could use Snapcraft v1 out of this PPA (that's an official PPA), and build your snap on trusty or vivid and make the snap using Jade. You tell Snapcraft what ROS distro to use with the rosdistro parameter.

However, you can still use Ubuntu Core 16 and snapcraft v2, since snaps bundle their dependencies. A Jade ROS system should run perfectly happy as a snap on Ubuntu Core 16 (and the normal xenial desktop/server) since all the libraries required would live inside the snap. While Snapcraft v2 does indeed only run on xenial (and beyond), you can still tell it to build your workspace using Jade. The downside today is that the build would indeed happen on xenial, which isn't ideal as it's possible to run into library inconsistencies. This is a known issue, and it will soon be solved by Snapcraft v2 supporting the ability to run the build in an ephemeral LXC container of a specific Ubuntu version.

Even without that, it's still entirely possible that your Jade system will build and run perfectly fine.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2016-09-30 05:02:44 -0500

Seen: 486 times

Last updated: Dec 09 '16