Proposal: ROS 2 support

Background

ROS 1 is currently supported by the Catkin plugin. ROS 2 is currently under development and approaching release of beta 2 (current goal is July 7th), so we’re looking to add support to Snapcraft. ROS 2 changes several key technologies that require a separate plugin:

  • It uses a new build system called ament
  • It does not have a master (it uses DDS for distributed discovery)
  • Debian packages mostly don’t exist, and are still under heavy development:

Proposal

Create a new plugin called ament. Investigate re-using debs as done in the Catkin plugin, but resort to building ROS from source if necessary (the debs may be too unstable).

Re-use as many components from the Catkin plugin as possible, most notably rosdep. This will require stripping such components out of the Catkin plugin and into a more common area, currently running with creating a snapcraft.plugins.ros package for such things. Do this as a prerequisite step so as to keep diffs small.

1 Like

First step toward this feature is extracting rosdep out of the Catkin plugin.

https://github.com/snapcore/snapcraft/pull/1392

1 Like