AirSim是由微软研究院于2017年创建的一款模拟器,可用于无人机、汽车等的模拟,它基于虚幻引擎构建(目前也有实验性的Unity版本)。其具备开源、跨平台的特性,支持与诸如PX4和ArduPilot等流行的飞行控制器进行软件在环模拟,并且能与PX4进行硬件在环模拟,从而实现物理和视觉上逼真的模拟效果。
它作为一个虚幻插件进行开发,能够轻松嵌入到任何虚幻环境中,同样,也有针对Unity插件的实验性发布。AirSim的目标是打造一个AI研究平台,以便对自动驾驶车辆的深度学习、计算机视觉和强化学习算法进行实验。为此,它还提供了一些API,能够以平台无关的方式获取数据并控制车辆。
在获取方式上,不同操作系统有不同途径。Windows系统下,可选择下载二进制文件或者自行构建;Linux系统同样可下载二进制文件或进行构建;macOS系统则可进行构建,更多详细内容可参考使用预编译二进制文件文档。
使用方面,有多种方式。文档方面,可查看关于AirSim各个方面的详细文档。手动控制的话,如果有遥控器(如下面所示),在模拟器中可手动控制无人机,对于汽车,可用方向键手动驾驶,更多细节可进一步了解。程序控制方面,AirSim提供的API允许用户以编程方式与模拟中的车辆进行交互,可用于获取图像、获取状态、控制车辆等等。这些API通过RPC暴露出来,可通过多种语言访问,包括C++、Python、C#和Java等,并且这些API也可作为一个独立的跨平台库的一部分,这样就可以在车辆的配套计算机上进行部署,从而实现在模拟器中编写和测试代码,之后在真实车辆上执行。
在生成训练数据方面,有两种途径。一种较为简单的方式是直接按下右下角的记录按钮,这样会为每一帧写入姿态和图像信息,数据记录代码较为简单,可随意修改。更好的方式是通过访问API来按照自己的需求精准生成训练数据,这样能完全掌控数据记录的方式、内容、地点和时间。
此外,还有计算机视觉模式,在该模式下,没有车辆或物理效果,可通过键盘在场景中移动,或者利用API将可用相机定位在任意姿态,收集诸如深度、视差、表面法线或物体分割等图像。还可通过按F10查看各种天气效果选项,也能通过API控制天气,按F1可查看其他选项。
AirSim还有诸多教程可供参考,比如与Pixhawk设置相关的教程、与不同环境使用相关的教程等等,并且有相关的参与论文,更多技术细节可参考AirSim论文(FSR 2017会议)。
在贡献方面,如果想寻找可贡献的领域,可查看开放问题,同时也有关于AirSim设计、代码结构以及贡献指南等方面的内容。另外,也在维护一份已知的使用AirSim的项目、人员和团体的列表,若想加入可在此处提出请求。
总之,AirSim为AI相关研究与模拟提供了一个较为完善且实用的平台,方便用户开展各类相关工作。