Distributing ROS Apps with Snaps

Developer Guide Part II

Download the guide

The challenge

Robotics developers know app development inside-out, but deploying a robotics application can be challenging. It’s not uncommon to compile the code on robots, copy/paste compiled packages and end up with unknown versions of software. Even worse, the infamous “It works on my machine” syndrome is all too common.

Robotics software should benefit from a controlled and stable environment, with the same portability and reliability as any other software application. Achieving this reliability should be simple, even if our software has hundreds of dependencies.

In this guide

In part 1 of our developer guide series, we introduced the main concepts and learned what snaps can do for ROS applications. We also explored the most important features of snapcraft.

In this developer guide, we will explore advanced snaps topics and tools that will show you how to structure, package, and test complex robotics applications including:

  • Define the architecture of a robot snap.
  • How to snap a complete robot software stack and manage all the ROS workspace dependencies.
  • How to use various application scripts
  • How to make a snap configurable and expose ROS parameters at the snap level.
  • How to debug your application

This guide is meant for ROS snap beginners and advanced users looking for guidelines.

Want to learn more?

Contact information
  • In submitting this form, I confirm that I have read and agree to Canonical's Privacy Notice and Privacy Policy.