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

### 安装和配置CARLA 对于希望在Ubuntu 20.04上安装并配置CARLA的用户而言,可以遵循官方文档推荐的方法来获取最新版本的CARLA模拟器[^1]。 #### 下载CARLA 通过访问CARLA官方网站或GitHub仓库下载预编译二进制文件是最简便的方式。确保选择适用于Linux系统的版本: ```bash wget https://github.com/carla-simulator/carla/releases/download/0.9.13/CarlaUE4.sh chmod +x CarlaUE4.sh ./CarlaUE4.sh ``` #### 配置环境变量 为了方便调用CARLA Python API,在`~/.bashrc`中添加如下路径设置: ```bash export CARLA_ROOT=/path/to/your/Carla export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-<version>-py3.<version>-linux-x86_64.egg export PATH=$PATH:$CARLA_ROOT source ~/.bashrc ``` ### 安装和配置AirSim 针对AirSim的部署同样可以在Ubuntu 20.04环境下顺利实施。考虑到硬件条件优越(配备有NVIDIA RTX 4090 Ti GPU),这有助于加速图形渲染过程以及支持更复杂的多传感器融合任务。 #### 使用Docker容器化部署方案 采用Docker镜像简化安装流程是一种高效的选择。首先需确认已正确安装Docker CE,并赋予当前用户执行权限: ```bash sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo usermod -aG docker $USER newgrp docker ``` 接着拉取官方提供的AirSim Docker镜像: ```bash docker pull microsoft/airsim:latest-linux ``` 启动带有GPU支持的AirSim实例: ```bash nvidia-docker run --rm -it \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=unix$DISPLAY \ -v ~/Documents/AirSimSettings/:/home/airsim/Documents/AirSim/settings.json \ microsoft/airsim:latest-linux bash ``` 以上命令假设主机上的`~/Documents/AirSimSettings/`目录存储着自定义设定文件;如果不需要修改默认参数,则可省略挂载操作。 ### 软件集成与扩展应用 当完成上述两个平台的基础构建之后,能够进一步探索诸如多传感器数据融合、群体导航等高级功能特性。此外,基于FAR Planner的成功案例表明,在农业机器人领域内利用仿真工具进行前期测试验证是非常有效的策略之一[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值