由于工作中有无人车仿真需求,了解到了AirSim,据了解AirSim可以仿真无人机,这个还是引起了我很大兴趣。早在5年前就飞丢过一只phantom3,目前只剩下遥控器了。。。
由于开始以操控体验为主,决定下载windows预编译的二进制版本
https://github.com/Microsoft/AirSim/releases
我下载的是v1.7.0 - Windows版本,来自github下载很慢。有
- AbandonedPark
- Africa (uneven terrain and animated animals)
- AirSimNH (small urban neighborhood block)
- Blocks ——几个方块没啥效果
- Building_99 ——办公楼里
- CityEnviron ——城市环岛,有人,车,应该不是无人机的场景,用于车仿真
- Coastline
- LandscapeMountains —— 雪山,有圆环,像是无人机比赛地图
- MSBuild2018 (soccer field) —— 一个足球场周边建筑,我觉得是微软的办公园区
- TrapCamera
- ZhangJiajie ——张家界,云山雾绕的仙境一般,但是山下面啥也没有
下载后,可直接运行启动AirSim试飞了。
这里要注意,AirSim对于无人机,不支持键盘,键盘只能操作view。
Controlling Vehicles#
Most of our users typically use APIs to control the vehicles. However you can also control vehicles manually. You can drive the car using keyboard, gamepad or steering wheel. To fly drone manually, you will need either XBox controller or a remote control (feel free to contribute keyboard support). Please see remote control setup for more details. Alternatively you can use APIs for programmatic control or use so-called Computer Vision mode to move around in environment using the keyboard.
这里我把20年前买的BETOP手柄翻出来尝试一下,年代太久了,按键有些不灵了,拆开拿酒精擦拭了一下接触点,好使了。
起飞后发现只有Z向控制,XY向没有控制。猜测是手柄键位映射不对。
没找到配置按键的方法,就找了几个JoyStick工具,最后只有这个x360ce比较好用。它能把键盘和手柄映射为X360手柄,并在驱动中生成一个虚拟X360手柄。
这里要注意的是
1,BETOP手柄太老,摇杆值0~255,映射的X360摇杆值是0~65535,就会导致无操作时,有偏差值 ,不在正中间。当仅操作Z向飞行时,有XY向的运动。在控制面板中各种校准也没达到0,后来在DXTweak中设置了中间值才可以。
2,生成这个虚拟X360手柄是第二个手柄,第一个是BETOP手柄,需要让AirSim选中X360手柄。一种方法是在控制面板中修改默认手柄为X360手柄,另一种方法是配置AirSim指定第2个手柄。
方法:修改Documents/AirSim/settings.json,如下,指定RemoteControlID为第2个手柄
{
"SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
"SettingsVersion": 1.2,
"SimMode": "Multirotor",
"Vehicles": {
"SimpleFlight": {
"VehicleType": "SimpleFlight",
"RC": {
"RemoteControlID": 1
}
}
}
}
看文档支持DJI摇控器,后续拿到我的摇控器再研究一下。现在的效果
AirSim