Ubuntu环境下读取罗技G29方向盘信息

本文介绍了如何在Ubuntu环境下与罗技G29方向盘交互,包括通过`ls/dev/input`和`dmesg`查找设备,使用`jstest-gtk`校准,利用ROS的joy包获取方向盘信息,解析`/joy`话题获取轴和按钮状态,并展示了简单的测试程序和launch文件。此外,还详细列举了方向盘各部件与axes和buttons的对应关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu环境下读取罗技G29方向盘信息


引言

请添加图片描述

实验室有这么酷的驾驶设备,来了一年还没有实际操作过,早就蠢蠢欲试了,哈哈哈不过之前负责的师兄还在就一直没敢用,现在他毕业了就可以为所欲为了

之前师兄好像都是在Windows下开发的,我觉得比较麻烦而且与现有的框架感觉兼容性不高,所以还是选择了在Linux下开发

信息查看

首先要确定插入的设备哪一个是G29方向盘,下面两个命令都可以

ls /dev/input
或
dmesg

一般来说是event11js0

要查看方向盘信息,在终端输入

cat /dev/input/js0 | hexdump

输出信息如下

(base) redwall@redwall-desktop:~$ cat /dev/input/js0 | hexdump
0000000 d754 0053 0000 0081 d754 0053 0000 0181
0000010 d754 0053 0000 0281 d754 0053 0000 0381
0000020 d754 0053 0000 0481 d754 0053 0000 0581
0000030 d754 0053 0000 0681 d754 0053 0000 0781
0000040 d754 0053 0000 0881 d754 0053 0000 0981

显然没什么可读性

安装操纵杆的校准工具:jstest-gtk

sudo aptitude install jstest-gtk

建议大家熟悉使用aptitude而不是apt

安装完成后在终端运行

jstest-gtk /dev/input/js0

出现如下图形界面,方向盘信息均在图形界面中进行了显示

请添加图片描述

结合ROS的joy包进行开发

安装并编译相关包,在终端输入

sudo aptitude install ros-melodic-joy
sudo aptitude install ros-melodic-joystick
sudo aptitude install ros-melodic-joystick-drivers
rosdep install joy
rosmake joy

在两个终端中分别输入

roscore
rosrun joy joy_node

查看现有的话题

(base) redwall@redwall-desktop:~/catkin_ws$ rostopic list 
/diagnostics
/joy
/joy/set_feedback
/rosout
/rosout_agg

其中/joy话题包含了需要的方向盘信息,查看/joy话题的内容

(base) redwall@redwall-desktop:~$ rostopic echo /joy

输出

---
header: 
  seq: 386
  stamp: 
    secs: 1657894839
    nsecs: 565566079
  frame_id: "/dev/input/js0"
axes: [0.648137629032135, 0.0, 0.0, 0.0, 0.0, 0.0]
buttons: [0, 0, 0, 0, 0
Ubuntu系统中,如果遇到罗技G29游戏方向盘的图形化界面无法识别和加载的问题,可以尝试以下步骤来解决: 1. **更新系统**: - 打开终端,输入 `sudo apt update` 和 `sudo apt upgrade` 更新系统和软件包列表。 2. **安装必要的驱动**: - 确保已经安装了xpad工具,它通常用于Linux的游戏控制器管理。如果有,运行 `sudo apt install xpad`。 3. **检查USB设备**: - 断开并重新连接方向盘,确认Ubuntu是否能识别到它。有时简单的物理连接故障可能导致识别问题。 4. **重新加载USB设备**: - 输入 `sudo udevadm trigger` 或者 `sudo service udev restart` 以强制更新设备规则。 5. **手动配置xpad**: - 使用 `xinput list` 查看方向盘的相关ID,然后编辑 `/etc/xinput.conf` 文件,添加相应的设备配置。例如: ``` # 假设设备ID为12 "Logitech G29 Racing Wheel" = "/dev/input/event12" ``` 6. **重启游戏控制器服务**: - `sudo service joystick restart` 或者 `sudo systemctl restart joystick`。 7. **检查兼容性应用**: - 如果使用的是特定的游戏或模拟器,确认它们是否支持罗技G29,并查看其官方文档或社区解决方案。 8. **查看日志**: - 寻找 `/var/log/syslog` 或 `/var/log/dmesg` 中关于罗技方向盘的错误信息,这可能会提供更具体的线索。 如果以上步骤都无法解决问题,你可能需要查找更专业的驱动程序更新,或者寻求罗技产品的技术支持。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值