keystroke package from keystroke repo


Package Summary

Tags No category tags.
Version 0.3.0
License BSD-3-Clause

Repository Summary

Checkout URI
VCS Type git
VCS Version master
Last Updated 2019-05-03
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Capture keyboard input from the local computer and publish it to ROS

Additional Links

No additional links.


  • Dan Rose


  • Rover Robotics


This package republishes local keystrokes as ROS2 messages.


Launch files

  • Keyboard listener
  • Translate arrow keys to rover Twist messages

ros2 launch keystroke

C:\Users\dan\Documents\ros2_ws>ros2 launch keystroke
[INFO] [launch]: process[keystroke_listen.EXE-1]: started with pid [22940]
[INFO] [keystroke_listen]: To end this node, press the escape key
[INFO] [keystroke_listen]: pressed 'a'
[INFO] [keystroke_listen]: pressed 'e'
[INFO] [keystroke_listen]: pressed 'u'
[INFO] [keystroke_listen]: pressed space (32)
[INFO] [keystroke_listen]: pressed shift_r (161)
[INFO] [keystroke_listen]: pressed f1 (112)
[INFO] [keystroke_listen]: pressed esc (27)
[INFO] [keystroke_listen]: stopping listener
[INFO] [launch]: process[keystroke_listen.EXE-1]: process has finished cleanly

ros2 launch keystroke

C:\Users\dan\Documents\ros2_ws\src>ros2 launch keystroke
[INFO] [launch]: process[keystroke_listen.EXE-1]: started with pid [24820]
[INFO] [launch]: process[keystroke_arrows_to_twist.EXE-2]: started with pid [9908]
[INFO] [arrows_to_twist]: Arrows to twist node ready - F1 for usage
[INFO] [arrows_to_twist]: Use the arrow keys to change speed.
[F1] = Show this help
[Up]/[Down] = Forward and backward
[Left]/[Right] = Clockwise and counterclockwise
[INFO] [arrows_to_twist]: Increasing forward speed
[INFO] [arrows_to_twist]: Increasing forward speed
[INFO] [arrows_to_twist]: Increasing clockwise speed
[INFO] [arrows_to_twist]: Increasing clockwise speed
[INFO] [arrows_to_twist]: resetting speed

keystroke_listen Node

Run with ros2 run keystroke kesytroke_listen

Parameters: - exit_on_esc (boolean, default True): Whether the escape key should cause this node to exit

Published Topics: - /glyphkey_pressed (String) - Pressing a letter/number/symbol key - /key_pressed (UInt32) - Pressing spacebar, ctrl, F1, etc.

arrows_to_twist Node

Run with ros2 run keystroke_arrows_to_twist

Parameters: - publish_period (float): How often to publish the speed - linear_scale (float): How much to increase/decrease speed based on up/down arrows - angular_scale (float): How much to increase/decrease angular speed based on left/right arrows

Subscribed topics: - /key_pressed (Uint32) - Keypresses to translate to speed commands

Published topics: - /cmd_vel (Twist) - Velocity (linear and angular) commands


Changelog for package keystroke

0.3.0 (2019-05-03)

  • Fix crash on headless Linux server
  • Fix crash on unknown keyboard key
  • Reduce default linear scale
  • Setup script tweaks
  • Change license to BSD

0.2.2 (2019-04-23)

  • Fix the build under ubuntu (maybe?)

0.2.1 (2019-04-19)

  • Explicitly document python version Add setuptools minimum version 40.5 (need for [options.data_files])

0.2.0 (2019-04-19)

  • Add node to convert keyboard arrows to twist instructions and a launcher script for use with ros2 launch

0.1.1 (2019-04-17)

  • Pull setup info from package.xml
  • Add a ROS2 launch file
  • Add node that listens for keystrokes
  • Initial commit

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found


No message files found.


No service files found


No plugins found.

Recent questions tagged keystroke at Robotics Stack Exchange