在Ubuntu 16.04系统中,将Logitech G920方向盘连接到Carla服务器
注:
- 电脑是win10 + Ubuntu 16.04双系统
- 我们用Logitech g29方向盘的程序来模拟G920方向盘,所以接下来运行出现g29等字样,是没有问题的
1、jstest-gtk
1)描述:
jstest-gtk是一个基于Gtk +的简单操纵杆测试和配置工具。它为您提供了一个附加的操纵杆列表,一种显示按下按钮和轴的方法,一种重新映射轴和按钮的方法以及一种校准操纵杆的方法。即使你的操纵杆工作得很好,你也可以尝试一下,因为校准可以让你摆脱许多操纵杆使用的超大默认死区,这在一些游戏中是一个明显的问题。
2)用法:
jstest-gtk主要是一个图形界面,用于检查你的操纵杆和打击垫是否工作正常。您可以在每个轴上找到精确信息,您可以选择重新校准它并且可以改变映射。
如果你运行没有参数的程序,你会得到一个显示所有操纵杆的窗口系统中的设备(可以有多个)。当你双击其中一个,您将获得一个更新的窗口,其中包含有关其轴和按钮的详细信息。详细窗口中有两个按钮,称为“映射”和“校准”,即允许您重新指定设备。
如果您以设备作为参数运行程序(例如/ dev / input / js0),您将直接获取该设备的详细窗口,而无需获取整个列表系统中的操纵杆。
轴的校准包含在一个简单的窗口中,您可以在其中设置值直接进入操作系统配置,而不对它们进行任何更改。它们分为范围和死区(或中心)。在他们两个中你必须设置一个最小和最大。您还有一个用于反转轴的复选框。
在您修改它们的同一瞬间更改和应用值,没有必要用于单击任何位置或执行任何其他操作以应用更改。
3)安装:
在终端输入:
$ sudo apt-get update$ sudo apt-get install jstest-gtk
2、问题描述与解决:
注:若是没有遇到此类问题,或是jstest-gtk可以直接识别方向盘,可以忽略此条内容
1)描述:
在Ubuntu 16.04系统中,接入G920方向盘之后,打开jstest-gtk,结果显示不出来方向盘的信息。Joystick Preferences是jstest-gtk的显示面板,这时面板什么都没显示,说明出问题了。
图一
2)猜想:
A.Ubuntu系统是否支持Logitech G920 方向盘呢?
做法1:在终端输入lsusb,列出接入电脑端口的所有硬件设备,输出的信息有一行是:
ID 046D:c261 Logitech,Inc
这说明G920方向盘是接入到电脑端口了。
做法2:在终端输入dmesg(Linux的dmesg命令,显示Linux内核的环形缓冲区信息,可以从中获取诸如系统架构,CPU,挂载的硬件,RAM等多个运行级别的大量的系统信息。笼统地说,显示Linux系统设备启动项。)
对于Logitech G920的显示信息如下:
[ 784.855156] usb 1-2: new full-speed USB device number 5 using xhci_hcd
[ 785.004781] usb 1-2: New USB device found, idVendor=046d, idProduct=c261
[ 785.004787] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 785.004792] usb 1-2: Product: G920 Driving Force Racing Wheel for Xbox One
[ 785.004796] usb 1-2: Manufacturer: Logitech
[ 785.004800] usb 1-2: SerialNumber: 0000b450139a7734
以上两个做法,结果都说明G920方向盘是接入到系统的,但是jstest-gtk就是识别不出来。
B.可不可以线不用jstest-gtk测试方向盘,直接运行程序呢?
做法:服务器电脑Carla系统运行起来, 我们在终端输入:
$ cd Carla_Python_Client $ ./manual_control_steeringwheel.py --host <服务器电脑地址>
显示的信息;
Welcome to CARLA manual control with steering wheel Logitech G29.
To drive start by preshing the brake pedal.
Change your wheel_config.ini according to your steering wheel.
To find out the values of your steering wheel use jstest-gtk in Ubuntu.
WARNING: Version mismatch detected: You are trying to connect to a simulator that might be incompatible with this API
WARNING: Client API version = 0.9.4-84-g889b998-dirty
WARNING: Simulator API version = 0.9.4-118-g3c18dee-dirty
Traceback (most recent call last):
File "./manual_control_steeringwheel.py", line 859, in <module>
main()
File "./manual_control_steeringwheel.py", line 851, in main
game_loop(args)
File "./manual_control_steeringwheel.py", line 781, in game_loop
controller = DualControl(world, args.autopilot)
File "./manual_control_steeringwheel.py", line 225, in __init__
self._joystick = pygame.joystick.Joystick(0)
pygame.error: Invalid joystick device number
最后一行,pygame.error: Invalid joystick device number,说明操纵杆设备号无效,这说明程序也识别不到方向盘。
3)解决方案:
A.网上搜索,有些人说只是把方向盘从电脑上拔掉,再插上,反复多试几次,jstest-gtk就可以识别方向盘了。但是我这样试了很多次都无果。
B.这时我想到了Windows,因为G920 方向盘接入Windows系统时,需要下载对应的驱动,也就是Logitech游戏软件,才得以让方向盘在电脑上正常使用。
重启电脑,进入Windows系统,打开之前下载好的Logitech游戏软件,因为下载了这个软件,进行一些识别与设置,方向盘才可以在Windows系统里正常使用。软件在Logitech官网上有,下载方向盘对应的版本即可。
图二
图一显示的是软件主界面,踏板和方向盘。
我点开方向盘,继续摸索,也从网上查资料,谨慎设置,改变参数或者属性,其实设置之后可以恢复默认设置的,不用担心改了之后回不来默认。
图三
图三显示的是打开方向盘之后的详细信息,鼠标移到哪个操作按钮上,对应按钮会凸出亮起图三就是鼠标移动到方向盘,然后方向盘亮起。双击亮起的方向盘按钮,如图四:
图四
图四是我改的是灵敏度和方向盘移动范围,启用力回馈游戏中的中心弹力和中心弹力10%是默认的。其他的选项根据自己需要来更改或是默认,然后我在BeamNG.drive.v0.8.0.1游戏里测试方向盘。
其他的没有说明可设置的了,重启电脑,进入Ubuntu系统。喜出望外,jstest-gtk识别出来方向盘了。如图五:
图五
图六
图五中双击识别的方向盘,显示Mapping和Calibration,分别点击他们,就可以来调校方向盘。
注:比较有意思的是,在jstest-gtk识别出方向盘后,在终端输入lsusb,结果输出为:
ID 046D:c262 Logitech,Inc
3、运行方向盘程序
1)问题:
服务器电脑运行Carla。
在终端输入:
$ cd Carla_Python_Client $ ./manual_control_steeringwheel.py --host <服务器地址>
运行结果出错,错误信息为:
Welcome to CARLA manual control with steering wheel Logitech G29.
To drive start by preshing the brake pedal.
Change your wheel_config.ini according to your steering wheel.
To find out the values of your steering wheel use jstest-gtk in Ubuntu.
WARNING: Version mismatch detected: You are trying to connect to a simulator that might be incompatible with this API
WARNING: Client API version = 0.9.4-84-g889b998-dirty
WARNING: Simulator API version = 0.9.5-1-g4d1230e-dirty
Traceback (most recent call last):
File "./manual_control_steeringwheel.py", line 863, in <module>
main()
File "./manual_control_steeringwheel.py", line 855, in main
game_loop(args)
File "./manual_control_steeringwheel.py", line 790, in game_loop
world.tick(clock)
File "./manual_control_steeringwheel.py", line 180, in tick
self.hud.tick(self, clock)
File "./manual_control_steeringwheel.py", line 426, in tick
'Map: % 20s' % world.world.map_name,
AttributeError: 'World' object has no attribute 'map_name'
这是因为:
map_name was removed from world, use world.get_map().name
同时,也需要根据测试的方向盘来设置wheel_config.ini的参数。
2)解决方案:
Ctrl+Alt+t 打开新的终端
在终端输入:
$ cd Carla_Python_Client $ gedit manual_control_steeringwheel.py $ gedit wheel_config.ini
图七是我根据jstest-gtk测试的来的参数,其中reverse和handbrake是默认的,steering,throttle和brake是分别对应于jstest-gtk的Axis 0,Axis 1和Axis 2.。
图七
在manual_control_steeringwheel.py第424行,将world.world.map_name改为world.world.get_map().name
当前终端再输入:
$ ./manual_control_steeringwheel.py --host <服务器地址>
成功,如图七,此时可以用方向盘控制车子了。
图八
此时控制车子的面板左边,显示的是当前客户端、服务器的fps,以及油门,刹车,方向盘,倒挡,手刹的各项信息,我们需要根据其显示的限度来调整自己的方向盘驾驶车辆。
注:补充我这些天发现的一点问题。
当把方向盘从电脑上拔下来,
1、三天以上未连接到电脑
2、连接到另外一台电脑,但是这台电脑没有经过前面的操作,读不出来方向盘
这时候,再将方向盘插回到原先的电脑,Ubuntu系统读不出来方向盘了。
解决方法:
重启到电脑到Windows系统下,打开Logitech 游戏软件,进行参数修改,然后再改回来,刷新一下。再重启系统到Ubuntu,这下就可以识别方向盘了。但是有时候,在Windows下通过Logitech游戏软件设置的方向盘旋转角度,一次重启后方向盘还是会恢复到默认的900度,虽然游戏软件显示的仍然是我设置的450度,重新启动Windows和Ubuntu系统一两遍,解决问题。
在Ubuntu 16.04系统中,将Logitech G920方向盘连接到Carla服务器相关推荐
- linux下如何安装自带编译器的codeblocks,在Ubuntu 16.04系统中使用PPA源安装Code Blocks的方法...
本文介绍在Ubuntu 16.04操作系统中使用PPA源安装Code Blocks的方法,可以先参考在Ubuntu系统中安装Code::Blocks的方法一文. 使用PPA源安装Code Blocks ...
- Ubuntu 16.04系统中利用CUDA安装更新NVIDIA显卡驱动程序的方法
严正声明:本文系作者davidhopper原创,未经许可,不得转载. 在ThinkPad系列笔记本电脑中使用过Ubuntu 16.04系统的同学都知道,NVIDIA显卡驱动程序特别难安装.以我使用的T ...
- linux升级安装失败,更新Ubuntu 16.04系统中安装Adobe Flash更新失败的解决
最近在更新 Ubuntu 16.04系统的时候,发现总是在安装 Adobe Flash更新的时候失败,提示如下信息: 正在处理用于 update-notifier-common (3.168.5) 的 ...
- ubuntu 16.04系统中nvidai、cuda、cudnn安装及注意事项
一.NVIDAI driver显卡驱动安装 首先看一下笔记本显卡型号 lspci |grep VGA 在命令行敲过这个命令后,有些台式机或笔记本会显示nvidia显卡,如下所示: 但是我的笔记本电脑 ...
- Ubuntu 16.04系统中编译安装FFmpeg 4.2.1(Android NDK r20)
1.下载FFmpeg 4.2.1的源码,下载Android NDK r20,安装yasm sudo apt-get install yasm 2.解压缩源码包和Android NDK 3.修改ffmp ...
- xmpp安装到Linux服务器,在Ubuntu 18.04/16.04系统中安装Ejabberd XMPP Server的方法
本文介绍在Ubuntu 18.04.Ubuntu 16.04系统中安装Ejabberd XMPP Server的方法,我们将从二进制安装程序安装ejabberd,它提供了一个功能齐全的ejabberd ...
- linux终端装什么系统下载软件,在Ubuntu 18.04系统中下载安装Termite终端的方法
以下介绍在Ubuntu 18.04系统或是Ubuntu 16.04系统中安装Termite终端的方法,目前Termite在默认存储库中不可用,必须从源代码安装.Termite是一个以键盘为中心的基于V ...
- Ubuntu 16.04系统下CUDA8.0配置Caffe教程
由于最近安装了Ubuntu 16.04,本文教程的特点是不需要降级gcc的版本,毕竟cuda8.0已经支持gcc5以上(默认不支持,实际支持). 本文是在参考caffe官网教程以及http://www ...
- 关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤
转载链接 : 关于Ubuntu 16.04系统挂载硬盘以及迁移MYSQL数据存储目录的操作步骤 :https://www.jianshu.com/p/58093888ee25 本文背景: 现有项目系统 ...
最新文章
- mysql语句_Mysql语句
- 大整数乘法(POJ2389)
- 点击Result list里product ID出现白屏的又一原因及分析
- LeetCode 第 21 场双周赛(779/1913,前40.7%)
- springMVC接受参数总结
- WCF Error: 客户端配置部分中,找不到引用协定{0}的默认终结点元素……
- 解决ajax请求返回Json无法解析\字符的问题
- python递增文件名_python-文件存在时文件名中的数字递增
- SRMD:Learning a Single Convolutional Super-Resolution Network for Multiple Degradations
- android管理交换机,用手机android超级终端 如何开启交换机端口
- 一个440MHz的 VGA电路设计与仿真
- Gerrit用户登录显示Forbidden
- smartbi连接mysql数据库_数据源连接 - Smartbi V7 帮助中心 - Smartbi 在线知识中心
- 软考分类精讲-知识产权与标准化
- 企立方:拼多多开店能不能赚钱
- LM2596 负载增大,电压降低的问题
- Android窗口Window的创建(悬浮窗)
- 找完数 ,格式为“完数 = 因子1 + 因子2 + ... + 因子k”
- CleanMyMac X激活码免费版安装包MAC清理工具
- 从MYSQL 数据库归档 到 归档设计