These extensions help you snap ROS applications for the Noetic Ninjemys distribution using the content-sharing feature.
Note that this set of extensions are based on the ros1-noetic
extension.
Therefore, they are applied on top of the ros1-noetic
extension.
See ros1-noetic
for more information.
This extension requires Snapcraft 8.x+.
How to use it
Add extensions: [ ros1-noetic-<metapackage> ]
to the application definition in your snapcraft.yaml
file, where ‘<metapackage>
’ is one and only one of:
- ros-core
- ros-base
- robot
- desktop
For instance, extensions: [ ros-noetic-ros-core ]
.
See the ROS applications documentation for a complete tutorial on how to use this extension.
apps:
catkin-ros1-run:
command: roslaunch listener talk_and_listen.launch
plugs: [network, network-bind]
extensions: [ros1-noetic-robot]
...
What it does for the build-time environment
- Everything the
ros1-noetic
extension does. - Adds a content plug mounting the provider snap content at
$SNAP/opt/ros/underlay_ws
and defines a default provider. - Sets the
CMAKE_SYSTEM_PREFIX_PATH
variable to point at the mounted system path. - Adds the build snap providing the build-time equivalent of the default content-sharing provider snap to
ros-build-snaps
.
This implies that you can avoid declaring as build-packages
all the ROS packages that are found inside the ROS metapackage with the name corresponding to the extension used above.
What it does for the run-time environment
- Everything the
ros1-noetic
extension does.
- Expands the runtime environment required by ROS th include the ROS workspace provided by the content-sharing snap. Similar to the typical chaining of ROS workspaces.
Further reading
- For a usage example of this extension, please visit: ros-applications.
- For a complete picture of what this extension does, add it to your app definition and run
snapcraft expand-extensions
.
Snapcraft extensions enable snap developers to easily incorporate a set of common requirements into a snap. See Snapcraft extensions for further details.