Deploying robotics applications
Improved robotics software management
When deploying robotics devices, you encounter several barriers to package, deploy, and maintain your software stack. Robotics software should benefit from a controlled and stable environment, with the same portability and reliability as any other software application. Having a production-grade update infrastructure is mandatory to stay up to date on bug fixes, new releases, and security fixes.
But developing this infrastructure can be difficult and distract you from your business goals. It also comes with overhead costs and long-term maintenance commitments.
- Deploying software on your robots should be easy, even if your software relies on hundreds of dependencies and your robots are in different locations.
Snaps are a tailored solution for robotics software management
Snaps are the perfect solution for all of these challenges. Snaps are containers that bundle an application and all its dependencies, offering roboticists:
- Containerised solution: A containerised solution: Snaps bundle all your dependencies and assets in one package, making your application installable on dozens of Linux distributions and across distro versions. You won’t even have to install anything else on your robots’ operating system, no dependencies, not even ROS if you are using it.
- Strict confinement: Snaps are designed to be secure and isolated from the underlying system and other applications, with dedicated interfaces to access the host machine.
- CI/CD integration: The creation of snaps can be integrated into your CI pipeline, making the updates effortless.
- OTA and delta updates: Snaps can update automatically and transactionally, making sure the device is never broken.
- Multi-architecture: Snaps come with a multi-architecture feature, allowing you to build your snap package for multiple architectures.
- Managing updates: Snaps can be updated automatically, or you can control the update options (update hours, update holds, update history). It also comes with multiple release channels for role-based access controls and application versioning.
- Reduce boot time: You can configure a snap application as a daemon, so it starts automatically at boot.
ROS deployment solution
Snapcraft comes with native integrations through plugins and extensions dedicated to both ROS and ROS 2; developed and maintained by Canonical.
Documentation
For robotics oriented snap documentation please visit: ubuntu.com/robotics/docs.
Snapcraft.io is only hosting the snapcraft ROS references.
ROS 1
ROS applications | Learn how to create a ROS snap for your application |
catkin | Use the Catkin plugin to generate your ROS1 package |
catkin-tools | Use the Catkin plugin to compile your ROS package |
ROS extension | ROS extension helps you snap ROS applications. It comes along with caktin or catkin-tools plugins, adds the ROS APT package repository and sets a build and run-time environment. |
ROS 2
ROS 2 applications | Learn how to create a ROS 2 snap for your application |
colcon | Use the Colcon plugin to build your ROS 2 package |
ROS 2 Foxy extension | ROS 2 Foxy extension helps you snap ROS 2 applications. It comes along with the colcon plugin, adds the ROS 2 APT package repository and sets a build and run-time environment. |
ROS 2 Humble extension | ROS 2 Humble extension helps you snap ROS 2 applications. It comes along with the colcon plugin, adds the ROS 2 APT package repository and sets a build and run-time environment. |
Last updated 15 days ago.