Skip to content

ruipaulorocha/ros2-keyboard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ros2-keyboard

This package uses the SDL library to grab keypresses. To do so, it opens a window where input is received. This window needs to be currently focused, otherwise this node will not receive any key presses. The package was forked from this GitHub repository and tested successfully by Rui P. Rocha in ROS2 Humble.

Install

  1. Create a new workspace.
  2. cd /path/to/your_ws/src
  3. Clone this repository
  • (ssh) git clone [email protected]:cmower/ros2-keyboard.git
  • (https) git clone https://github.com/cmower/ros2-keyboard.git
  1. Install SDL 1.2 with the command sudo apt install libsdl1.2-dev.
  2. cd /path/to/your_ws
  3. Install dependencies because this package depends on SDL 1.2 library

rosdep install -i --from-path src --rosdistro humble --ignore-src -y 6. colcon build --symlink-install

Nodes

keyboard

Publishes keyboard events when the window is focused.

  • Published topics: keydown and keyup (keyboard_msgs/Key)
  • Parameters
    • allow_repeat (bool): Enables or disables the keyboard repeat rate. Default is false.
    • repeat_delay (int): How long the key must be pressed before it begins repeating. Default is SDL_DEFAULT_REPEAT_DELAY.
    • repeat_interval (int): Key replay speed. Default is SDL_DEFAULT_REPEAT_INTERVAL.

keyboard_to_joy.py

Converts keyboard events to a joy message.

  • Published topic: joy (sensor_msgs/Joy)
  • Subscribed topics: keydown and keyup (keyboard_msgs/Key)
  • Parameters
    • config_file_name (str): File name for the configuration file. See here for an example.
    • sampling_frequency (int): Rate (Hz) at which joy messages are published. Default is 50.

Example:

Launch file

in one terminal, launch the two nodes.

ros2 launch keyboard keyboard_to_joy.launch.py

Running separetely the two nodes

In one terminal, start the keyboard node.

ros2 run keyboard keyboard

In a second terminal, start the keyboard_to_joy.py node.

ros2 run keyboard keyboard_to_joy.py --ros-args -p config_file_name:=/path/to/keyboard/config/example_config.yaml

Remember to replace /path/to with the path to where the yaml is located in your file system.

About

Keyboard driver for ROS 2.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 48.4%
  • C++ 24.0%
  • CMake 22.8%
  • Ruby 4.8%