添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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源码后,编译源码,在终端中输入:

等待编译完成。

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的流程相同,后续会继续介绍如何高效采集严格同步的高帧率数据。
在这里插入图片描述

AirSim 是一款基于游戏引擎的开源跨平台仿真器,它可以用于无人机、无人车等机器人的物理和视觉仿真。它同时支持基于 PX4 和 ArduPilot 等飞行控制器的软件在环仿真,目前还支持基于PX4的硬件在环仿真AirSim 是作为虚幻游戏引擎的插件而存在的,适配基于虚幻引擎搭建的环境。得益于游戏引擎优秀的视觉渲染效果,AirSim 仿真平台的一大亮点是具有非常优秀的视觉仿真效果,非常适用于进行基于深度学习等视觉AI仿真验证。AirSim 目前以停止更新,最新的版本是 v1.8.1版本。 谈到无人机/无人车仿真,首先想到的大概就是gazebo,但现在都快进入元宇宙时代了(手动狗头),还再继续使用gazebo这种上个时代的产品就显得不够hack,是时候了解和学习下新事物--Airsim了。 Airsim是由微软开源的无人机/无人车仿真工具,其本质是UE4(虚幻引擎)的一个插件,所以Airsim可以在任何UE4的3D场景地图中运行,可以充分利用epic商城提供的免费、付费地图。在我探索Airsim的几周来,发现Airsim的优点在于: 1、PX4支持,并且支持其他多种飞行模式。 2、Py.. 在官方实现的AirSim中有一个Block的工程可以通过MavLink协议遥控无人机的飞行,但是Block的场景比较单调,缺少真实性。所以可以更换不同的场景来运行AirSim 原来的Block场景: 更换后的场景: 在【虚幻商城】中找到自己喜欢的场景,然后下载到一个目录下面,记得路径不能有中文,否则会编译出错。 双击*.uptoject打开 点击菜单【文件】-》【生产Visual Studio 2019项目】 CarGame根目录下面也就是CarGame.uproject同一级目录新建文件夹Plugins 教程,但是一直没有收到被invite的邮件,所以我给官方发邮件,然后他们说他们正在尝试解决这个问题,期间收到两次更新邮件,让我耐心等待,今天收到邮件说,他们解决了,让我用Microsoft edge网页去重新连接,这次很顺利的就好了。8. 好无语, 用Ubuntu20.04UE4.27根本打不开Airsim的block文件,会出现以下的问题,所以重新装Ubuntu 18.04.6 (7. 输入make后等了好久才会结束编译,经历完2000多个(ue4.24) 编译后,还有一个102的文件编译。 创建一个自定义的虚拟场景,并通过Airsim加载打开Epic-> 点击虚幻商城-> 搜索环境类型的素材(推荐免费:搜索"Assetsville Town或City Park" -> 筛选结果选择免费 -> 添加致购物车进行购买)-> 点击上方的库,选择刚才购买的City Park创建工程,选定路径导入完成后双击打开该工程注:如果加载过程中黑屏或者卡住可以重启,如果实在打开太卡或太慢可以选择上面购买City Park第二个那个轻量版地图关闭工程,将文件夹复制到刚才的工程目录下,然后双击,弹出。 这里主要描述一下我前段时间成功安装AirSimUE4的流程,中间也遇到过一些问题,刚开始我安装的是最新的UE5,但是不知道什么情况运行AirSim中的blocks模块始终没有成功,VisualStudio中提示Unable to find plugin 'PhysXVehicles' (后面从win10-airsim-Unreal 安装配置教程(踩坑)_h:\airsim\airsim\unreal\environments\blocks\plugin-CSDN博客的评论区里看到有可能是重启电脑才能关联项