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
- It does not have a master (it uses DDS for distributed discovery)
- Debian packages mostly don’t exist, and are still under heavy development:
r2b2for beta 2
- http://repo.ros2.org, rosdistro
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.