目录

基于 XiUOS 开发板的 AI 视觉目标检测与状态判别系统整体设计文档

1. 项目概述

本系统面向“基于 XiUOS 开发板的 AI 视觉目标检测与状态判别”场景,构建了一套从视觉数据采集、图像数据上报、边缘 AI 推理、结果展示到系统行为联动的完整流程。系统以 CH32V208RBT6 开发板运行 XiUOS 作为图像采集与数据上报节点,以 RK3588 开发板 作为边缘 AI 推理节点,以 ROSMASTER-X3 运动小车 作为摄像头来源和行为执行机构。

系统整体目标是:通过网络摄像头获取场景图像,由 CH32V208RBT6 开发板完成图像获取与网络上报,RK3588 开发板部署轻量化 YOLOv8n 视觉模型进行人体目标识别;当识别到人体目标后,系统在外接显示器上展示处理后的识别结果图像,同时向 ROSMASTER-X3 小车下发前进指令,触发小车执行运动响应。

如需查看各模块的更详细实现说明,可分别参考以下目录中的 README.md

  • ROSMASTER_X3_CAR/README.md
  • CH32V208RBT6/README.md
  • RK3588/README.md

2. 系统架构图

系统架构图

系统整体采用“感知端 + XiUOS 采集上报端 + 边缘推理端 + 结果反馈与行为联动端”的分层架构:

  1. 感知端:ROSMASTER-X3 小车摄像头负责采集原始场景图像,并以 HTTP 接口形式提供图像访问能力。
  2. XiUOS 采集上报端:CH32V208RBT6 开发板运行 XiUOS,通过网络方式连接小车摄像头,获取图像数据并上报到 RK3588。
  3. 边缘推理端:RK3588 开发板接收图像,调用 RKNN YOLOv8n 模型完成目标检测与状态判别。
  4. 反馈联动端:RK3588 将检测结果输出到外接显示器,并在识别到人体目标后通过网络控制 ROSMASTER-X3 小车前进。

3. 系统整体架构设计

3.1 总体设计思路

系统按照功能职责划分为三个核心硬件节点:

模块 硬件平台 主要职责
视觉感知与行为执行模块 ROSMASTER-X3 小车 提供摄像头图像、接收运动控制指令、执行小车前进等动作,可提供雷达距离信息
图像采集与上报模块 CH32V208RBT6 开发板 运行 XiUOS,通过网络获取摄像头图像,并将图像数据上报到 RK3588
AI 推理与结果反馈模块 RK3588 开发板 接收图像,运行 RKNN YOLOv8n 模型,输出识别结果,并触发小车行为

这种划分能够让不同硬件各自承担适合自身资源条件的任务:CH32V208RBT6 负责体现 XiUOS 设备端接入能力和网络数据上报能力;RK3588 负责计算量较大的 AI 推理任务;ROSMASTER-X3 则负责真实场景感知和运动执行。

3.2 数据流设计

系统的数据流主要围绕图像数据传输展开:

  1. ROSMASTER-X3 小车摄像头采集场景图像;
  2. CH32V208RBT6 开发板通过 HTTP 访问小车摄像头接口,获取 JPEG 图像数据;
  3. CH32V208RBT6 将获取到的图像数据通过 HTTP 上传到 RK3588;
  4. RK3588 保存最新图像,并调用 YOLOv8n RKNN 模型进行推理;
  5. RK3588 生成带目标框和置信度信息的结果图像;
  6. 外接显示器显示识别后的图像结果。

3.3 控制流设计

系统的控制流主要围绕识别结果触发小车动作展开:

  1. RK3588 对图像进行人体目标检测;
  2. 若检测结果中存在 person 类目标,则认为系统识别到人体目标;
  3. RK3588 通过 HTTP 调用 ROSMASTER-X3 小车控制接口;
  4. ROSMASTER-X3 接收到控制指令后,通过 ROS2 /cmd_vel 话题发布运动速度;
  5. 小车底盘根据速度指令向前运动;
  6. 为避免连续重复触发,RK3588 侧设置动作冷却时间。

4. 各部分功能模块说明

4.1 ROSMASTER-X3 小车模块

ROSMASTER-X3 小车在系统中同时承担 网络摄像头来源系统行为执行端 两类角色。

摄像头方面,小车使用本体摄像头采集场景图像,并通过 HTTP 接口向外提供单帧 JPEG 图像、分块图像和视频流预览能力。CH32V208RBT6 开发板通过网络访问小车摄像头接口,从而获得视觉数据。

运动控制方面,小车运行 ROS2 控制节点,对外提供 HTTP 运动控制接口。RK3588 在识别到人体目标后调用小车的 /forward 接口,小车服务再将该请求转换为 ROS2 /cmd_vel 速度控制消息,最终驱动小车向前运动。

雷达方面,小车可订阅 /scan 雷达数据,并计算正前方扇区内的最近障碍物距离。当前系统主要使用摄像头识别结果触发小车前进,雷达数据可作为后续扩展的安全避障依据,例如在触发前进前判断前方距离是否满足安全阈值。

4.2 CH32V208RBT6 XiUOS 图像采集与上报模块

CH32V208RBT6 开发板是本系统中体现 XiUOS 设备端能力的核心模块。该模块基于 XiUOS 代码仓库进行修改,主要涉及 main.cwchnet_ethernet.cModuleConfig.c 三个文件。

该模块主要完成以下任务:

  • 初始化 CH32V208RBT6 的以太网网络能力;
  • 通过 HTTP 请求访问 ROSMASTER-X3 小车摄像头;
  • 接收小车摄像头返回的 JPEG 图像数据;
  • 将图像数据通过 HTTP 上报到 RK3588;
  • 输出串口运行日志,用于展示图像采集与数据上报过程。

需要特别说明的是,受 CH32V208RBT6 硬件资源限制,本项目没有采用开发板物理接口直接连接摄像头,而是通过网络方式接入摄像头。实际测试中,CH32V208RBT6 的片内 SRAM 最大约为 64KB,而运行 XiUOS 后可用空余内存约为 8KB。由于图像数据本身占用空间较大,且图像裁剪、缩放、灰度化等预处理操作需要额外缓存和计算资源,经过多次尝试后,难以在 CH32V208RBT6 上稳定完成完整图像预处理。

因此,当前系统采取了硬件条件下的折中方案:图像尺寸缩减、JPEG 质量降低等预处理工作前移到 ROSMASTER-X3 小车摄像头服务侧完成;CH32V208RBT6 主要负责网络采集、数据搬运和上报。这样既保留了 XiUOS 开发板参与视觉数据采集链路的作用,也避免了因片内 SRAM 不足导致系统运行不稳定。

4.3 RK3588 边缘 AI 推理与结果反馈模块

RK3588 开发板在系统中作为边缘 AI 推理节点,负责接收 CH32V208RBT6 上传的图像数据,并使用 RKNN 运行 YOLOv8n 轻量级视觉目标检测模型。

该模块主要包括以下功能:

  • 提供 HTTP 图像接收接口,支持完整图片上传和分块上传;
  • 保存最新上传图像,作为模型推理输入;
  • 调用 RKNN YOLOv8n 模型执行人体目标检测;
  • 解析模型推理输出,判断是否检测到 person
  • 生成带目标框、类别和置信度的结果图像;
  • 将结果图像显示到 RK3588 外接显示器;
  • 检测到人体目标后,通过 HTTP 调用小车控制接口,触发小车前进。

RK3588 具备更强的 AI 计算能力,适合承担模型部署和推理任务。当前系统使用的是 YOLOv8n 轻量级模型,并通过 RKNN 格式在 RK3588 平台上运行,从而在嵌入式边缘环境中实现目标检测。

4.4 显示与结果反馈模块

显示模块运行在 RK3588 开发板上,主要用于展示 AI 推理后的结果图像。当 RK3588 完成 YOLOv8n 推理后,会生成带检测框的图像,并在外接显示器上自动刷新显示。

显示内容包括:

  • 原始场景图像;
  • 人体目标检测框;
  • 类别名称,例如 person
  • 置信度信息;
  • 处理后的识别结果图像。

该模块用于直观展示系统运行效果,也便于现场演示和答辩说明。

4.5 系统行为联动模块

系统行为联动由 RK3588 和 ROSMASTER-X3 小车共同完成。RK3588 负责根据识别结果做出决策,小车负责执行动作。

当前系统设定的联动逻辑为:

  • 当 YOLOv8n 模型识别到人体目标时,RK3588 认为当前场景满足触发条件;
  • RK3588 调用 ROSMASTER-X3 小车的前进接口;
  • 小车收到指令后向前运动一段时间;
  • RK3588 设置动作冷却时间,避免连续多帧识别到人体后重复触发小车动作。

该设计实现了从“视觉识别结果”到“系统行为响应”的闭环流程,符合赛题中结果输出与系统联动的要求。

5. 硬件限制与设计妥协说明

从理想设计角度看,视觉采集链路应当是:

摄像头通过物理接口连接 CH32V208RBT6 开发板 → CH32V208RBT6 基于 XiUOS 驱动框架完成摄像头接入 → 开发板进行图像预处理 → 将预处理后的图像上报给边缘服务器或 AI 推理节点。

但是在实际实现过程中,系统受到以下条件限制:

  1. 摄像头物理接入受限
    CH32V208RBT6 开发板难以通过现有物理接口稳定接入本项目所需摄像头,因此无法按照理想方案直接从开发板物理接口读取摄像头数据。

  2. 片内 SRAM 资源有限
    CH32V208RBT6 片内 SRAM 最大约为 64KB,实际运行 XiUOS 后空余内存约为 8KB。图像数据缓存和图像预处理操作对内存要求较高,当前硬件条件难以支撑完整图像预处理流程。

  3. 图像预处理难以放在 CH32V208RBT6 端完成
    经过多次尝试,裁剪、缩放、灰度化等预处理操作在 CH32V208RBT6 上容易受到内存不足、缓存不足和稳定性问题影响。

基于以上原因,当前系统采用了工程折中方案:

  • 通过网络方式让 CH32V208RBT6 接入小车摄像头;
  • 在小车摄像头服务端提前完成图像尺寸缩减和 JPEG 质量压缩;
  • CH32V208RBT6 主要承担图像采集链路中的网络请求、数据接收和数据上报任务;
  • RK3588 负责模型推理、结果生成、显示输出和行为触发。

该方案虽然与理想方案相比有所妥协,但仍然保留了完整的“视觉感知—XiUOS 采集上报—边缘 AI 推理—结果反馈—行为联动”流程,能够满足当前硬件条件下的系统演示和赛题验证需求。

6. 关键接口关系

方向 接口/协议 说明
CH32V208RBT6 → ROSMASTER-X3 HTTP 获取小车摄像头图像
CH32V208RBT6 → RK3588 HTTP 上传图像数据
RK3588 → ROSMASTER-X3 HTTP 下发小车前进控制指令
ROSMASTER-X3 内部 ROS2 /cmd_vel 执行小车速度控制
ROSMASTER-X3 内部 ROS2 /scan 获取雷达扫描数据
RK3588 → 显示器 HDMI/本地显示 展示识别后的结果图像

7. 系统运行流程

  1. 启动 ROSMASTER-X3 小车服务,提供摄像头图像接口和运动控制接口;
  2. 启动 RK3588 图像接收与 AI 推理服务,加载 YOLOv8n RKNN 模型;
  3. 启动 CH32V208RBT6 开发板 XiUOS 程序,初始化网络;
  4. CH32V208RBT6 通过 HTTP 获取小车摄像头图像;
  5. CH32V208RBT6 将图像上传到 RK3588;
  6. RK3588 接收图像并触发 YOLOv8n 推理;
  7. RK3588 将识别结果显示在外接显示器上;
  8. 当识别到人体目标时,RK3588 向小车下发前进指令;
  9. ROSMASTER-X3 小车接收指令并向前运动,完成系统行为联动。

8. 与赛题要求的对应关系

赛题要求 系统实现方式
视觉数据采集与预处理 小车摄像头采集图像,并进行尺寸缩减、画质降低等预处理;CH32V208RBT6 通过网络获取图像并上报
基于 XiUOS 开发板参与视觉链路 CH32V208RBT6 运行 XiUOS,负责网络图像采集和数据上报
轻量级 AI 模型部署与推理 RK3588 使用 RKNN 运行 YOLOv8n 轻量级视觉模型
目标检测与状态判别 YOLOv8n 检测人体目标 person,并据此判断触发条件
结果输出 RK3588 外接显示器展示带检测框的结果图像
系统行为联动 识别到人体后,RK3588 向 ROSMASTER-X3 下发前进指令,触发小车运动
关于

面向智慧车间的工业物联网操作系统

700.8 MB
邀请码