Xbox One controller
Hi ROS community,
We want to develop an interface to control a UR10 robot with an Xbox controller.
I can see that the joy
has support for the Xbox 360 Wireless controller. My question is, would this driver also work for the Xbox One Wireless controller?
I am asking because the 360 is the old model, meaning it is harder and harder to get. On the other hand, Xbox One controller is rather easy to find and buy.
Thank you for your help! Cheers, Timo
Hi, I'm just starting to do the same for a UR10. Were you successful when trying to control it with an xbox controller? I was thinking in using a controller like the logitech extreme 3d, as I think it might be easier to controll both axis but I really don't know yet. The xbox would be easier to find.
Thank you!
Hi there! I was successful at implementing the joystick control. However, it turned out that using the Xbox 360 (instead of the Xbox One) controller is way easier as the drivers for Linux are more available (at least that was the case when I was working on this). As for the control of the robot itself, my approach was to allow the control in Cartesian space through one of the analogue sticks and the two analogue triggers at the back of the controller. So X and Y were on the stick, Z (up and down) was on the two triggers. This controlled the translational motions. Upon a button press, the same commands started to control the rotation. If you have more questions, don't hesitate to ask, I will be glad to help.
Great, thanks. I had this project on standby and now I am back with it. I am a little bit lost on how to control it itself, did you do it using moveit? Or subscribing to topics? If you could give me a line or two about how to achieve this it would be very much appreciated!
It was not that simple. For various reasons, we implemented a low-level real-time server that controlled the UR directly by sending joint angles to the UR controller. That allowed us to implement various motion modes that we could modify ourselves depending on our needs. One of those was the "Cartesian velocity mode". In this mode, our custom real-time server used IK to estimate joint values that would be sent to the UR controller. So on the top-level, we could therefore link the joystick inputs to the "Cartesian velocity mode" inputs. I know it does not help you directly but I hope this information gives you an idea how you could solve this for your case.
It does, it actually helps a lot as I was planning on doing something similar, with IK and a server feeding the joint angles (I am not sure yet if using movej or there is another way regarding ROS topics, but I will find out, I still have a lot to study). Thank you!