RflySimSDK v3.08
RflySimSDK说明文档
载入中...
搜索中...
未找到
简易视觉传感器(Yolo)

目标识别框
传感器输出

1. 功能概述

1.1 支持的功能操作

  • 传感器输出
    • 利用YOLO 算法对视场内的目标进行实时检测与定位,一般需要通过当前视场角形成图像,并将图像输出,上层视觉代码拿到图像后识别图像中是否存在带特征点的目标物,有的话返回该物体坐标。本传感器简化了这一过程,直接返回特定视场角内、一定距离的、带特征点物体的坐标

      具体地,本传感器输出识别目标的 CopterID、可信度(Credibility)、目标边界框坐标(MinX, MinY, MaxX, MaxY)等关键参数。

  • 应用场景
    • 多无人机协同任务中的目标定位与跟踪。(本传感器的识别方式几乎没有性能消耗)
    • 模拟环境下的算法验证与训练。
    • 竞赛任务中的特定目标识别。

1.2 使用示例

配置文件添加传感器 以下是配置文件 Config.json 的示例代码,用于添加 分割图传感器:

{
"VisionSensors":[
{
"SeqID":0, //视觉传感器序号0 1 2 3 ...排序。如果填0,则自动递增排序。
"TypeID":30, //简易视觉传感器
"TargetCopter":1, //传感器绑定的CopterID号
"TargetMountType":0, //绑定方式
"DataWidth":640, //图像像素长度
"DataHeight":480,//图像像素宽度
"DataCheckFreq":10,//图像检查更新频率
"SendProtocol":[1,127,0,0,1,10001,0,0],
"CameraFOV":60,
"EularOrQuat":0,
"SensorPosXYZ":[0.50,0,0.5], //视觉传感器的安装位置,和TargetMountType对应偏移中心,单位米
"SensorAngQuat":[0,0,0,0], // 视觉传感器的安装姿态,用四元数方式表示
"SensorAngEular":[0,0,0],// 视觉传感器的安装姿态,用欧拉角方式表示,单位弧度
"otherParams":[100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] //otherParams[0]为最大识别距离,其余为预留位
}

这里单独配置简易视觉传感器可以用于训练,仿真时可以在同一架载具上先配置一个可见光传感器(TypeID=1)以肉眼观测目标识别的过程

Python 调用传感器接口

以下代码展示了如何通过简易视觉传感器采集目标检测数据并绘制检测框:

# 主循环处理逻辑
while True:
lastTime = time.time()
for idx in range(len(vis.VisSensor)):
# 判断传感器类型
if vis.VisSensor[idx].TypeID == 30 and vis.Img[idx] != 0:
image = vis.Img[idx].copy() if vis.Img[idx] else None
# 遍历检测结果
for detection in vis.Img[idx]:
CopterID = detection[0]
Credibility = detection[1]
MinX, MinY, MaxX, MaxY = detection[2:6]
# 绘制目标边界框
if image is not None:
start_point = (MinX, MinY)
end_point = (MaxX, MaxY)
color = (0, 255, 0) # 绿色
thickness = 2
cv2.rectangle(image, start_point, end_point, color, thickness)
# 绘制标签
label_point = (MinX, int(MinY - 10))
label_text = f"CopterID: {CopterID} ({Credibility:.2f})"
cv2.putText(image, label_text, label_point, cv2.FONT_HERSHEY_SIMPLEX, 0.4, color)
# 显示结果
if image is not None:
cv2.imshow(f"CopterID: {vis.VisSensor[idx].TargetCopter}", image)
cv2.waitKey(1)

例程链接


2. 传感器配置

2.1 传感器安装

参数名称 取值范围 含义
TargetMountType 0: 固定载具几何中心;1: 固定底部;2: 固定地面 决定传感器的安装方式及相对位置。
TargetCopter Copter ID (默认 1) 所属载具编号,默认支持 Copter 1。
SensorPosXYZ [x, y, z] (单位:米) 相对于载具中心的安装位置。
EulerOrQuat 0: 欧拉角;1: 四元数 选择安装姿态的表示方式。
SensorAngEular [roll, pitch, yaw] (弧度) 安装姿态,欧拉角方式表示。
SensorAngQuat [q0, q1, q2, q3] 安装姿态,四元数方式表示。

2.2 网络通信配置

参数名称 取值范围 含义
SendProtocol [mode, IP, port, …] 配置数据传输协议,支持共享内存和 UDP。
SendProtocol[0] 0: 共享内存;1: UDP 压缩传输 选择传输方式。
SendProtocol[5] 端口号 数据传输的目标端口号。

2.3 传感器技术规格

技术参数 配置值 说明
SeqID 0 唯一传感器序号。
TypeID 30 传感器类型,简易视觉传感器(基于YOLO目标识别)。
DataHeight 480 图像垂直分辨率,支持 720, 1080 等常见分辨率。
DataWidth 640 图像水平分辨率,支持 1280, 1920 等常见分辨率。
DataCheckFreq 30 Hz 数据刷新频率,默认 30Hz,最大支持取决于RflySim3D刷新率
CameraFOV 90° 图像视场角,单位:度。
otherParams[0] 100 最大识别距离(米),其他参数预留。

3. 注意事项

  1. 实时性优化
    • 确保传感器数据刷新频率与目标检测算法处理能力匹配,以避免延迟。
  2. 图像抖动防控
    • 可在应用层对传感器的姿态角进行低通滤波处理,减小视觉数据的抖动。
  3. 多目标场景支持
    • 当视场内多个目标重叠时,建议根据可信度(Credibility)进行优先级排序处理。