ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

What are snaps in ros2?

asked 2022-08-24 04:39:09 -0600

sidharth.jeyabal gravatar image

updated 2022-08-24 04:41:44 -0600

I'm into learning ros2 and I came by snaps.The documentation says Snaps bundle your application along with all the necessary dependencies! What does it mean in layman's language !

edit retag flag offensive close merge delete

Comments

1

Snap is not a ROS thing. It's a Canonical / Ubuntu application packaging and deployment system.

Compare with Flatpak, AppImage and perhaps even Docker (if it's abused).

Canonical just figured out how to use the snap infrastructure and tools to package ROS applications.

gvdhoorn gravatar image gvdhoorn  ( 2022-08-24 08:04:18 -0600 )edit

2 Answers

Sort by » oldest newest most voted
2

answered 2022-08-24 08:38:26 -0600

GuillaumeB gravatar image

Hi! Good question. I work for Canonical, the publisher of Ubuntu. I’m part of the robotics team. Snaps is one of the many tools we developed for developers to easily deploy and manage their applications.

Snap offers you a way to deploy your ROS applications. If you are familiar with Ubuntu, you probably already downloaded packages with APT. Well, Snap is an alternative way to share and download applications.

Snap bundles all the necessary dependencies. This means that the snap you download is all you need; it is self-contained. The snap package doesn't only contain your application, but all the libraries necessary to run it. This makes your software stable, and you can even deploy ROS 2 Humble applications on Ubuntu 18.04 for instance.

Snaps are running in a confined environment. Snaps are isolated from the host and only have access to what you explicitly gave access to. If you want your snap to access the network, you must declare it.

Snaps and their updates can be shared easily on the Snapstore. Snaps are updated automatically when an update is available. If you are a developer, you can upload the update, and it will deploy to your user/robots automatically.

These are only a few highlights,

If you are interested as a ROS snap user, you can give a shot at the Plotjuggler or Gazebo.

If you are interested as a ROS developer to deploy your application, have a look at the snapcraft quick-start documentation as well as the snapcraft robotics documentation.

edit flag offensive delete link more

Comments

Thanks for the info im overwhelmed with the effort u took to answer!1

sidharth.jeyabal gravatar image sidharth.jeyabal  ( 2022-08-24 08:48:59 -0600 )edit

Really nice answer, I learned a lot

ljaniec gravatar image ljaniec  ( 2022-08-24 10:15:06 -0600 )edit
1

answered 2022-08-24 06:52:55 -0600

ljaniec gravatar image

This is your good base tutorial about snap: https://ubuntu.com/tutorials/create-y...

A snap is a bundle of an app and its dependencies that works without modification across many different Linux distributions. Snaps are discoverable and installable from the Snap Store (...)

It allows you to combine everything you need for "publishing" your software application with its dependencies (e.g. additional libraries, plugins etc.).

edit flag offensive delete link more

Comments

Thank you so much for the info i will read through it ..Have a good day

sidharth.jeyabal gravatar image sidharth.jeyabal  ( 2022-08-24 08:49:26 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2022-08-24 04:39:09 -0600

Seen: 152 times

Last updated: Aug 24 '22