水下机器人 Unreal Engine 5 仿真
1. 安装说明(针对 Windows 操作系统)
UNav-Sim 依赖于 Unreal Engine 5 生成逼真的渲染图。首先安装 UE5,然后继续安装 UNav-Sim。
1.1 UE5
确保你已经在 Epic Games 注册了。这是获取虚幻引擎源代码访问所必需的。
在你喜欢的文件夹里克隆 Unreal 5.1 并构建它(这需要大量的时间与内存,需要 163 GB):
git clone -b 5.1 git@github.com:EpicGames/UnrealEngine.git
cd UnrealEngine
.\Setup.bat
.\GenerateProjectFiles.bat
1.2 UNav-Sim
在你最喜欢的文件夹里克隆这个仓库:
git clone git@github.com:open-airlab/UNav-Sim.git
cd UNav-Sim
build.cmd
1.3 构建 UE5 环境
在 cd ~\UNav-Sim\Unreal\Environments\Blocks 目录下:
右键点击 Blocks.uproject 文件,在菜单中选择“Generate Visual Studio project files”(生成 Visual Studio 项目文件)。
2. 运行模拟
- 将
ros2/src/water/ue5_UNav-Sim/settings.json文件添加到C:\[用户名]\Documents\AirSim - 用 Visual Studio 打开
Blocks.sln - 进行调试
- 进入 Unreal Engine 5 后进行模拟

2.1 HelloROV 圆形轨迹
本仿真基于1.2的
UNav-Sim仓库
第 1 步:启动仿真器
- 打开
(存储相应文件的磁盘):\UNav-Sim\Unreal\Environments\Blocks\Blocks.uproject - 等编辑器加载完(约 1 分钟)
- 点工具栏绿色
Play按钮 - 确认:视口出现蓝色
BlueROV2且没有报错弹窗
第 2 步:确认 RPC 服务器已就绪
另开一个命令行窗口输入: netstat -ano | findstr ":41451"
看到 LISTENING 就说明 API 服务在线。
第 3 步:运行圆形轨迹控制器
方案 A:Python脚本方案
在命令行输入: python E:\underwater\daima\UNav-Sim\circle_rov.py
注:命令中路径改为自己电脑文件实际存放地址
- 运行
90秒自动停止,半径2.5米,一圈约79秒 - 脚本开头会自动把
ROV重置回水面附近,不需要手动处理沉底问题
方案 B:官方 C++ HelloROV 示例方案
在PowerShell中运行存储相应文件的磁盘 例如:
E:\underwater\daima\UNav-Sim\HelloRov\build\x64\Release\HelloRov.exe
注:命令中路径改为自己电脑文件实际存放地址
如果ROV已经沉底,推进器可能推不动,所以单独执行下面这条重置命令:
python -c "import airsim; c=airsim.MultirotorClient(); c.confirmConnection(); c.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0,0,-0.5), airsim.Quaternionr(0,0,0,1)), True)"
第 4 步:在 UE 视口里看
- 鼠标点一下视口中的画面
- 滚轮拉远
+右键旋转到俯视角度,能看到整个约 5m 直径的圆 - 盯着蓝色
ROV,20秒内就能看到它在绕圈 如图所示:

第 5 步:停止
| 情况 | 命令 |
|---|---|
| Python 脚本 | 等下自动停(90 秒)或 Ctrl+C |
| HelloRov.exe | Stop-Process -Name HelloRov -Force |
| 退出仿真 | 点编辑器 Stop (停止 Play) |
注意事项
- 不要关闭弹出的黑色控制台窗口 (HelloRov 方案 B 会有)——关了等于停止控制
- 如果你自己调参数,改 circle_rov.py 顶部的
RADIUS、OMEGA(半径、角速度)就行 - 每次都从第 3 步开始(控制器会自动重置 ROV),不需要重开编辑器