DrifterFun

One need not hope in order to undertake, nor succeed in order to persevere.

Logitech G920添加

2018-06-17


裴老师总是有一些奇思妙想,为了更好的推销我们的仿真系统,裴老师让我给仿真系统加上一个方向盘……对!诸位没有看错,就是一个方向盘!裴老师觉得用键盘控制的仿真系统的卖相太差,我们得加上一个方向盘。

自然这个活就落在了我身上。本来是觉得挺绝望了,这玩意儿怎么个加法呀……第一个想法就是上Github-AirSim的Issue里面看看有没有人加过这个功能。然后惊奇的发现,AirSim已经支持Logtech的“开箱即用功能”。这还说什么,立即下单了一发。

买回来之后经过简单的调试,发现G920确实能够控制AirSim场景中的车辆,但是控制是乱的。简单地来说就是油门变成控制转向了、转向没有按键能够控制等等……稍微看看,果然在Github上也有人遇到了类似的问题。这就说明了我之前的驱动安装等等步骤并没有出错,但是不幸的是提问者并没有给出解答。于是只能自己解决这个问题,我注意到既然G920能够控制小车说明数据流总体上来说是没有问题的,出问题的应该是程序里面的“线路”没有接对。自然的想到了进程序稍微看看“接线”。

发现问题出在CarPawn.cpp文件中的车辆控制变量的上传过程中,稍微改改接线方式,做一点测试就能够很快解决这个问题。具体的代码如下:

//joystick_controls_.steering = joystick_state_.left_y * 1.25;
//joystick_controls_.throttle = (-joystick_state_.right_x + 1) / 2;
joystick_controls_.steering = joystick_state_.left_x * 1.25;
joystick_controls_.throttle = (joystick_state_.left_y + 1) / 2;
joystick_controls_.brake = -joystick_state_.right_z + 1;

当然我也提交了解决方法到社区,这里是传送门