跳转至

视觉传感器配置协议


RflySim 工具链通过 RflySim3D(UE 引擎)模拟独立于飞控之外的各类外部传感器。用户可以通过 Config.json 配置文件灵活定义传感器的类型、数量、安装方式和数据传输协议,满足从单目相机到激光雷达的多模态感知仿真需求。


支持的外部传感器类型

按输出数据格式,外部传感器分为 图像类点云类声音类 三大类别。

图像类传感器

传感器 TypeID 版本要求
RGB 图像 1 免费版
深度图像 2 免费版
灰度图像 3 免费版
分割图像 4 完整版
测距(直线距离) 5 完整版
鱼眼相机 8 完整版
吊舱相机 9 完整版
光流传感器 10 完整版
简易视觉传感器 30 完整版
红外灰度图像 40 完整版
热力彩色图像 41 完整版

点云类传感器

传感器 TypeID 版本要求
深度转点云 7 完整版
激光雷达(机械式/花式扫描) 20~23 完整版
简易激光雷达传感器 31 开发中

激光雷达说明

激光雷达系列主要模拟 LIVOX 览沃 系列产品。

声音类传感器

传感器 TypeID 版本要求
测试版声音传感器 6 开发中

Config.json 配置协议

通过 Config.json 文件配置外部传感器,包括数量、种类、装配方式等。同一传感器内各参数无先后顺序区分

基本参数

参数 类型 说明
SeqID int 传感器在 RflySim3D 内的唯一编号。设为 0 时自动递增排序
TypeID int 传感器类型编号,详见上方
TargetCopter int 目标对象 ID(载具 CopterID 或传感器 SeqID,取决于 TargetMountType)
DataWidth int 数据宽度(图像像素宽度 / 激光雷达水平点数等)
DataHeight int 数据高度(图像像素高度 / 激光雷达垂直线束数等)
DataCheckFreq float 传感器数据检测频率(Hz)
CameraFOV float 视场角(单位:度),表示相机 FOV 或激光雷达水平角范围
otherParams float[16] 预留参数,默认全 0,具体含义由传感器类型决定

安装位置参数

参数 类型 说明
SensorPosXYZ float[3] 传感器位置(米),相对于载体中心的 FRD 坐标系
EulerOrQuat int 安装角度表示方式:0 = 欧拉角,1 = 四元数
SensorAngEular float[3] 安装姿态(欧拉角,单位:度):[roll, pitch, yaw],相对于载体 FRD 坐标系
SensorAngQuat float[4] 安装姿态(四元数):[q0, q1, q2, q3]

TargetMountType — 安装方式

安装方式 说明
0 固定在载具上(几何中心) 相对载具几何中心安装
1 固定在载具上(底部中心) 相对载具底部中心安装
2 固定在地面上 可用于模拟地面监控相机
3 地面坐标系吊舱相机 固定在飞机上,但相机姿态不随飞机姿态变化
4 附加到另一个传感器 TargetCopter 此时为目标传感器的 SeqID

注意

TargetMountType = 4 时,必须先定义被附加的目标传感器。

SendProtocol — 传输协议配置

SendProtocol 是一个 7 维数组,用于定义传感器数据的传输方式。

数组索引 说明
[0] 传输协议标志位(详见下表)
[1-4] IP 地址,默认 0(等效 127.0.0.1),自动回传到本机
[5] 端口号,默认 0 时使用 9999 + SeqID 自动递增
[6-7] 预留位

SendProtocol[0] 传输模式:

传输方式 适用传感器 特点
0 共享内存 全部 无压缩、速度快、延迟低,仅限本机 Windows
1 UDP + JPEG 有损压缩 全部 支持跨电脑/跨系统/ROS
2 UDP 不压缩直传 仅图像类 数据包多,跨电脑可能丢包
3 UDP + PNG 无损压缩 仅图像类 无损压缩传输

传输模式选择建议

  • 本机 Windows 环境推荐使用 模式 0(共享内存),延迟最低
  • 跨电脑/跨系统/ROS 场景推荐使用 模式 1(UDP + JPEG)
  • 需要无损图像数据时使用 模式 3(UDP + PNG)

配置示例

{
    "SeqID": 1,
    "TypeID": 1,
    "TargetMountType": 0,
    "TargetCopter": 1,
    "DataWidth": 640,
    "DataHeight": 480,
    "DataCheckFreq": 30,
    "SendProtocol": [0, 0, 0, 0, 0, 0, 0, 0],
    "CameraFOV": 90,
    "SensorPosXYZ": [0.1, 0, -0.05],
    "EulerOrQuat": 0,
    "SensorAngEular": [0, 0, 0],
    "otherParams": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}

完整示例文件

更多配置示例请参见:[安装目录]\RflySimAPIs\8.RflySimVision\0.ApiExps\1-UsageAPI\0.ConfigJsonAPI\Config.json

注意事项

  • SeqID 自动排序:多个传感器的 SeqID 设为 0 时,系统自动递增排序
  • DataCheckFreq:实际传感器数据刷新频率由 RflySim3D 帧率和 DataCheckFreq 共同决定,RflySim3D 帧率必须 ≥ 所有传感器的最大检测频率
  • CameraFOV:视场角与焦距呈一定数值关系,可通过 FOV 间接调整焦距
  • 端口分配:每个传感器需设置不同的回传端口,避免数据冲突

其他传感器接口

以下接口不通过 Config.json 配置,而是直接通过 Python SDK 调用:

接口函数 功能
SetUE4RadianceValue 设置红外灰度图/热力分割图的辐射参数

附录:TypeID 传感器参数速查表

典型配置参考值

传感器类型 TypeID 分辨率 (W×H) 频率 协议 备注
RGB 图像 1 640×480 30 Hz 0-3
深度图像 2 640×480 30 Hz 0-3 otherParams 设定最小/最大距离与刻度
灰度图像 3 640×480 30 Hz 0-3
分割图 4 640×480 30 Hz 0-3
测距传感器 5 N/A 0-1 otherParams 设定最大距离
机械式激光雷达 20-22 点数×线束 30 Hz 0-1 otherParams 设定扫描角度范围
花式激光雷达 20-22 花瓣点×花瓣数 可配 0-1 otherParams 设定扫描距离与花瓣高度
红外灰度图像 40 640×480 30 Hz 0-3

附录:传输模式架构图

视觉图像数据仿真传输模式