The snap provides mapping, localization and navigation capabilities.
The ros2-nav2 snap is designed as a general package that offers navigation functionality for robots. To ensure maximum flexibility for users, it is intentionally provided without any preset configurations.
The ros2-nav2 snap must be configured by means of snap parameters. The available configuration parameters are listed below:
- simulation (string, default: "False")
- slam-config (string, default: "")
- map-saver-config (string, default: "")
- map-yaml-path (string, default: "")
- map (string, default="${SNAP_COMMON}/maps/current_map.yaml")
- localization-config (string, default: "")
- navigation-config (string, default: "")
The slam-config, localization-config, and navigation-config parameters are essentials for the proper functioning of these applications.
These parameters must be set either to a local configuration file accessible within the SNAP environment (such as $SNAP_COMMON), or to a URL hosting the desired configuration.
Additionally, a set of configuration_templates is available at $SNAP_COMMON/configuration_templates
. Those files are only meant to be a template, they can be modified and used by setting them to the parameters. An example of using a template for slam-config is as follows:
snap set ros2-nav2 slam-config="/var/snap/ros2-nav2/common/configuration_templates/slam_params_template.yaml"
In case you want to reinitialize the templates, you can simply issue the following command: ros2-nav2.reset-config-templates
As mentioned, those parameters can also be can also be configured with a URL as follows:
snap set ros2-nav2 <app-name>-config="https://raw.githubusercontent.com/robot-repo/<app-name>_params.yaml"
Note: the URL must be reachable by the snap. When using a URL, the configuration file will be downloaded everytime the app is launched. Therefore a configuration update upstream will be applied with the application relaunch.
The mapping application can be launched as,
snap start ros2-nav2.slam
After launching the app, simply drive the robot around until you've mapped the area. Once finished, stop the mapping with,
snap stop ros2-nav2.slam
This will terminate the mapping and automatically save the map in '${SNAP_COMMON}/maps/new_map.{yaml,png}'.
If mapping is not required, a map can also be loaded via the map-yaml-path
parameter.
The parameter can either be set to a local file with:
snap set ros2-nav2 map-yaml-path="$SNAP_COMMON/maps/map.yaml"
Or by means of a URL with:
snap set ros2-nav2 map-yaml-path="https://raw.githubusercontent.com/robot-repo/map.yaml"
The image associated to the map is automatically extracted from the yaml file.
With the environment mapped, one can make use of the autonomous navigation. To do so, start the localisation and navigation with:
snap start ros2-nav2.localization
snap start ros2-nav2.navigation
Those application can be then stopped with:
snap stop ros2-nav2.localization
snap stop ros2-nav2.navigation
Thank you for your report. Information you provided will help us investigate further.
There was an error while sending your report. Please try again later.
You are about to open
Do you wish to proceed?
Snaps are applications packaged with all their dependencies to run on all popular Linux distributions from a single build. They update automatically and roll back gracefully.
Snaps are discoverable and installable from the Snap Store, an app store with an audience of millions.
Snap can be installed from the command line on openSUSE Leap 15.x and Tumbleweed.
You need first add the snappy repository from the terminal. Leap 15.5 users, for example, can do this with the following command:
sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.5 snappy
Swap out openSUSE_Leap_15.5
for openSUSE_Leap_15.4
or openSUSE_Tumbleweed
if you’re using a different version of openSUSE.
With the repository added, import its GPG key:
sudo zypper --gpg-auto-import-keys refresh
Finally, upgrade the package cache to include the new snappy repository:
sudo zypper dup --from snappy
Snap can now be installed with the following:
sudo zypper install snapd
You then need to either reboot, logout/login or source /etc/profile
to have /snap/bin added to PATH.
Additionally, enable and start both the snapd and the snapd.apparmor services with the following commands:
sudo systemctl enable --now snapd
sudo systemctl enable --now snapd.apparmor
To install ros2-nav2, simply use the following command:
sudo snap install ros2-nav2 --edge
Browse and find snaps from the convenience of your desktop using the snap store snap.
Interested to find out more about snaps? Want to publish your own application? Visit snapcraft.io now.