ROS使用游戏手柄

  • 安装sudo apt-get install ros-$ROS_DISTRO-joy
  • 使用ls /dev/input列出手柄设备(如js0
  • 使用jstest /dev/input/js0测试设备(或者设备为其他名字)

罗技F310

  • 注意背后的X/D开关(XInput/DirectInput),两种模式都可以运行,切换时会退出jstest,对joy_node好像没有影响

默认路径

  • 如果设备默认不是/dev/input/js0(例如是js1),则需要修改其路径
  • /etc/udev/rule.d下新建规则,并修改规则文件的权限
    sudo vi /etc/udev/rules.d/99-joystick.rules
    添加
    KERNEL=="js*", ATTRS{name}=="Logitech Gamepad F310", SYMLINK+="input/js0"
    修改权限
    sudo chmod 644 /etc/udev/rules.d/99-joystick.rules
    激活规则或重启
    sudo udevadm control --reload-rules
    sudo udevadm trigger

模式

  • mode灯指示不同输入模式

模拟输出

  • 灯灭时左侧摇杆为模拟输出(axes前两个参数),方向键为开关量输出(axes最后两个参数) axes: [左摇杆左右,左摇杆上下,左扳机,右摇杆左右,右摇杆上下,右扳机,方向键左右,方向键上下] buttons: [A, B, X, Y, LB, RB, Back, Start, Logitech标, 左摇杆按下, 右摇杆按下] 摇杆中位时输出为0,最左为1,最右为-1,最上为1,最下为-1 扳机释放时为1,完全压下为-1,半压下时会经过0点

开关量输出

  • 灯亮时左侧摇杆为开关输出(输出量为axes的最后两个参数),方向键为开关量输出(axes的前两个参数)。 axes: [方向键左右,方向键上下,左扳机,右摇杆左右,右摇杆上下,右扳机,左摇杆左右(开关量),左摇杆上下(开关量)] buttons: [A, B, X, Y, LB, RB, Back, Start, Logitech标, 左摇杆按下, 右摇杆按下]

使用

  • 使用rosrun joy joy_node启动节点,rostopic echo joy进行监听