Robotics documentation

From development to deployment, all you need in one single platform. Ubuntu provides robotics companies with a worldwide-use infrastructure to deploy and maintain your robot.

Ubuntu Core and snaps are the tools used by global organisations to deploy and manage their software on embedded devices. Ubuntu Core is the optimised version of Ubuntu for edge devices and robotics. Snaps, the de facto container for packaging software on Ubuntu, enhanced to support ROS applications. Finally, together with the IoT App Store, businesses can manage software updates in their fleet of devices using a globally distributed and reliable infrastructure.

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. Implementing an infrastructure to track and deploy software updates increases overhead and time, not guaranteeing a reliable and widely tested infrastructure. Providing security to each phase of deployment just increases the difficulty of the task. Our open source tools provide a complete DevOps infrastructure, secure, globally used and easy, and really easy to use.

Ubuntu Core is the OS for anyone building embedded Linux devices. Snaps are the best way of packaging and distributing software compatible with dozens of Linux distributions. IoT App Store is the platform for companies looking for a production-grade software management solution.

Get started - hands-on introductions for robotics to the different product
How-to guides
Step-by-step guides covering key operations and common tasks
Concepts - discussion and clarification of key topics
Technical information - specifications, APIs, architecture

Project and community

Snap, snapcraft and Ubuntu Core Projects are members of the Ubuntu family. They are open source projects that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.
Get involved by:

  • Reporting bugs: we want to know about the problems so we can fix them.
    If you find a bug while following any of the documentation pages, you can report this by following the link at the bottom of the page saying “Help improve this document in the forum”. You will be taken to the discourse page hosting the documentation that you want to report the bug. Simply log-in to your account and click on reply to leave a comment explaining the issue.

  • Quality assurance: before releasing new features we make a “Call for Testing” a week prior to each update reaching “stable”. This is your opportunity to discover and report any problems.

  • Documentation: there are lots of ways to use Canonical Robotics solutions and we try to describe the important ones, but maybe we missed yours.
    When you are following any of the documentation pages, you will find at the bottom of the page a link saying “Help improve this document in the forum”. By clicking there, you will be taken to the discourse page hosting the documentation that you want to help us improve. Simply log-in to your account and click on reply to leave a comment proposing improvement or anything else.

  • Feature requests: we have a lot of ideas on what to do next but you know what you need. If you want a change in the documentation, please read the bullet point above. If you want to request a feature for the technologies we covered in this documentation, you can do it in our GitHub repository.

  • Code changes: the code used in our documentation pages is open and we are open to accepting changes to it. So let’s work together. Please use GitHub issues and the PR mechanism to raise code problems and propose improvements.

  • Requesting workshops: If an organization, open source community, or educational entity wants us to provide a workshop about the technologies covered on this documentation page, please get in touch!

Our projects are going to continue growing with our community. If you want to get involved:

Thinking about using one of these product for your next project? Get in touch!


Level Path Navlink
0 Home
0 tutorials Tutorials
1 Snapcraft
2 ros-deployment-with-snaps-part-1 Part 1: Packaging our first ROS application as a snap
3 developer-guide-part-1-exercise Part 1: exercise
2 ros-deployment-with-snaps-part-2 Part 2: Packaging complex robotics software with snaps
3 developer-guide-part-2-exercise Part 2: exercise
2 ros-deployment-with-snaps-part-3 Part 3: Distribute ROS applications with the Snap Store
2 ros-deployment-with-snaps-part-4 Part 4: Building ROS snaps with content sharing
1 ubuntu-pro Ubuntu Pro
2 tutorial-ros-esm ROS ESM - User Introduction
0 how-to-guides How-to guides
1 Snapcraft
2 build-and-publish-a-ros-snap-with-github-actions Build and publish a snap with GitHub Actions
2 migrate-from-docker-to-snap Migrate from docker to snap
2 ros-2-shared-memory-in-snaps ROS 2 shared memory in snaps
2 ros-distributions-with-no-extensions ROS distributions with no extensions
2 configure-a-snap-pull-a-configuration-from-a-server Configure a snap: pull a configuration from a server
2 configure-a-snap-using-a-content-snap Configure a snap: using a content snap
2 configure-a-snap-make-the-snap-configuration-overwritable Configure a snap: Make the snap configuration overwritable
1 Ubuntu Core
0 references References
1 Snapcraft
2 plugins Plugins
2 extensions Extensions
2 faq-and-troubleshooting FAQ and troubleshooting
0 explanation Explanation
1 Ubuntu Core
1 Security
2 securing-ros-robotic-platforms Securing ROS robotic platforms
1 Snaps
2 ros-architectures-with-snaps ROS architectures with snaps
2 identify-functionalities-and-applications-of-a-robotics-snap Identify functionalities and applications of a robotics snap
2 snap-configurations-and-hooks Snap configurations and hooks
2 snap-data-and-file-storage Snap data and file storage
2 snap-environment-variables Snap environment variables
2 application-orchestration Application orchestration
2 vcstool-and-rosinstall-file Vcstool and rosinstall file
2 debug-the-build-of-a-snap Debug the build of a snap
2 debug-a-snap-application Debug a snap application
1 IoT App Store


Mapping table
Old path New URL

I noticed that there is a sentence not finished:

Requesting workshops: If an organization, open source community, or educational entity wants us to provide a workshop about the technologies covered on this documentation page, please


1 Like

Thank you, I corrected it.