Joy config system + Xbox & Airbus support#106
Closed
ryangeo17 wants to merge 5 commits intoumdloop:mainfrom
Closed
Joy config system + Xbox & Airbus support#106ryangeo17 wants to merge 5 commits intoumdloop:mainfrom
ryangeo17 wants to merge 5 commits intoumdloop:mainfrom
Conversation
ryangeo17
commented
Apr 28, 2026
- Replaced hardcoded PS4/Thrustmaster logic in joystick_publisher.py w/ axes normalization driven by a central joy.yaml config file. The publisher now reads controller axis definitions and subsystem slot mappings from YAML, publishes to controller_input/{joystick_type}, and selects a device by name via a JOYSTICK_NAMES dict.
- Added the TCA Sidestick Airbus as the controller for the arm, and Xbox controller for science.
- Each controller_input topic has a different topic for each controller (e.g. "controller_input/xbox", "controller_input/airbus").
- Changed joystick type params for all subsytems to be strings and not integers (0/1 -> "xbox", "airbus").
- Each subsystem's launch file reads joystick_type from their joystick.yaml at launch time
- Added documentation in the joy.yaml file so its clear what each axes/button does what.
-Added joy.yaml config file for joystick_publisher -Updated joystick_publisher to read from joy.yaml instead of hardcoding values -Updated joystick.yaml files for arm, drive, and science to match the new config file structure -Added multiple controllers by adding different topics for each controller
- Add joy.yaml to setup.py install rules so it deploys to share/ - Fix yaml parsing to include /** top-level key - Add JOYSTICK_NAMES dict to map config keys to pygame device names - Fix hardcoded 13-button assumption causing KeyError on Xbox controller - Fix joystick_type string in drive config (space broke ROS2 remap parsing)
-Added Airbus TCA Sidestick profile and migrated arm to airbus controller -Added range_inverted param for throttle axes on airbus and thrustmaster -Wrote controller documentation in the joy.yaml file
- Moved joy remap to teleop_twist_joy node (correct direction) - Fixed science lift button index: buttons[12] → buttons[1] (Xbox has no button 12) - Updated joy.yaml comments to clarify actual axis/button assignments
Author
|
havent tested yet |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.