Version0.1.0
Revision26
LicenseApache-2.0
Confinementstrict
Basecore24

The ROS 2 teleop snap


The ROS 2 teleop snap allows for teleoperating a robot
from either the keyboard, gamepad or leave it to the navigation stack.

The snap offers the possibility to teleoperate the robot from a joystick with:

snap start ros2-teleop.joy

This app launches both the gamepad driver as well as the joy teleop node.

Parameters for the joystick application are:

- joy-vel (string, default: 'joyvel')
- joy-dev (string, default: 'dev/input/js0')
- joy-config (string, default: '')
- config-filepath (string, default: '')
- publish-stamped-twist (bool, default: false)

At least one between the joy-config and the config-filepath parameters must be set for the application to run.

In case both joy-config and config-filepath are set, the configuration file will take precedence.

The upstream package offers some default joystick configurations.
Those can be set up with the joy-config parameter as follows:

snap set ros2-teleop joy-config="ps3"

In alternative, a custom configuration file can be used. The file can be provided
by means of a URL. In such case, the snap will download the file and
place it in $SNAP
COMMON/config/joyteleop.config.yaml.
To configure the config-filepath to a URL:

snap set ros2-teleop config-filepath="https://raw.githubusercontent.com/robot-repo/joy
teleop.config.yaml"

Note: the URL must be reachable by the snap. When using a URL,
the configuration file will be downloaded everytime the joy app is launched.
Therefore a configuration update upstream will be applied with the application relaunch.

Otherwise to configure the config-filepath to a local configuration file:

snap set ros2-teleop config-filepath="/var/snap/ros2-teleop/common/config/joyteleop.config.yaml"

The local configuration should be at a path accessible to the snap such as $SNAP
COMMON.

The robot can also be teleoperated from a keyboard (e.g. SSH) by launching the application with:

ros2-teleop.key

Optional parameters for the keyboard application are:
key-vel (string, default: 'keyvel')

The snap makes use of a topic multiplexer to switch from one source to another.
Its input topic can be selected as,

ros2-teleop.mux-select <topic>

The topics names can also be configured with snap parameters:

- cmd-vel (string, default: "cmd
vel")
- nav-vel (string, default: "navvel")
- web-vel (string, defautl: "web
vel")

Note that when launching the joy or key app,
the appropriate topic is automatically selected.

Update History

0.1.0 (26)
1 Apr 2026, 21:28 UTC

Published19 Apr 2024, 10:17 UTC

Last updated15 Nov 2024, 16:01 UTC

First seen1 Apr 2026, 21:28 UTC