UNav-Sim
UE5+AirSim 水下机器人高保真仿真平台,支持 BlueROV2、ROS/ROS2、MPC 控
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
UE5+AirSim 水下机器人高保真仿真平台,支持 BlueROV2、ROS/ROS2、MPC 控
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在真实海洋环境中测试水下 ROV(遥控潜水器)成本极高——一次出海费用动辄数万,且设备损坏风险随时存在。更棘手的是,水下光照变化大、洋流不稳定、湍流随机,水面与水下的通信链路(声呐、缆线)也随时可能中断。科研团队和算法工程师在正式下海之前,往往只能"盲调",缺乏可靠的方式来验证控制算法、SLAM 定位和路径规划策略的效果。
UNav-Sim 正是为解决这一痛点而生——它将 Unreal Engine 5 的电影级渲染能力与 Microsoft AirSim 的机器人仿真接口相结合,为水下机器人打造了一个"在办公室里就能下海"的虚拟训练场。
UNav-Sim 由 REMARO Network(Reliable Mutex Architecture for Robot Operations)项目孵化,核心开发团队隶属于开放航空实验室(open-airlab)。REMARO 是一个欧盟 Horizon 2020 资助的多国合作研究项目,专注于水下自主机器人的可靠性设计。
项目的核心维护者同时运营 MIMIR-UW 水下数据集仓库,提供真实海底环境的多传感器数据(水深图像、声呐、惯性测量等),与 UNav-Sim 形成"数据集 + 仿真平台"的闭环研究生态。截至目前,UNav-Sim 已获得 314 颗 GitHub Stars,Fork 30 次,吸引了来自机器人、强化学习和海洋工程领域的研究者关注。
UNav-Sim 的技术架构可概括为"渲染引擎 + 仿真内核"两层:
渲染层:Unreal Engine 5
UE5 带来了Nanite 虚拟几何体和 Lumen 全动态全局光照,能够模拟真实的水下光散射、雾气效果、沉积物悬浮等视觉细节。这些高保真渲染对于依赖视觉 SLAM(VSLAM)的算法测试尤为关键——算法在仿真中见过的"水下世界"与真实海底越接近,迁移到实物的效果就越好。
仿真内核:AirSim Plugin
AirSim 是微软开源的无人机/机器人仿真平台,UNav-Sim 在其基础上针对水下场景做了大量改造:
代码结构上,AirLib/ 目录包含核心仿真逻辑(传感器融合、物理引擎接口),MavLinkCom/ 处理与真实飞控的通信协议,DroneServer/ 和 DroneShell/ 提供 Python/C++ 控制接口,Examples/ 中的 HelloROV 示例演示了如何用 AirSim API 发送 PWM 信号控制推进器、沿圆形轨迹执行路径跟踪。
如果你玩过《微软飞行模拟器》,就不难理解 UNav-Sim 的定位:它不是让飞机真的飞起来,而是让你在逼真的虚拟环境中练习飞行技术、调试仪表设备、理解气象影响。对水下 ROV 而言,UNav-Sim 就是那个"飞行模拟器"——只是飞行的舞台从天空换成了海洋。
对于强化学习研究者,这意味着可以在无需任何硬件的情况下,训练近岸巡检管道、自动对接充电站等任务策略;对于 MPC(模型预测控制)工程师,可以在仿真中调试非线性 MPC 控制器参数,验证 BlueROV2 Heavy 在洋流扰动下的轨迹跟踪性能。
HelloSpawnedDrones 示例展示了同时控制多个 ROV 的能力,适合编队协同、集群控制等高级研究场景。
ros/ 和 ros2/ 目录分别提供 ROS1 Melodic/Noetic 和 ROS2 Foxy/Humble 的导航栈集成,包含:
通过 moveByMotorPWMsAsync() 直接发送 PWM 信号到推进器,实现实时控制。示例中演示了圆形轨迹跟踪——控制器计算期望位姿与当前位置的误差,转化为力和力矩(wrench),再通过推进器分配矩阵映射为 PWM 命令。
docker/Dockerfile_binary 提供了基于 nvidia/cudagl 镜像的 AirSim Python 环境,可在具备 GPU 的 Linux 主机上快速启动仿真(不含 UE5 渲染引擎,渲染需额外配置)。
这是本项目最大的门槛——没有之一。
UNav-Sim 的完整安装分为三步,每一步都有坑:
| 步骤 | 要求 | 难度 |
|---|---|---|
| 安装 UE5 源码 | 需要 Epic Games 账号 + 源码权限,克隆 + 编译耗时数小时 | ⭐⭐⭐ |
| 编译 UNav-Sim | 运行 ./setup.sh + ./build.sh,涉及 cmake 和 C++ 编译 | ⭐⭐⭐⭐ |
| 配置 UE5 环境 | 添加 .uproject 项目文件到 UE5 编辑器 | ⭐⭐ |
GPU 是硬性需求。NVIDIA 驱动和 CUDA 10.0+ 是最低配置,显存建议 8GB 以上。整个过程在高端工作站上顺利的话也需要 4-8 小时,中途遇到编译错误需要一定 C++ 调试能力。
Docker 方式仅能提供 AirSim Python 接口,无法获得 UE5 的高保真渲染画面,适合纯算法验证场景。
图1:UNav-Sim 官方 Logo

图2:MIMIR 数据集海底环境仿真效果
MIMIR-UW 是配套的真实海底数据集,其环境可导入 UNav-Sim 进行场景重建,提供从真实数据到虚拟仿真的完整pipeline。

Dockerfile_source 引用的是 UE 4.19.2 而非 README 中的 UE 5.1,存在版本不一致问题UNav-Sim 代表了机器人仿真领域的"渲染优先"路线——用游戏引擎替代传统物理仿真器,追求视觉保真度和物理真实性并重。随着 NVIDIA Isaac Sim、Unity Robotics 等同类工具的崛起,水下机器人仿真正在从"能用 Gazebo"向"好看好用"进化。
REMARO 项目的论文引用表明,UNav-Sim 已在欧洲多个海洋机器人研究机构落地使用,用于验证 MPC 控制器的实物-仿真迁移(Sim-to-Real)效果。对于中国正在崛起的海洋牧场监测、海底管道巡检等应用,UNav-Sim 提供了一个值得参考的开源研究基线。