跳转至

RflySim3D 与 RflySimUE5


RflySim3DRflySimUE5 是 RflySim 工具链中的三维显示与传感器仿真引擎。它们的核心价值不在于解算飞行器动力学,而在于承载场景、渲染载具、生成视觉与点云等感知数据,并把仿真从“飞控闭环”扩展到“感知-决策-控制”闭环。


软件定位

在 RflySim 工具链里,这两个软件承担的是“三维世界”和“感知世界”的角色:

  • CopterSim 负责动力学、飞控接口和运动状态解算
  • RflySim3D / RflySimUE5 负责三维场景显示、载具模型呈现、碰撞和多模态传感器数据生成
  • QGroundControl 负责地面站监控、任务规划和参数配置
  • VisCreate 负责视觉传感器方案配置,并生成 Config.json
  • Python / ROS / Simulink 负责外部控制、感知算法和系统集成
  • DistSim 负责多机节点发现与分布式部署

因此,理解这两个引擎时,最重要的一点是:

角色边界

RflySim3D / RflySimUE5 不是运动仿真器,而是与 CopterSim 协同工作的三维引擎和感知数据源。

三维仿真与AI控制系统关系


在工具链中的角色

典型链路如下:

SimCreate / BAT
    -> 启动 CopterSim / PX4 / QGC / RflySim3D
    -> CopterSim 解算载具状态
    -> RflySim3D 接收位姿并渲染场景
    -> RflySim3D 根据 Config.json 激活虚拟传感器
    -> VisionCaptureApi / ROS / 外部程序获取图像、深度、点云
    -> 上层算法输出控制指令
    -> CopterSim / PX4 执行控制

如果只做姿态、位置、航点等飞控验证,RflySim3D 的主要作用是可视化显示。

如果做视觉闭环、SLAM、目标识别、避障、强化学习等任务,RflySim3D 就变成了整套系统里的核心感知环境。

RflySim三维仿真总体框架


典型使用路径

1. 基础显示链路

这是最常见的入门用法:

  1. 启动 CopterSim
  2. 启动 RflySim3DRflySimUE5
  3. 引擎接收载具位姿并实时显示
  4. 用户通过键盘、鼠标或控制台切换视角和场景

2. 视觉传感器链路

这是和 VisCreate 配套的常见用法:

  1. VisCreate 中配置传感器方案
  2. 生成 Config.json
  3. 启动 RflySim3D
  4. Python 通过 VisionCaptureApi 或 ROS 接收图像、深度、点云
  5. 上层算法完成感知与控制闭环

3. 多机与分布式链路

当载具数量较多,或者单机算力无法同时承担动力学、渲染和感知算法时:

  1. 多个 CopterSim 实例分布在不同主机
  2. 一个或多个 RflySim3D 负责统一渲染
  3. DistSim 负责节点管理与脚本分发
  4. 上层控制程序通过 UDP / MAVLink / ROS 同时与多机交互

版本体系与选型

UE4 与 UE5 的区别

维度 RflySim3D RflySimUE5
引擎基础 UE4.27 UE5.2
当前定位 工具链主力版本 高保真扩展版本
运行门槛 较低 较高
视觉效果 稳定、成熟 更强的光照与大场景能力
点云处理 传统方案 支持更强的 GPU 加速
适用场景 常规飞控、视觉、教学、批量仿真 高保真视觉、像素流、复杂场景

选择建议

  • 如果重点是稳定、兼容性和常规实验,优先使用 RflySim3D
  • 如果重点是高保真视觉、超大场景和更强渲染能力,可使用 RflySimUE5
  • 如果是多机批量实验,优先考虑整体链路负载,而不是单纯追求画面效果

授权差异

不同授权版本会影响传感器数量、局域网接收、Cesium、Redis 等能力。实际项目里,RflySim3D 的版本差异往往直接影响“能不能做多机视觉闭环”和“能不能做跨机分布式显示”。


启动与基础配置

安装位置

软件 默认位置
RflySim3D %PSP_PATH%\\RflySim3D
RflySimUE5 %PSP_PATH%\\RflySimUE5

关键配置文件

文件 作用
RflySim3D.txt 启动时自动执行的控制台命令
LowGPU.txt 低性能模式配置
RedisConfig.ini 定制版 Redis 通信配置
Config.json 视觉传感器方案配置

常见启动方式

  • 直接运行可执行文件
  • 通过 BAT 启动整套仿真
  • SimCreate 自动编排启动
  • 在多机环境中由 DistSim 远程分发脚本启动

常见启动参数思路

RflySim3D.txt 更适合放“地图切换、分辨率、帧率”这类全局配置,LowGPU.txt 更适合放“减负载、降画质”的配置。大规模多机仿真时,应优先从分辨率、阴影、植被和后处理下手做性能削减。


常用交互方式

RflySim3D 的交互主要有四种:

RflySim3D界面与功能区域

1. 键盘与鼠标

常用功能包括:

  • 视角切换
  • 载具切换
  • 飞机编号显示
  • 轨迹显示
  • 碰撞检测开关
  • 小地图与传感器范围显示

2. 控制台命令

通过反引号打开控制台后,可完成:

  • 地图切换
  • 相机位姿与视场角调整
  • 模型切换与缩放
  • 消息标签显示
  • 地形扫描
  • 分割值设置

3. 启动脚本

将命令预先写入 RflySim3D.txt,适合固定实验流程、课程演示和批量复现实验。

4. 外部程序接口

上层程序可通过 UDPPython UE4CtrlAPI 或 Simulink 接口向引擎下发命令,完成自动化控制、场景批处理和在线交互。


传感器与视觉链路

这是 RflySim3D 最关键的部分之一。

RflySim多模态传感器数据预览

它能提供什么

RflySim3D 不只负责“看起来像真的”,更重要的是生成可被算法直接消费的感知数据,例如:

  • RGB 图像
  • 深度图
  • 灰度图
  • 分割图
  • 红外图像
  • LiDAR 点云
  • 简易检测类传感器结果

它在链路中的意义

在视觉算法实验里,RflySim3D 的角色相当于“虚拟摄像头”和“虚拟雷达”所在的平台。算法不是直接对着三维界面工作,而是通过 Config.json + VisionCaptureApi 去拿传感器数据。

传感器配置的三个关键点

  1. TypeID 决定传感器类型,例如 RGB、深度、LiDAR、吊舱、红外等。
  2. TargetMountType 决定传感器是跟着载具走、固定在世界坐标系,还是依附于其他传感器。
  3. SendProtocol 决定数据如何输出,例如共享内存、UDP 原始数据或视频流。

使用建议

  • 本机算法开发优先选共享内存,延迟更低
  • 跨机部署或分布式链路再考虑 UDP
  • 多传感器方案优先在 VisCreate 中做可视化配置,再导出到运行环境

场景、地图与模型

场景与地图

RflySim3D 既支持通用教学和测试场景,也支持更复杂的 GIS 和城市建模场景。对 RflySim 来说,场景的意义不只是“换个背景”,而是直接决定:

  • 感知算法看到什么
  • 地形扫描和地图查询结果如何
  • 避障与路径规划是否具有代表性

RflySim3D三维资源导入方法

Cesium 与离线地图

对于大范围或真实地理区域验证,可以使用 Cesium 相关链路。若在线地图受限,也可以转向离线 3D Tiles 方案。这个能力对“航测、巡检、低空物流、复杂城市场景验证”很重要。

三维模型

载具模型和场景模型通常通过以下方式进入引擎:

  • 使用内置资源和 Starter Content
  • 导入外部模型
  • 通过 XML 定义载具机体、执行器和机载相机
  • 通过蓝图构建更复杂的动态载具和特效

理解 XML 的意义

对 RflySim 来说,XML 不只是一个模型描述文件,它还是“飞控输出”和“三维表现”之间的桥。CopterSim 发出的 vehicleType 需要映射到具体的 3D 模型、执行器和机载相机配置,这一步就是通过 XML 完成的。


多机与高级功能

多机显示

RflySim3D 支持在一个场景中显示多架载具,既可以用于编队飞行观察,也可以作为分布式渲染节点的统一显示端。对大规模仿真来说,它的价值在于“统一视图”和“统一感知环境”。

碰撞与回放

高级实验里常用的能力包括:

  • 碰撞检测
  • 飞行轨迹记录与回放
  • 标签和消息显示
  • 地形扫描
  • 多机依附关系

这些功能对于故障复现、集群观察和课程演示都很重要。

UE5 增强能力

RflySimUE5 进一步强化了:

  • 大场景与高保真渲染
  • 点云 GPU 处理
  • 像素流推送
  • 更强的视觉展示和远程浏览能力

但在批量仿真和教学环境中,也要同步考虑其 GPU 成本。


使用建议与常见问题

推荐的阅读顺序

  1. 先理解它在工具链中的角色
  2. 再掌握基本显示、视角切换和命令控制
  3. 再进入传感器配置和 VisionCaptureApi
  4. 最后再看 GIS、Cesium、蓝图和多机高级功能

常见问题

问题 更可能的原因 处理思路
看不到飞机 CopterSim 没有正常发数 先检查动力学端是否运行正常
有显示但没传感器数据 Config.json 配置错误 先在 VisCreate 中重新生成方案
多机显示不完整 载具 ID、广播或网络链路问题 先用单机跑通,再扩展到局域网
帧率很低 GPU 压力过大 降分辨率、关后处理、减传感器数量
画面正常但算法拿不到图像 数据通道不匹配 核对共享内存 / UDP 配置与接收端实现

相关例程

软件入口与基础使用

控制台、接口与联动控制

场景、模型与 GIS

传感器与高级功能