罗技F710使用笔记

罗技F710使用笔记

  • 引言
  • ROS中使用手柄
  • 查看手柄按键的定义

引言

移动机器人仿真或者实物控制中,经常要使用手柄来控制机器人,发布速度指令或其它的命令。以前用的时候会遇到过一些小问题,最近回忆记录一下。

ROS中使用手柄

一般的在ros中启动joy_node这个节点,系统默认设备是

/dev/input/js0

但是我的笔记本是/dev/input/js1。如何查看新的设备呢?
在terminal中输入$ ls /dev/input,可以看到类似这样的东西,代表输入的设备。

by-id    event1   event12  event15  event2  event5  event8  js1     mouse1
by-path  event10  event13  event16  event3  event6  event9  mice
event0   event11  event14  event17  event4  event7  js0     mouse0

我的电脑上手柄显示的设备为js0
输入命令$ ls -l /dev/input/js1,可以查看设备的许可,如:

crw-rw-r--+ 1 root input 13, 1 422 15:55 /dev/input/js1

一般来说手柄的权限是不需要设置的,如果需要开读写权限,可以输入

$ sudo chmod a+rw /dev/input/jsX

X对应具体的设备名称,一般是用不着的,但有些设备如相机,IMU连电脑需要开一下权限。
因为我的笔记本手柄的设备名称为/dev/input/js1,所以在运行roscore后需要

rosparam set joy_node/dev "/dev/input/js1"

嫌麻烦可以用launch

<launch>
    <node pkg="joy" type="joy_node" name="joy_node" output="screen">
            <param name="dev" type="string" value="/dev/input/js1"/>
            <param name="deadzone" value="0.12"/>
    </node>
 <launch>

查看手柄按键的定义

两种方式,第一种,输入:
sudo jstest /dev/input/js1,可以看到

Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:of
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:off  
1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off  9:off 10:off 11:off 

按按手柄上的按键就能知道哪个对应哪个了。
第二种,看/joy的消息,运行joy_node节点,然后查看消息

rostopic echo /joy

可以看到:

header: 
  seq: 12
  stamp: 
    secs: 1587565914
    nsecs: 714403531
  frame_id: ''
axes: [0.0, 0.0, 0.0, 0.0, -0.0, -0.0]
buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

按按手柄上的按键就明白了,最好拿张纸记一下。

可以用手柄控制小乌龟或者gazebo仿真中的小车会方便许多。这样按着按键车可以跑,松了按键车就能停下,避免一直开撞墙。

你可能感兴趣的:(罗技F710使用笔记)