update:替换演示视频
本系统面向分布式场景感知、人体目标检测和智能小车联动控制任务,构建了一套由 XiUOS 前端采集节点、RK3588 边缘服务器、Linux 云端 VLM 服务器和 ROSMASTER-X3 智能小车 组成的三级协同系统。
系统的核心目标是:
person
各模块的详细实现可参考:
ROSMASTER_X3_CAR/README.md
CH32V208RBT6/README.md
RK3588/README.md
VLM_AGENT/README.md
新系统采用三层协同架构:
第一层:图像采集与数据上报层
由网络摄像头和运行 XiUOS 的 CH32V208RBT6 前端节点组成。每个节点负责一个区域的场景感知,可按需要扩展为 N 个。
第二层:边缘协同处理与联动控制层
由 RK3588 边缘服务器、检测结果显示器和智能小车组成。RK3588 完成 YOLOv8n 检测、前端数据汇聚、目标参考图固化、云端 VLM 请求、任务状态管理和小车控制调度。
第三层:云端 VLM 语义理解层
由 Linux 云端服务器组成,部署 Qwen3VL-32B 视觉语言模型,使用 2 张 RTX 5090 GPU,负责高层语义理解、跨摄像头人物关联和结构化动作建议。
旧版架构图保留在 assets/system_architecture_old.png,仅用于版本对比;当前文档和系统设计均以 assets/system_architecture.png 为准。
assets/system_architecture_old.png
assets/system_architecture.png
这种分工兼顾了实时性、算力和可扩展性:
每个前端节点在逻辑上应具有唯一 node_id,并与以下信息建立对应关系:
node_id
node_id ├── 网络摄像头地址 ├── CH32V208RBT6 网络地址 └── Gmapping 地图中的小车预设导航点
当某个节点上传的图像检测到人物后,RK3588 根据该节点身份选择相应地图目标点,使小车先导航到对应 CH32V208RBT6 附近,再启动局部视觉搜索。
单节点演示可以使用默认节点和默认预设点;扩展为 N 个节点时,上传协议和 RK3588 任务状态需要携带 node_id。
小车运动采用两阶段设计:
地图解决“从当前位置到哪个区域”的问题,VLM 和雷达解决“到达区域后如何找到并靠近哪个人”的问题。两个阶段彼此独立,降低了单一感知方式承担全部导航任务的复杂度。
网络摄像头 ↓ CH32V208RBT6 / XiUOS ↓ HTTP 上传 JPEG RK3588 ↓ RKNN YOLOv8n ├── 检测结果图 → 外接显示器 └── person 参考图 → 导航任务
处理过程如下:
小车摄像头 ── JPEG/视频流 ──→ RK3588 小车雷达 ── 前方距离 JSON ─→ RK3588
小车摄像头只在局部 VLM 导航阶段用于实时搜索和控制。它与前端检测摄像头是两路不同视角,因此前端节点检测到人物并不表示小车当前已经看到目标。
进入局部接近阶段后,RK3588 每轮向云端发送:
云端 Qwen3VL-32B 返回严格的结构化结果:
{ "action": "forward", "duration_s": 2.0, "done": false, "confidence": 0.85, "target_visible": true, "target_position": "center", "reason": "当前小车图中同一个目标已经居中,继续靠近" }
等待前端图像 ↓ YOLOv8n 检测 person ↓ 固化参考图并锁存任务 ↓ 根据 node_id 选择地图预设点 ↓ 小车按已有地图导航到 CH32V208RBT6 附近 ↓ 确认地图导航到达 ↓ 启动 VLM 双图闭环 ↓ 搜索 → 对准 → 分段前进 → 必要时后退 ↓ 目标居中且雷达约 1 米 ↓ 停止并完成任务
前端摄像头可能连续多帧检测到同一个人。RK3588 使用一次性 armed 锁存避免重复创建导航任务:
armed
armed=true
armed=false
/navigate/reset
系统环境已经使用 Gmapping 完成建图,并为各 CH32V208RBT6 前端节点配置附近的预设导航位置。
检测到人物后,RK3588 应:
当前 RK3588/server.py 使用 10 秒直行临时模拟这一阶段,用于验证“检测触发—位置移动—VLM Agent”流程衔接。地图和节点预设点已经准备完成,正式部署时应将该联调动作替换为地图目标下发与到达反馈。
RK3588/server.py
VLM 负责根据双图判断目标人物身份和方向,RK3588 本地 Agent 负责执行边界控制:
网络摄像头负责持续获取部署区域的原始场景图像。它与智能小车摄像头相互独立:
每个 CH32V208RBT6 节点负责:
当前 XiUOS 原型主要修改:
main.c
wchnet_ethernet.c
ModuleConfig.c
RK3588 是系统的边缘检测和控制中枢,主要负责:
云端服务器部署 Qwen3VL-32B 视觉语言模型,硬件为 2 张 RTX 5090 GPU。其职责是:
云端只提供高层决策建议,不直接控制底盘。最终动作仍由 RK3588 本地规则校验后执行。
小车提供:
/cmd_vel
/scan
RK3588 外接显示器展示:
POST /camera/upload
/camera/upload_chunk
GET /camera/snapshot
GET /lidar/front
/v1/chat/completions
POST /forward
/backward
/left
/right
/stop
YOLO 结果文件会被后续推理覆盖,因此任务接受时将结果复制为带会话 ID 的独立参考图,保证整个 VLM 任务锁定同一个人。
云端 VLM 输出不会被直接执行。RK3588 会校验:
Agent 在正常完成、模型异常、HTTP 异常、达到最大轮次、达到最大时间或收到中断时都会发送 stop。地图导航阶段也应具备超时、取消和到达状态检查。
stop
多节点可能同时发现人物。正式扩展时需要在 RK3588 增加:
当前单任务锁存适合一次只执行一个目标接近任务。
CH32V208RBT6 片内 SRAM 最大约为 64KB,运行 XiUOS 后可用内存较少,完整 JPEG 缓存和裁剪、缩放、灰度化等处理会带来较大压力。
因此前端节点采用以下策略:
该方案符合各硬件平台的资源特点,并保留了 XiUOS 节点在完整数据链路中的核心作用。
面向智慧车间的工业物联网操作系统
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
基于 XiUOS 的目标检测与智能小车联动控制系统设计文档
1. 项目概述
本系统面向分布式场景感知、人体目标检测和智能小车联动控制任务,构建了一套由 XiUOS 前端采集节点、RK3588 边缘服务器、Linux 云端 VLM 服务器和 ROSMASTER-X3 智能小车 组成的三级协同系统。
系统的核心目标是:
person检测框的目标参考图;各模块的详细实现可参考:
ROSMASTER_X3_CAR/README.mdCH32V208RBT6/README.mdRK3588/README.mdVLM_AGENT/README.md2. 系统架构图
新系统采用三层协同架构:
第一层:图像采集与数据上报层
由网络摄像头和运行 XiUOS 的 CH32V208RBT6 前端节点组成。每个节点负责一个区域的场景感知,可按需要扩展为 N 个。
第二层:边缘协同处理与联动控制层
由 RK3588 边缘服务器、检测结果显示器和智能小车组成。RK3588 完成 YOLOv8n 检测、前端数据汇聚、目标参考图固化、云端 VLM 请求、任务状态管理和小车控制调度。
第三层:云端 VLM 语义理解层
由 Linux 云端服务器组成,部署 Qwen3VL-32B 视觉语言模型,使用 2 张 RTX 5090 GPU,负责高层语义理解、跨摄像头人物关联和结构化动作建议。
旧版架构图保留在
assets/system_architecture_old.png,仅用于版本对比;当前文档和系统设计均以assets/system_architecture.png为准。3. 总体设计原则
3.1 云边端分工
这种分工兼顾了实时性、算力和可扩展性:
3.2 节点、摄像头与地图位置关联
每个前端节点在逻辑上应具有唯一
node_id,并与以下信息建立对应关系:当某个节点上传的图像检测到人物后,RK3588 根据该节点身份选择相应地图目标点,使小车先导航到对应 CH32V208RBT6 附近,再启动局部视觉搜索。
单节点演示可以使用默认节点和默认预设点;扩展为 N 个节点时,上传协议和 RK3588 任务状态需要携带
node_id。3.3 全局导航与局部视觉接近分层
小车运动采用两阶段设计:
地图解决“从当前位置到哪个区域”的问题,VLM 和雷达解决“到达区域后如何找到并靠近哪个人”的问题。两个阶段彼此独立,降低了单一感知方式承担全部导航任务的复杂度。
4. 数据流设计
4.1 前端检测图像流
处理过程如下:
person时,结果图被固化为本次任务的目标参考图。4.2 小车实时感知流
小车摄像头只在局部 VLM 导航阶段用于实时搜索和控制。它与前端检测摄像头是两路不同视角,因此前端节点检测到人物并不表示小车当前已经看到目标。
4.3 云端 VLM 请求流
进入局部接近阶段后,RK3588 每轮向云端发送:
云端 Qwen3VL-32B 返回严格的结构化结果:
5. 控制流设计
5.1 完整控制状态
5.2 任务锁存
前端摄像头可能连续多帧检测到同一个人。RK3588 使用一次性
armed锁存避免重复创建导航任务:armed=true;armed=false;/navigate/reset重新允许下一次任务。5.3 地图导航阶段
系统环境已经使用 Gmapping 完成建图,并为各 CH32V208RBT6 前端节点配置附近的预设导航位置。
检测到人物后,RK3588 应:
当前
RK3588/server.py使用 10 秒直行临时模拟这一阶段,用于验证“检测触发—位置移动—VLM Agent”流程衔接。地图和节点预设点已经准备完成,正式部署时应将该联调动作替换为地图目标下发与到达反馈。5.4 VLM 局部接近阶段
VLM 负责根据双图判断目标人物身份和方向,RK3588 本地 Agent 负责执行边界控制:
6. 各模块设计
6.1 前端网络摄像头
网络摄像头负责持续获取部署区域的原始场景图像。它与智能小车摄像头相互独立:
6.2 CH32V208RBT6/XiUOS 前端节点
每个 CH32V208RBT6 节点负责:
当前 XiUOS 原型主要修改:
main.cwchnet_ethernet.cModuleConfig.c6.3 RK3588 边缘服务器
RK3588 是系统的边缘检测和控制中枢,主要负责:
person;6.4 Linux 云端 VLM 服务器
云端服务器部署 Qwen3VL-32B 视觉语言模型,硬件为 2 张 RTX 5090 GPU。其职责是:
云端只提供高层决策建议,不直接控制底盘。最终动作仍由 RK3588 本地规则校验后执行。
6.5 ROSMASTER-X3 智能小车
小车提供:
/cmd_vel运动控制;/scan雷达数据;6.6 检测结果与状态显示
RK3588 外接显示器展示:
7. 关键接口关系
POST /camera/upload或/camera/upload_chunknode_idGET /camera/snapshotGET /lidar/front/v1/chat/completionsPOST /forward、/backward、/left、/right、/stop/cmd_vel/scan8. 可靠性与安全设计
8.1 参考图固化
YOLO 结果文件会被后续推理覆盖,因此任务接受时将结果复制为带会话 ID 的独立参考图,保证整个 VLM 任务锁定同一个人。
8.2 决策本地校验
云端 VLM 输出不会被直接执行。RK3588 会校验:
8.3 故障停止
Agent 在正常完成、模型异常、HTTP 异常、达到最大轮次、达到最大时间或收到中断时都会发送
stop。地图导航阶段也应具备超时、取消和到达状态检查。8.4 多节点并发
多节点可能同时发现人物。正式扩展时需要在 RK3588 增加:
当前单任务锁存适合一次只执行一个目标接近任务。
9. 硬件约束与工程方案
CH32V208RBT6 片内 SRAM 最大约为 64KB,运行 XiUOS 后可用内存较少,完整 JPEG 缓存和裁剪、缩放、灰度化等处理会带来较大压力。
因此前端节点采用以下策略:
该方案符合各硬件平台的资源特点,并保留了 XiUOS 节点在完整数据链路中的核心作用。
10. 系统完整运行流程
11. 当前实现与正式架构的关系
node_id和位置映射12. 与赛题要求的对应关系