SimCreate¶
SimCreate 是 RflySim 工具链中的实验编排与启动工具。它不负责动力学解算,也不负责三维渲染,而是把一次仿真实验中“用什么机型、跑什么模式、打开哪些软件、如何批量启动”这些工作统一组织起来。
软件定位¶
如果把 RflySim 的整套仿真看成一条流水线:
CopterSim是运动与飞控接口内核RflySim3D是三维环境与传感器平台QGroundControl是地面站DistSim是多机部署调度器SimCreate则是实验组织入口
它的核心价值在于两点:
- 把零散的软件启动、模式配置和参数组合收拢成一个实验条目
- 把实验条目转换成可重复执行的 BAT 脚本
因此,SimCreate 更像“实验管理器”,而不是某个单一的仿真程序。
在工具链中的角色¶
SimCreate 的典型输出不是图像,也不是控制量,而是一套完整的实验启动方案:
SimCreate
-> 读取机型、场景、仿真模式、通信模式等配置
-> 生成 BAT 脚本
-> 启动 QGroundControl
-> 启动 RflySim3D / RflySimUE5
-> 启动 CopterSim 集群
-> 启动 PX4 SITL 或准备 HITL
-> 可选加载 Python 脚本
这意味着:
- 它决定实验“怎么组织”
- 它不决定飞行器“怎么飞”
- 它也不替代
DistSim的跨机分发能力
一个实验是怎么被组织起来的¶
在 SimCreate 里,一个实验通常由五类信息组成:
| 维度 | 说明 |
|---|---|
| 载具配置 | 机型、数量、编号、布局方式 |
| 运动模型 | 默认模型、DLL 模型或 XML 模型 |
| 飞控模式 | SIL、HIL 及其子模式 |
| 通信模式 | UDP、MAVLink、Redis 等 |
| 场景与显示 | 3D 软件、场景、分辨率、全屏、局域网 |
因此,SimCreate 真正管理的不是一个“窗口”,而是一组可重复复现的实验状态。
快速上手¶
最常见的使用顺序¶
- 新建实验
- 选择机型与数量
- 选择场景与三维显示软件
- 选择仿真模式和通信模式
- 保存实验
- 点击“开始试验”
最适合它的场景¶
- 初次搭建 RflySim 实验链路
- 反复运行某类固定实验
- 多机和异构实验的批量配置
- 课程教学与实验室标准流程复现
不适合它独立解决的场景¶
- 分布式跨主机脚本分发
- 视觉传感器细粒度配置
- 地面站任务规划与参数调试
这些分别更适合交给 DistSim、VisCreate 和 QGroundControl。
三层界面结构¶
SimCreate 的界面可以理解为三层:
1. 实验管理层¶
这一层管理“实验条目”,常见操作包括:
- 新建
- 复制
- 重命名
- 删除
- 导出
- 启动
2. 仿真配置层¶
这一层管理“当前实验的运行组合”,核心关注点是:
- 选哪些载具
- 每种载具几架
- 放在哪里
- 用什么场景
- 需不需要局域网和 Python 脚本
3. 机型配置层¶
这一层管理“单个载具类型”的细节,包括:
- 飞控模式
- 运动模型
- 通信模式
PX4SitlFrameSysID- 波特率等
理解这三层后,就能明白为什么 SimCreate 特别适合多机和异构实验,而不仅仅是“做一个启动器”。
核心配置项¶
载具与编号¶
最常见的配置包括:
- 载具数量
- 自动编号或手动编号
- 自动矩形布局或手工布局
- 初始位置与姿态
对多机实验来说,编号管理比单架实验更关键,因为后续的 MAVLink、日志、脚本和显示往往都依赖 CopterID。
场景与显示¶
这里决定:
- 使用
RflySim3D还是RflySimUE5 - 使用哪个场景
- 分辨率是否足够
- 是否全屏
- 是否需要局域网广播
如果实验包含视觉闭环,场景和显示设置不仅影响“好不好看”,还会影响感知数据质量和整机负载。
飞控模式¶
SimCreate 支持的软件在环与硬件在环模式较多,但对大多数用户来说,可先这样理解:
| 类别 | 典型用途 |
|---|---|
PX4_SITL_RFLY |
最常见的 PX4 软件在环 |
Simulink&DLL_SIL |
不依赖飞控的模型级仿真 |
PX4_HITL |
基于 Pixhawk 的硬件在环 |
| 其他 SIH / APM / 外部模式 | 面向特定链路或扩展需求 |
通信模式¶
常见模式大致可按使用目的来理解:
UDP_Full / UDP_Simple适合模型接口、轻量数据链路和批量仿真Mavlink_*适合 PX4、QGC、Python 外部控制、MAVROS 链路Redis_*适合定制版分布式或共享数据通道
如果不是特殊需求,优先先把默认推荐链路跑通,再做模式切换。
实验执行机制¶
SimCreate 的关键能力在于“从配置到执行”的转换。
它实际做了什么¶
点击“开始试验”后,它通常会:
- 从数据库读取实验参数
- 用这些参数替换 BAT 模板中的占位符
- 生成临时或导出的启动脚本
- 依次拉起地面站、三维软件、
CopterSim和 PX4 SITL
它为什么重要¶
在没有 SimCreate 的情况下,用户往往需要自己管理:
- 机型参数
- CopterID
- 场景名
- DLL 路径
- 各程序启动顺序
- WSL / SITL 相关脚本
SimCreate 把这些高频且容易出错的步骤统一了。
它和 BAT 的关系¶
对很多高级用户来说,SimCreate 的真正价值不是 GUI 本身,而是它生成的 BAT 脚本。因为一旦脚本生成,实验就可以脱离 GUI 被重复执行、修改、批量调用,甚至接入 DistSim 做分布式分发。
多机与异构实验组织¶
这是 SimCreate 最值得强调的能力之一。
同构多机¶
例如 8 架同型号四旋翼编队:
- 一套机型配置
- 多个载具编号
- 自动布局
- 统一场景
异构多机¶
例如空地协同或空海协同:
- 多旋翼
- 固定翼
- 无人车
- 无人船
每类机型都可以有独立的模型、通信方式和布局方式。
与 DistSim 的关系¶
SimCreate 负责把实验描述清楚,DistSim 负责把这些实验跨主机跑起来。实际工程里,两者的关系通常是:
使用建议与常见问题¶
推荐策略¶
- 单机实验先跑通,再扩展到多机
- 默认先用
PX4_SITL_RFLY - 多机时优先使用
CopterSimNoUI - 视觉场景优先选择和任务贴近的地图,再调分辨率
常见问题¶
| 问题 | 更可能的原因 | 处理思路 |
|---|---|---|
| 点开始后没有拉起整套环境 | 实验未保存或未选中 | 回到主界面确认当前实验状态 |
| 多机实验很卡 | UI 版本过多、场景过重 |
切换 CopterSimNoUI 并降低场景负载 |
| 机型数量和位置不匹配 | 自定义数组长度不一致 | 先简化为自动布局排查 |
| PX4 SITL 没起来 | WSL 或环境链路异常 | 先单独验证 SITL 环境,再回到 SimCreate |
| DLL 模型没生效 | 模型路径或类型不匹配 | 先用默认模型确认链路正常 |
相关资源¶
- 软件使用总入口:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e1_RflySimSoftwareReadme
- RflySim3D 软件说明:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e1_RflySimSoftwareReadme\RflySim3D
- QGroundControl 软件说明:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e1_RflySimSoftwareReadme\QGroundControl
- 多载具批量启动:[RflySim安装路径]\RflySimAPIs\10.RflySimSwarm\0.ApiExps\e9.MultVehiclesStart
- BAT 脚本模板总入口:[RflySim安装路径]\RflySimAPIs\BatScripts