跳转至

SimCreate


SimCreate 是 RflySim 工具链中的实验编排与启动工具。它不负责动力学解算,也不负责三维渲染,而是把一次仿真实验中“用什么机型、跑什么模式、打开哪些软件、如何批量启动”这些工作统一组织起来。

SimCreate三级界面展示


软件定位

如果把 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 真正管理的不是一个“窗口”,而是一组可重复复现的实验状态。


快速上手

最常见的使用顺序

  1. 新建实验
  2. 选择机型与数量
  3. 选择场景与三维显示软件
  4. 选择仿真模式和通信模式
  5. 保存实验
  6. 点击“开始试验”

最适合它的场景

  • 初次搭建 RflySim 实验链路
  • 反复运行某类固定实验
  • 多机和异构实验的批量配置
  • 课程教学与实验室标准流程复现

不适合它独立解决的场景

  • 分布式跨主机脚本分发
  • 视觉传感器细粒度配置
  • 地面站任务规划与参数调试

这些分别更适合交给 DistSimVisCreateQGroundControl


三层界面结构

SimCreate 的界面可以理解为三层:

1. 实验管理层

这一层管理“实验条目”,常见操作包括:

  • 新建
  • 复制
  • 重命名
  • 删除
  • 导出
  • 启动

2. 仿真配置层

这一层管理“当前实验的运行组合”,核心关注点是:

  • 选哪些载具
  • 每种载具几架
  • 放在哪里
  • 用什么场景
  • 需不需要局域网和 Python 脚本

3. 机型配置层

这一层管理“单个载具类型”的细节,包括:

  • 飞控模式
  • 运动模型
  • 通信模式
  • PX4SitlFrame
  • SysID
  • 波特率等

理解这三层后,就能明白为什么 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 的关键能力在于“从配置到执行”的转换。

它实际做了什么

点击“开始试验”后,它通常会:

  1. 从数据库读取实验参数
  2. 用这些参数替换 BAT 模板中的占位符
  3. 生成临时或导出的启动脚本
  4. 依次拉起地面站、三维软件、CopterSim 和 PX4 SITL

它为什么重要

在没有 SimCreate 的情况下,用户往往需要自己管理:

  • 机型参数
  • CopterID
  • 场景名
  • DLL 路径
  • 各程序启动顺序
  • WSL / SITL 相关脚本

SimCreate 把这些高频且容易出错的步骤统一了。

它和 BAT 的关系

对很多高级用户来说,SimCreate 的真正价值不是 GUI 本身,而是它生成的 BAT 脚本。因为一旦脚本生成,实验就可以脱离 GUI 被重复执行、修改、批量调用,甚至接入 DistSim 做分布式分发。


多机与异构实验组织

这是 SimCreate 最值得强调的能力之一。

同构多机

例如 8 架同型号四旋翼编队:

  • 一套机型配置
  • 多个载具编号
  • 自动布局
  • 统一场景

异构多机

例如空地协同或空海协同:

  • 多旋翼
  • 固定翼
  • 无人车
  • 无人船

每类机型都可以有独立的模型、通信方式和布局方式。

DistSim 的关系

SimCreate 负责把实验描述清楚,DistSim 负责把这些实验跨主机跑起来。实际工程里,两者的关系通常是:

SimCreate 生成实验脚本
    -> DistSim 分发并在多节点执行

使用建议与常见问题

推荐策略

  • 单机实验先跑通,再扩展到多机
  • 默认先用 PX4_SITL_RFLY
  • 多机时优先使用 CopterSimNoUI
  • 视觉场景优先选择和任务贴近的地图,再调分辨率

常见问题

问题 更可能的原因 处理思路
点开始后没有拉起整套环境 实验未保存或未选中 回到主界面确认当前实验状态
多机实验很卡 UI 版本过多、场景过重 切换 CopterSimNoUI 并降低场景负载
机型数量和位置不匹配 自定义数组长度不一致 先简化为自动布局排查
PX4 SITL 没起来 WSL 或环境链路异常 先单独验证 SITL 环境,再回到 SimCreate
DLL 模型没生效 模型路径或类型不匹配 先用默认模型确认链路正常

相关资源