第 14.6.6 节
手柄JOY
简介
检测设备
你可以在没插手柄的时候看一下:
ls /dev/input/
插上手柄再看一遍。
注意看js0,event15这种有没有多。

如上图,对于我来讲我是js1和event24。
可以用下面这条命令确认下设备名称:
cat /proc/bus/input/devices
按顺序找到event24:

Linux测试手柄
# Ubuntu或者Debian
sudo apt install joystick
# Fedora
sudo dnf install joystick

然后
jstest /dev/input/js1
可以拨动摇杆测试下:

ROS Joy节点
安装joy和joy-linux包,这俩包分别是俩不同的joy节点。
sudo apt install ros-$ROS_DISTRO-joy
sudo apt install ros-$ROS_DISTRO-joy-linux
Joy
启动节点:
ros2 run joy joy_node --ros-args -p device:=/dev/input/js1
可以看到图里的提示,已经连接到xbox手柄了。

查看话题数据:
ros2 topic echo /joy
查看话题的频率:
ros2 topic hz /joy --window 20
--window 20的瞬态更准,他会抛弃上面更老的数据,window=20 很快就会把旧的样本丢掉。
我这个频率在 3200 Hz上,明显太高了。

Joy_Linux
试试另一个包:
ros2 run joy_linux joy_linux_node --ros-args \
-p dev:=/dev/input/js1
可以看到图里的提示,已经连接到xbox手柄了。

查看话题数据:
ros2 topic echo /joy
查看话题的频率:
ros2 topic hz /joy --window 20
在这个包下,频率静止时在 20 Hz,手柄活跃后在 500 Hz上。

ros2 run joy_linux joy_linux_node --ros-args \
-p dev:=/dev/input/js1 \
-p autorepeat_rate:=50.0 \
-p coalesce_interval:=0.01
使用上述命令后频率下降到50-100Hz,这是ROS最舒服的一段频率了
