Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/khengyun/ros2_joystick_py
joy control template - custom code
https://github.com/khengyun/ros2_joystick_py
gazebo11 joy robotics ros2
Last synced: 6 days ago
JSON representation
joy control template - custom code
- Host: GitHub
- URL: https://github.com/khengyun/ros2_joystick_py
- Owner: khengyun
- Created: 2023-03-04T13:26:57.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-20T20:27:04.000Z (almost 2 years ago)
- Last Synced: 2024-12-12T02:42:09.426Z (2 months ago)
- Topics: gazebo11, joy, robotics, ros2
- Language: Python
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ros2_joystick_py
# Overview
The purpose of this package is to provide a generic facility for tele-operating Twist-based ROS2 robots with a standard joystick.
It converts joy messages to velocity commands.This node provides no rate limiting or autorepeat functionality. It is expected that you take advantage of the features built into [joy](https://index.ros.org/p/joy/github-ros-drivers-joystick_drivers/#foxy) for this.
## Executables
The package comes with the `teleop_node` that republishes `sensor_msgs/msg/Joy` messages as scaled `geometry_msgs/msg/Twist` messages.## Subscribed Topics
- `joy (sensor_msgs/msg/Joy)`
- Joystick messages to be translated to velocity commands.## Published Topics
- `cmd_vel (geometry_msgs/msg/Twist)`
- Command velocity messages arising from Joystick commands.## Parameters
- `require_enable_button (bool, default: true)`
- Whether to require the enable button for enabling movement.- `enable_button (int, default: 0)`
- Joystick button to enable regular-speed movement.
- `enable_turbo_button (int, default: -1)`
- Joystick button to enable high-speed movement (disabled when -1).- `axis_linear.`
- Joystick axis to use for linear movement control.
- `axis_linear.x (int, default: 5)`
- `axis_linear.y (int, default: -1)`
- `axis_linear.z (int, default: -1)`- `scale_linear.`
- Scale to apply to joystick linear axis for regular-speed movement.
- `scale_linear.x (double, default: 0.5)`
- `scale_linear.y (double, default: 0.0)`
- `scale_linear.z (double, default: 0.0)`- `scale_linear_turbo.`
- Scale to apply to joystick linear axis for high-speed movement.
- `scale_linear_turbo.x (double, default: 1.0)`
- `scale_linear_turbo.y (double, default: 0.0)`
- `scale_linear_turbo.z (double, default: 0.0)`- `axis_angular.`
- Joystick axis to use for angular movement control.
- `axis_angular.yaw (int, default: 2)`
- `axis_angular.pitch (int, default: -1)`
- `axis_angular.roll (int, default: -1)`
- `scale_angular.`
- Scale to apply to joystick angular axis.
- `scale_angular.yaw (double, default: 0.5)`
- `scale_angular.pitch (double, default: 0.0)`
- `scale_angular.roll (double, default: 0.0)`
- `scale_angular_turbo.`
- Scale to apply to joystick angular axis for high-speed movement.
- `scale_angular_turbo.yaw (double, default: 1.0)`
- `scale_angular_turbo.pitch (double, default: 0.0)`
- `scale_angular_turbo.roll (double, default: 0.0)`
# Usage
## Install
For most users building from source will not be required,
- execute: `sudo apt-get install ros--teleop-twist-joy` to install.## Run
A launch file has been provided which has three arguments which can be changed in the terminal or via your own launch file.
To configure the node to match your joystick a config file can be used.
There are several common ones provided in this package (atk3, ps3-holonomic, ps3, xbox, xd3), located here: https://github.com/ros2/teleop_twist_joy/tree/eloquent/config.PS3 is default, to run for another config (e.g. xbox) use this:
- open terminal 1:
`ros2 launch teleop_twist_joy teleop-launch.py joy_config:='xbox' `- open terminal 2:
`python3 joy.py`
__Note:__ this launch file also launches the `joy` node so do not run it separately.## Arguments
- `joy_config (string, default: 'ps3')`
- Config file to use
- `joy_dev (string, default: 'dev/input/js0')`
- Joystick device to use
- `config_filepath (string, default: '/opt/ros//share/teleop_twist_joy/config/' + LaunchConfig('joy_config') + '.config.yaml')`
- Path to config files