目录

基于 StarryOS 的嵌入式网球抓取机器人

赛题: 面向智能机器人的 AIOS(高校赛题)
阶段: 第一阶段 ✓ · 第二阶段 ✓ · 第三阶段 🚧


📋 文档索引

文档 说明
TECHNICAL.md 完整技术文档 — 关键指标 · 决策引擎 · 底盘控制 · 视觉管线 · 舵机 · 性能基准
赛题要求.md 赛题说明与评分细则
slide.html 项目演示页面(推荐使用浏览器打开,含系统架构图与指标)
DEPLOY.md 部署指南 — 烧录 · 编译 · 自启动
sg2002_final.img 完整 SD 卡镜像(百度网盘提供,可直接烧录开机运行)
项目说明书.docx 竞赛项目说明书(技术细节与指标请参考 TECHNICAL.md
讲解视频.mp4 项目演示视频(单独提供,百度网盘下载)
小车实机.mp4 小车实机演示视频(单独提供,百度网盘下载)
百度网盘 视频、镜像等大文件 链接 提取码: abwk
sg2002_final.zip 完整 SD 卡镜像 链接 提取码: 9fjj — 解压后 dd 烧录即可启动
演示文稿.pptx 竞赛答辩 PPT(制作时间紧张,排版与视觉效果未经打磨,建议优先参考 slide.html)

项目概述

将开源网球抓取机器人的操作系统内核从 Linux 完整迁移至基于 Rust 的 StarryOS 组件化内核,在 SG2002 (cv181x) 开发板上实现:

  • 视觉感知: USB UVC 摄像头 → JPU 硬件 JPEG 解码 → TPU (NPU) YOLOv8n 推理
  • 运动控制: UART1 → ESP32-C3 PID 闭环 → 差速底盘
  • 机械臂: UART2 → ZP10S 三轴舵机 → 8 步抓取序列
  • 决策引擎: 三态状态机 (UNKNOWN/TRACKING/LOST) + 面积自适应死区

全链路在 StarryOS 单核 C906 CPU 上运行,无上位机、无云端依赖。


完成情况

阶段 要求 状态 关键指标
StarryOS 启动 + NPU 模型加载推理 YOLOv8n-224 BF16, 23ms/帧
USB 驱动 + 串口 + 机械臂 JPU 硬解 9ms, UART1/2 调通, ZP10S 抓取
性能优化(对标 Linux) 🚧 端到端 10fps, JPU 内核修复, 决策优化

异构算力加速(JPU + TPU)

模块 软解(CPU运算) StarryOS (本项目)
JPEG 解码 ~100ms (CPU) 9ms (JPU 硬件)
推理加速 ~1s TPU (NPU) 23ms
端到端帧率 ~5fps ~10fps
内核修复 Huffman表注入 · 超时自愈 · UART时钟修复

系统架构

SG2002 (StarryOS)
├── /dev/cvi-usb-camera0  → USB UVC Camera (640×480 MJPEG)
├── /dev/cvi_vc_dec0      → JPU 硬件 JPEG 解码器
├── /dev/cvi-tpu0         → TPU YOLOv8n-224 推理 (23ms)
├── /dev/ttyS1            → UART1 → ESP32-C3 → TT Motor ×2 (差速底盘)
└── /dev/ttyS2            → UART2 → ZP10S ×3 (底座·臂·夹爪)

关键技术实现

数据流水线

Camera(35ms) → JPU(9ms) → YUV→Tensor(10ms) → TPU(31ms) → Decide(1ms) → Act

单线程 ~86ms/帧 ≈ 10fps。TPU 推理期间 CPU 空闲。

内核驱动修复 (StarryOS)

Bug 根因 修复
JPU 超时卡死 UVC MJPEG 缺 Huffman 表 每帧注入 ITU-T.81 Annex K 标准表
YUV422 被拒 VDEC 格式校验仅接受 YUV420 放宽至全 YUV 采样格式
超时后永久失效 中毒 Drop 不解锁 JPU_IN_USE force_release_jpu() + 自动重建
UART2 波特率偏差 DTB 未声明 clock-frequency 实测 25.8MHz 覆盖

详见 TECHNICAL.md


编译与部署

# 内核 (需要 Xuantie-900 工具链)
export SYSROOT=<xuantie>/sysroot
export BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$SYSROOT"
cargo xtask starry build -c os/StarryOS/configs/board/aka-00-sg2002.toml

# 用户程序
cd apps/starry/master-compe-tennis && make

# SD 卡部署
# p1 FAT32: boot.sd + board.dtb
# p2 ext4:  /aka00/tennis_hunter + model/

目录结构

路径 内容
apps/starry/master-compe-tennis/ 生产程序 + 决策引擎 + 舵机 + 底盘
drivers/vpu/sg200x-jpu/ JPU 硬件驱动(含内核修复)
os/StarryOS/kernel/src/pseudofs/dev/ VDEC/JPU 内核集成
os/StarryOS/configs/board/ DTB 配置(UART 时钟修复)



以下为上游仓库 TGOSKits 原始中文 README,保留用于说明项目背景与许可。


TGOSKits

面向操作系统与虚拟化研发的一体化 Rust 工作区

关于
117.3 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号