clearpathrobotics / clearpath_config

Clearpath Configuration YAML Parser
https://docs.clearpathrobotics.com/
BSD 3-Clause "New" or "Revised" License
9 stars 8 forks source link

Xbox Series S Controller support #56

Open fbottarel opened 10 months ago

fbottarel commented 10 months ago

Describe the the feature you would like According to the documentation, only the PS4 and Logitech controllers are supported by the clearpath packages. Supporting the Xbox controller would be a great step since these well manufactured, readily available and feature both USB and Bluetooth connectivity.

Other notes Since our Husky did not ship with a controller and we had some Xbox Series S controllers in the lab, I added the configuration to our unit. What I did was:

  1. install xboxdrv package via apt
  2. pair the controller using bluetoothctl
  3. make a custom udev rule to map any such xbox controller to /dev/input/xbox
  4. added a custom teleop_xbox.yaml config for teleop_twist_joy in clearpath_common/clearpath_control/config/a200 and clearpath_common/clearpath_control/config/generic
  5. modified clearpath_config/clearpath_config/platform/platform.py so that the xbox string is acceptable as joystick parameter.

I am not sure if I missed something, but after this I can write xbox in the joystick tag in the robot.yaml general configuration file and everything works as expected. Shall I compile a PR for this? How should the udev rule be installed by the Clearpath Installer script?

Mechazo11 commented 2 days ago

Hi @fbottarel

I might have been successful in pairing Xbox One S controller with a simulated husky robot. For step one, I used xpadneo instead. Will be opening a PR soon as soon as I get the simulated robot to move. For some unknown reasons there is an issue with the twist_mux node that I haven't been able to figure out yet.