VisCreate¶
VisCreate 是 RflySim 工具链中的视觉传感器配置前端,用来为 RflySim3D / RflySimUE5 生成和管理 Config.json。它本身不负责动力学仿真,也不负责三维渲染,而是把“传感器方案设计”从手写 JSON 变成可视化、可预览、可复用的流程。
软件定位¶
如果把 RflySim3D 看成虚拟世界和虚拟传感器所在的平台,那么 VisCreate 的角色就是这个平台的“传感器布设工具”。
它主要解决三类问题:
- 传感器装在哪里
- 传感器看向哪里
- 传感器以什么格式、什么频率把数据发给上层程序
因此,VisCreate 的核心价值不是单独运行,而是服务于 RflySim3D 的视觉链路。
在工具链中的角色¶
典型协同关系如下:
VisCreate
-> 生成 Config.json
-> RflySim3D / RflySimUE5 加载传感器方案
-> VisionCaptureApi / ROS / 外部程序获取数据
-> 上层算法进行感知、定位、避障、控制
在实际项目里,VisCreate 让视觉实验从“改参数文件”变成“配置-预览-导出-运行”的闭环。
典型工作流程¶
1. 选择载具和场景¶
在界面中选择当前实验要挂载传感器的载具和对应场景。这里的选择不是装饰性的,它决定了后续预览时的传感器姿态参考和场景可见内容。
2. 添加传感器¶
按照任务需求添加一个或多个传感器,例如:
- 前视 RGB
- 下视深度
- LiDAR
- 分割相机
- 红外传感器
3. 调整安装参数¶
重点通常集中在:
- 分辨率
- 频率
- 视场角
- 安装位置
- 安装角度
- 传输方式
4. 预览效果¶
预览阶段的意义是确认“算法最终实际会拿到什么”。这一步往往比单纯看配置表更重要,尤其在多传感器方案、吊舱视角、下视相机和 SLAM 相机布局中。
5. 导出配置¶
最终生成 Config.json,交给 RflySim3D 和 VisionCaptureApi 使用。
支持的传感器类型¶
VisCreate 面向的不是某一种单独相机,而是一整类虚拟传感器方案。常见类型包括:
| 类型 | 典型用途 |
|---|---|
| RGB | 目标检测、视觉跟踪、导航识别 |
| 深度图 | 距离估计、避障、三维重建 |
| 灰度图 | 光流、轻量视觉任务 |
| 分割图 | 语义感知、标注数据生成 |
| LiDAR 点云 | SLAM、建图、环境建模 |
| 红外图像 | 夜间或特殊场景感知 |
| 吊舱/特殊视角相机 | 任务载荷、巡检与侦察 |
对 RflySim 来说,VisCreate 的价值并不只是“支持很多传感器”,而是让这些传感器能以统一方式被编排到一套实验里。
Config.json 的关键配置项¶
VisCreate 最终的输出是 Config.json。真正需要掌握的不是 JSON 语法,而是这些字段在仿真链路中的含义。
核心字段¶
| 字段 | 作用 |
|---|---|
SeqID |
传感器实例编号 |
TypeID |
传感器类型编号 |
TargetCopter |
绑定到哪一架载具 |
TargetMountType |
安装模式,决定是否跟随机体或固定在世界坐标系 |
DataWidth / DataHeight |
输出分辨率 |
DataCheckFreq |
输出频率 |
CameraFOV |
视场角 |
SensorPosXYZ |
安装位置 |
SensorAngEular / SensorAngQuat |
安装角度 |
SendProtocol |
传输方式 |
真正需要关注的三件事¶
- 传感器“挂在哪”
也就是
TargetCopter + TargetMountType - 传感器“怎么朝向” 也就是安装位姿
- 传感器“怎么发出来” 也就是共享内存、UDP 或视频流
如果这三件事配置清楚了,大多数视觉实验都能跑通。
与 RflySim3D 的协同关系¶
它不替代引擎¶
VisCreate 不是视觉仿真器。真正生成图像、深度和点云的是 RflySim3D / RflySimUE5。
它服务于引擎¶
VisCreate 负责把用户对传感器的需求转换成标准化配置,再由引擎去加载并生成数据。
它降低了视觉实验的门槛¶
对没有长期维护 Config.json 经验的用户来说,很多问题并不是算法本身,而是:
- 相机装反了
- 下视角度不对
- 频率太高导致链路过载
- 共享内存和 UDP 配错了
VisCreate 的作用,就是尽量在进入算法前把这类问题前移解决。
Python 与 ROS 使用路径¶
Python¶
最常见的链路是:
VisCreate生成Config.json- Python 侧通过
VisionCaptureApi加载配置 - 请求并接收图像或点云
- 使用 OpenCV、Open3D、PyTorch 等做后续处理
ROS¶
在 ROS 场景中,常见做法是:
RflySim3D输出多模态感知数据- Python 或 C++ 桥接程序将其转成 ROS 消息
- 发布到
sensor_msgs/Image、sensor_msgs/PointCloud2等话题 - 上层节点完成定位、建图、识别和控制
对 ROS 用户而言,VisCreate 的价值在于快速组织多传感器实验,而不是手工维护一套不断变化的配置文件。
典型应用场景¶
视觉识别¶
前视 RGB 相机是最常见的起点,适合目标检测、跟踪和识别类实验。
深度与避障¶
深度相机和 LiDAR 常用于距离感知、障碍物检测和路径规划。
SLAM 与定位¶
双目、深度、LiDAR 或 RGB-D 组合,可以用于室内外定位与建图。
多模态感知¶
RGB、深度、分割、红外联合时,VisCreate 的配置优势会更明显,因为多传感器方案用手写方式更容易出错。
使用建议与常见错误¶
推荐做法¶
- 先用单传感器跑通,再扩展到多传感器
- 先在本机共享内存模式下验证,再扩展到 UDP 分布式
- 先确认视角和数据频率合理,再接入算法
常见错误¶
| 问题 | 更可能的原因 | 处理思路 |
|---|---|---|
| 有配置但看不到数据 | Config.json 没被正确加载 |
先核对生成路径和运行路径 |
| 图像方向不对 | 安装角度设置错误 | 回到预览界面重新调整 |
| 多传感器串乱 | SeqID 或目标绑定关系不清 |
统一整理编号和挂载关系 |
| 算法延迟很高 | 分辨率或频率过高 | 先降参数再定位瓶颈 |
| 跨机拿不到数据 | 发送协议不匹配 | 核对共享内存和 UDP 配置 |
相关例程¶
- 软件说明入口:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e1_RflySimSoftwareReadme\viscreate
- VisCreate 基本使用:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\1.BasicExps\e19.VisCreateUsage
- RflySim3D 软件说明:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e1_RflySimSoftwareReadme\RflySim3D
- 三维控制接口:[RflySim安装路径]\RflySimAPIs\3.RflySim3DUE\0.ApiExps\e6_RflySim3DCtrlAPI
- 命令接口:[RflySim安装路径]\RflySimAPIs\3.RflySim3DUE\0.ApiExps\e2_CommandAPI