A cross-platform joystick library/node for ROS.
One of the limitations of the standard ROS joy package is that it
depends on the linux/joystick.h
header. This sucks, especially for ROS
users on Windows and OS X, who would enjoy being able to remotely teleop
robots using a locally-connected game controller... without a VM.
So the idea here is to piggy-back on the cross-platform joystick support available in SDL. So far, it is tested to work with a Logitech F710 and DualShock 3 (wired) in Ubuntu Trusty 14.04 and Mac OS X 10.10.3, with the following caveats:
joy_node
, which uses IO blocking, this package polls thejoy_node
, there's (currently) no way to differentiate multipleFinally, SDL provides (via the GameController API, some ability to abstract joystick mappings so that disparate units can swap in for each other more easily (eg, every device has an "A" button, even if it's the one with an X on it on a PlayStation pad). There's some rough-in to support this here, but it's unclear how desirable it really is going forward, as most robots have a standard joystick they ship with, and a button mapping to match. For now, this is unused, as it's more valuable to have this package be a drop-in replacement for joy.
This package is under active development. Caveat emptor.