QDriverStation icon indicating copy to clipboard operation
QDriverStation copied to clipboard

Joystick mappings are wrong

Open RikuKawai opened this issue 9 years ago • 6 comments

Joystick mappings for the Logitech F310 are incorrect in QDriverStation, but are correct in jstest-gtk. Debian Stretch x86_64, Linux 4.7, QDriverStation 16.10.

They should be as follows, which matches what they are under Windows and in the robot code:

  • Axis 0: Left Stick X
  • Axis 1: Left Stick Y
  • Axis 2: Left Trigger
  • Axis 3: Right Stick X
  • Axis 4: Right Stick Y
  • Axis 5: Right Trigger

In QDriverStation, the mappings are:

  • Axis 0: Left Stick X
  • Axis 1: Left Stick Y
  • Axis 2: Right Stick X
  • Axis 3: Right Stick Y
  • Axis 4: Left Trigger
  • Axis 5: Right Trigger

This renders it impossible to correctly operate the robot without having different code for Windows and Linux.

RikuKawai avatar Nov 19 '16 18:11 RikuKawai

Hi!

This issue has been present for a very long time. Since we use SDL for cross-platform joystick support, we (unfortunately) depend on the mappings provided by SDL.

For the moment, I think that the smartest way is to implement a method to allow the user to re-map the joysticks (and possibly sharing the fixed mappings with the community). I will work on this issue when I have some free time in December, as I am currently about to present final exams for this quarter.

Thanks for the feedback!

alex-spataru avatar Nov 19 '16 20:11 alex-spataru

Can confirm, Same issue on our Logitech Attack 3's

SecretlyNotARobot avatar Nov 20 '16 04:11 SecretlyNotARobot

Thanks for the confirmation! I will try alternative options to SDL, such as Gainput. Ultimately, I think that the best way to standardize joystick input across operating systems will be to allow users to manually re-map joysticks on the fly...

alex-spataru avatar Nov 20 '16 04:11 alex-spataru

Interestingly, the output from QJoysticks is different from the output of sdl-jstest, but only on one axis

SecretlyNotARobot avatar Nov 24 '16 21:11 SecretlyNotARobot

@everylittlebit This can happen because QJoysticks uses SDL2 instead of SDL.

alex-spataru avatar Dec 01 '16 01:12 alex-spataru

Still having this issue on macOS High Sierra 10.13. I agree with @alex-spataru that the best solution seems to be to allow the user to remap the controls. Unfortunately AFAIK 360Controller doesn't contain any way to remap axes, only buttons.

edelmanjm avatar Oct 11 '17 23:10 edelmanjm