Ubuntu 20.04 AirSim+UE4自定义联合仿真

AirSim + UE4 在Ubuntu下联合仿真简介

在现实世界中,数据采集是一个费时费力的流程。时间通常都会花在硬件调试上,并且在算法验证前期很难排查问题。因此,在仿真环境下采集与现实中相近的数据非常重要。AirSim与UE4联合仿真可以给到用户灵活的场景定义与多样的传感器采集设备。研究者们可以在这个平台上进行算法的研究和测试。而Ubuntu 20.04版本是目前稳定且支持较新算法的操作系统,本文对AirSim + UE4的自定义联合仿真进行介绍。

UE4安装

Epic 账号注册

首先,下载UE4需要注册Epic账号并与github账号关联,点击链接:Epic Signup
按找上面的指示进行账号注册,注意保持Epic账号与Github账号邮箱一致。
注册完后,下载指定4.27版本的UE源码,可在命令行中输入如下命令:

git clone -b 4.27 git@github.com:EpicGames/UnrealEngine.git
cd UnrealEngine
./Setup.sh
./GenerateProjectFiles.sh

修改源码文件确保编译通过

接下来,需要找到源码的如下文件,并搜索查找编译选项Arguments并将其修改:
{UE4 workplace}/Engine/Source/Developer/DesktopPlatform/Private/DesktopPlatformBase.cpp

//{UE4 workplace}/Engine/Source/Developer/DesktopPlatform/Private/DesktopPlatformBase.cpp

//修改前
Arguments += " -Progress -NoEngineChanges -NoHotReloadFromIDE"

//修改后
Arguments += " -Progress"

修改UE源码后,编译源码,在终端中输入:

make

等待编译完成。

AirSim安装

AirSim的安装比较简单,只需要输入如下命令:

git clone https://github.com/Microsoft/AirSim.git
cd AirSim
./setup.sh
./build.sh #该步骤如果安装失败请使用sudo
# ./build.sh --debug 和上述步骤二选一

等待安装即可。

启动测试样例

在Ubuntu下UE的启动方式为:

./Engine/Binaries/Linux/UE4Editor #在UE4文件夹中运行

即执行UE中的UE4Editor
若想测试AirSim安装是否正常,可以打开AirSim目录下的测试工程项目,在起始界面点击更多,选择{Airsim floder path}/AirSim/Unreal/Environments/Blocks.uproject这个project的打开。点击Play,即可运行。

自定义场景导入

在仿真过程中,很可能用户需要自定义想要的场景进行测试。在Windows的Epic Game客户端中,有许多场景可以下载。在Windows下载完成后,将Content文件替换在Ubuntu下的UE4项目中的Content文件,如下图所示,将下载好的Content文件夹替换掉原来新建项目的Content文件夹。
在这里插入图片描述
打开此新建的UE4项目,并在Content即内容文件夹中选择对应的关卡文件,在本文样例中,即为文件名为shanghai的关卡文件。
在这里插入图片描述双击打开后,即可进入自定义下载的场景,以下是笔者自定义的上海陆家嘴场景。
在这里插入图片描述

采集设备模型导入

采集设备的设置在通常在~/Documents/AirSim/settings.json中,所有关于传感器的设置都在此文件中。
如果想要自定义采集设备的外观,就需要更改BP_Pawn模型。接下来详述更改流程。

FBX文件导入

首先我们要对模型的FBX文件进行导入,点击添加/导入,选择导入导入FBX文件。
在这里插入图片描述本文导入的是笔者团队研发的SCUBE采集设备模型,导入后可双击查看形状。
如下图所示,是不是非常酷炫,想要购买实际采集设备及获得仿真技术支持可以联系笔者。
在这里插入图片描述

蓝图文件构建

除了模型,我们还需要AirSim中的蓝图作为基础进行传感器配置更改,将如下所示的AirSim自带的BP_Pawn文件复制到Content文件夹中。
在这里插入图片描述
双击导入的蓝图文件,点击BodyMesh,将其静态网格体更换为自定义的网格体,并且对摄像头的位置进行调整,这些摄像头的位置直接决定了数据采集中相机的外参。需要调整位置并记录下外参,以便后续算法配置。
在这里插入图片描述

更改settings文件

在本文中,直接在Content中建立了新的传感器模型与蓝图,因此在settings文件中,需要将指定传感器蓝图的路径修改如下即可:

{
    "SettingsVersion": 1.2,
    "SimMode": "Multirotor",
    "ClockType": "SteppableClock",
	"PawnPaths":{
		"DefultQuadrotor":{"PawnBP":"Class'/Game/BP_FlyingPawn.BP_FlyingPawn_C'"}
	},
    "Vehicles": {
		"UAV1":{
			"VehicleType": "SimpleFlight",
			"PawnPath":"DefultQuadrotor",
			"X": 0, "Y": 0, "Z": 0,
			"Yaw": 0
		}
    }
}

其他传感器设置与普通的设置均相同。

数据采集流程

点击运行,可以看到Scube的设备出现在了场景中。数据采集流程和正常AirSim的流程相同,后续会继续介绍如何高效采集严格同步的高帧率数据。
在这里插入图片描述

  • 35
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值