Win10配置Airsim环境并设置Python通信

Posted zstar-_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win10配置Airsim环境并设置Python通信相关的知识,希望对你有一定的参考价值。

前言

和朋友交流时,了解到微软开发了一个仿真环境叫Airsim,可以作为插件插入到虚幻引擎4中,进行汽车、无人机等实际环境的仿真。于是打算跟着知乎宁子安写的教程来配置一下环境。

官方文档:https://microsoft.github.io/AirSim/
官方仓库:https://github.com/microsoft/AirSim

版本选择

经过了无数的试错,发现Airsim对版本的要求极高,如果不对应,会出现各种各样难以预料的错误。下面是需要用到的四款工具版本,配置时必须完全一样。并且,该仿真非常对内存和显卡要求很高,首先得保证自己的电脑能够跑得动虚幻引擎。

AirSim版本:v1.5.0 (2021年5月发布)
虚幻引擎版本:4.26.2
Visual Studio版本:Visual Studio Community 2019
Python版本:Python 3.7

我所用到的是Windows10操作系统,AirSim-windows版本可以去官方仓库的Releases中进行下载。
虚幻引擎安装首先需要自行下载Epic游戏商城,然后在商城的虚幻引擎库里进行安装。

Visual Studio和Python想必是程序员的常用工具,怎么安装不做赘述。

配置步骤

准备好上面的必要的软件和工具后,开始正式配置。

Step1:克隆Airsim仓库并编译

首先使用git工具,将官方仓库克隆下来

git clone https://github.com/Microsoft/AirSim.git

之后,还要下载另一个汽车模型,后面会用到。
下载地址:https://github.com/Microsoft/AirSim/releases/download/v1.2.0/car_assets.zip

下载好后,将 car_assert.zipSUV 文件夹解压到 Unreal\\Plugins\\AirSim\\Content\\VehicleAdv\\

然后打开VS的命令行工具Developer Command Prompt for VS 2019


输入指令·CD AirSim·进入到 AirSim文件夹中,继续输入指令:build.cmd,等待程序编译完毕,编译好之后会在 “AirSim\\Unreal” 文件夹中生成 “Plugins” 文件夹,该文件夹就是Airsim的插件,可以在之后移植到其它虚幻项目中。

Step2:测试Block 环境

block环境是airsim自带嵌入的一个Unreal工程文件,可以测试Unreal和airsim是否安装配置成功。
同样在Developer Command Prompt for VS 2019中,进入到Airsim\\Unreal\\Environments\\Blocks文件夹下,输入update_from_git.bat,运行完成之后,会生成Blocks.sln工程文件,双击打开此工程文件,会自动运行 Visual Studio 2019。


在Visual Studio 2019中,将 “Block工程” 设为启动项目,编译选项设为 “DebugGame_Editor” 和 “Win64”,然后点击 “调试” -> “开始调试”,如下图所示,这时就会打开Unreal Engine。


进入到Unreal Engine,可以看到Block的初始场景。同时如果配置顺利,可以看到右下方弹出提示:新插件可用。

然后点击运行,会跳出一个提示框,如果选择是,会变成一辆可以操控的SUV。


如果选择否,则变成一架不可操作的四旋无人机。

正常显示,说明配置成功。

Step3:新场景测试

下面就下载一个新的UE项目,尝试将Airsim以插件的形式导入工程,这里以免费的山脉景观为例。

在示例中可以找到这个场景,下载并安装。


下载好之后,可以看到该文件夹下有.uproject这个工程文件,双击打开,进入到虚幻引擎。

为了能够使用Visual Studio 编译.sln文件,我们需要创建自己的类,因为Unreal要求至少有一个源文件。具体步骤是:点击左上角的文件,选择新建C++类,父类选择无,所以直接点击下一步;命名和路径都是默认就好了,直接点击创建类。这时Unreal会自动编译C++代码,然后会自动打开Visual Studio。到此 Landscape Mountain环境就下载安装好了。

然后,将AirSim\\Unreal\\Plugins这个文件夹和之前Block中的一些工具一起复制到mountain文件夹中,如下图所示:


这时候再用记事本打开mountain.uproject,修改内容如下:


	"FileVersion": 3,
	"EngineAssociation": "4.26",
	"Category": "Samples",
	"Description": "",
	"Modules": [
		
			"Name": "mountain",
			"Type": "Runtime",
			"LoadingPhase": "Default"
		
	],
	"TargetPlatforms": [
		"MacNoEditor",
		"WindowsNoEditor"
	],
	"EpicSampleNameHash": "1226740271"

然后右键点击mountain.uproject选择Generate Visual Studio project files

之后,双击打开mountain.sln,会自动打开 Visual Studio,选择编译选项为 DebugGame Editor 和 Win64,同时确保mountain为启动项目。

用鼠标点击本地windows调试器,这时会打开 Unreal 编辑器。这时Unreal就已经能够识别airsim插件了。

在Unreal编辑器,将游戏模式改成AirsimGameMode

之后再修改初始位置,这里只保留第一个。

然后点击运行,选择否,就可以看到无人机进入到场景中了。

下面可以修改控制模式,将视角转变成无人机的第一人称。

在C:\\用户用户名\\文档\\下面新建AirSim文件夹, 在新建的 AirSim 文件夹中新建 settings.json文件。如果运行过airsim的话,应该会默认创建这个文件夹和文件的,如果没有,则需要手动创建。将 settings.json 文件修改为如下所示:

setting.json


  "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
  "SettingsVersion": 1.2

改为

 
   "SettingsVersion": 1.2,
   "SimMode": "ComputerVision"
 

修改完之后,进行保存。

再次在编辑器中点击运行,这时就可以用键盘来控制视角了。

  • 上下左右按键:控制前后左右移动
  • PgUp、PgDn:控制上下移动
  • w、s按键:控制俯仰
  • a、d按键:控制偏航

合适地操控运镜,可以呈现大片既视感。

Step4:设置Python关联

最后需要尝试将python和Airsim进行关联,通过python API来控制无人机。

python和pycharm的安装不作赘述,主要需要安装两个库文件。

 pip install msgpack-rpc-python
 pip install airsim

安装好之后,重新修改之前设置的setting.json,改为

 
   "SettingsVersion": 1.2,
   "SimMode": "Multirotor"
 

新建一个Python文件,输入以下内容:

import airsim
 ​
 # connect to the AirSim simulator
 client = airsim.MultirotorClient()
 client.confirmConnection()# get control
 client.enableApiControl(True)# unlock
 client.armDisarm(True)# Async methods returns Future. Call join() to wait for task to complete.
 client.takeoffAsync().join()
 client.landAsync().join()# lock
 client.armDisarm(False)

# release control
client.enableApiControl(False)

当 AirSim 开始仿真的时候,会打开 41451 端口,并监听这个端口的需求。python 程序使用 msgpack serialization 格式向这个端口发送 RPC 包,就可以与AirSim进行通信了。

这时候再运行仿真环境,可以看到无人机不受控制得下落。


然后再运行py文件,注意必须先让虚幻环境运行起来再运行py文件。
运行成功会输出以下内容

这时候就可以看到无人机先缓缓上升,然后落地。

至此,Airsim就配置完成。

以上是关于Win10配置Airsim环境并设置Python通信的主要内容,如果未能解决你的问题,请参考以下文章

AirSim动态 | 安装配置AirSim环境

如何在win7中安装ipython,并且设置环境变量

零基础同学的福利,带你走进Airsim 的大门

如何在win10下配置anaconda环境变量

win10怎么安装JDK8,怎么配置JDK8的环境变量

Unity开源项目精选AirSim